project record / semu
sEMU
Steamworks emulator built on gbe_fork, with selected networking, overlay, and companion-DLL paths.
overview
sEMU implements selected Steamworks interfaces and callbacks on top of gbe_fork. Its source includes SteamNetworkingSockets and SteamNetworkingMessages paths, a data-backed overlay for friends, achievements, invites, and chat, and configured companion-DLL loading. The minimal profile keeps offline calls and disables network and overlay hooks. The eEMU bridge is a separate ABI path; these source and test changes do not certify a retail client.
in the repository
- Selected Steamworks interfaces and callbacks
- SteamNetworkingSockets and SteamNetworkingMessages paths
- Overlay workspace for friends, achievements, invites, and chat
- Configured companion-DLL loader and minimal-profile tests
- SpaceWar peer accepts queued for worker processing
current work
The SpaceWar callback queues peer accepts; a worker processes them without holding the peer-state lock. Its test covers duplicate requests and a stalled external handler. Other local tests exercise loader configuration, overlay behavior, invitations, and the offline profile. None certifies a retail client.
change history
- · sEMU · developmentSpaceWar session work moved off callbacks
REF 6b9cf20SteamNetworkingMessages callbacks now queue peer-session accepts for worker processing; each refresh pass handles at most 64 requests. Peer-state tests cover queueing and duplicate suppression. No real-client result is claimed.
- · sEMU · developmentOffline profile and overlay workspace
REF 754edf2The minimal profile disables online transport and overlay hooks for an offline build, while the data-backed Steam workspace and its invite, chat, and achievement tests remain in the full profile.
- · sEMU · developmentConfigured companion DLL loading
REF 7d3b4c6The loader now reads configured companion entries, preserves load order, and falls back to the legacy directory when no usable entry is configured. Parser and loader tests cover the new path.
- · sEMU · fixGame Coordinator field bounds
REF bc18cb7Byte-sized Game Coordinator fields are clamped before serialization. No client compatibility result is claimed from that source change alone.