Skip to content

Releases: abduzeedo/mapc-engine

0.1.7

Choose a tag to compare

@abduzeedo abduzeedo released this 20 Oct 23:13
79739e7

Mac driver options follow the registry.

  • WineRunner.syncMacDriver(_:engine:bottle:) reads the bottle's real Mac driver values (Retina mode, Command as Control) before each launch, writes only what differs from the game's profile, and checks each write (MacDriver.SyncResult). While a wineserver runs it asks it (reg query); otherwise it reads user.reg, which is what the next wineserver loads and starts nothing. A registry that can't be read means every value is written.
  • MacDriver: the profile's values, how the Mac driver reads an option (y/t/1, n/f/0), user.reg and reg query parsing.
  • applyMacDriver is removed. AppSettings.appliedRetina / appliedMacDriver are no longer used (kept so older versions can read the file).

Validation: 192 tests pass.

0.1.6

Choose a tag to compare

@abduzeedo abduzeedo released this 20 Oct 22:02
b8d7197

Replaced engines are found and updated.

  • EngineManifest.updates(for:appVersion:macOS:) finds installed engines the engine list no longer offers, and pairs each with the newest listed engine that replaces it: newer, provides every backend the old one did, and fits this app and macOS. With the current list: 2.0.1 → 2.0.2 (2.0.1 crashes at start on macOS 26) and 1.0.0 → 1.0.1. Test builds newer than anything listed are left alone.
  • Manifest entries can set minMacOS.
  • AppSettings.moveEnvironments(fromEngine:to:) moves the environments and the active engine to the replacement.
  • Check Last Launch: a crash within seconds on a replaced engine now names the engine and offers the update, instead of the generic engine-crash text.

Validation: 180 tests pass.

0.1.5

Choose a tag to compare

@abduzeedo abduzeedo released this 20 Oct 16:51
6566558

Steam stays signed in across engine switches.

  • Engine 2.x is built from CrossOver's source, which reports the Windows user as crossover. Engine 1.x reports the Mac user. Windows encrypts saved logins (DPAPI) with a key based on that name, so Steam's saved login couldn't be read after switching engines, and Steam asked to sign in again. MaPC now sets CX_REPORT_REAL_USERNAME=1 for every Wine process, so both engines use the same name.
  • One-time: anything saved while on a 2.x engine (for example a Steam login last made there) needs one more sign-in after updating. After that, logins carry across engine switches in both directions.

Validation: 174 tests pass.

0.1.4

Choose a tag to compare

@abduzeedo abduzeedo released this 20 Oct 14:23
cd38309

Backend switch fix.

  • Moving a bottle from a D3DMetal engine (2.x) to a DXVK engine (1.x) no longer leaves system32 without d3d10, d3d11 and dxgi. Wine's own copies are put back, and bottles the old code broke are repaired the next time they start. This fixes Steam's helper failing to start with Failed to load module dxgi.dll (c0000135). Files MaPC didn't put there are left alone.

Validation: 173 tests pass.

0.1.3

Choose a tag to compare

@abduzeedo abduzeedo released this 20 Oct 05:20
fbce0d4

32-bit Direct3D 10/11, macOS 26 engine fix and launch diagnosis, for MaPC 1.1.4. Fixes #3.

  • Detect 32-bit Direct3D 10/11 games and run them with DXMT v0.80 (MIT) in engine 2.x; take back graphics DLLs a launch doesn't want.
  • Engine 2.x: fix the start crash on macOS 26 (pipe2 weak import), with a build check for unguarded weak imports; game videos through a user-installed GStreamer.framework (none is shipped).
  • Engine 1.x: DXVK built in as in 1.0.0; unused Wine Gecko left out; Wine Mono's licenses shipped.
  • LogDiagnosis and mapc diagnose: name known problems in a launch log.
  • Engine list: skip entries whose minAppVersion is newer than the app.
  • Complete third-party notices (DXMT, LLVM, Microsoft DXBC parser, winpthreads, Wine's bundled libraries, Wine Mono).

Validation: 170 tests pass.

0.1.2

Choose a tag to compare

@abduzeedo abduzeedo released this 18 Oct 20:24

Steam recovery and save safety fixes for MaPC 1.1.2.

  • Verify incomplete Steam installations instead of treating the bootstrapper as a complete client; support an explicit verification launch for repair.
  • Replace Chromium helpers atomically, recover interrupted replacements, and upgrade legacy wrappers while preserving Valve's executable.
  • Pass per-game launch arguments to Steam and expose all Steam library directories for file monitoring.
  • Abort save restoration if a required safety backup fails, and defer retention until restoration finishes.
  • Include engine, environment, backend and process exit metadata in launch logs without logging arguments or tokens.

Validation: 148 MacadeKit tests and 10 command tests pass, including nine new recovery and save-safety regressions.