satisfactory
Verified
Download JSON
Improve this profile
- Layer
- D3DMetal
- Windows
- win10
- Sync
- msync
- DXVK
- false
- AVX
- false
- Executables
- factorygamesteam.exe, factorygame.exe, factorygamesteam-win64-shipping.exe, factorygame-win64-shipping.exe
- Winetricks
- vcrun2019, vcrun2022
- Launch args
- -NO_EOS_OVERLAY -dx11 -USEALLAVAILABLECORES -Nosplash -ResX=1280 -ResY=720
- Unreal project
- FactoryGame
Notes
CORRECTED 15 Sep 2026 -- two claims below are wrong: 'AVX IS THE FOURTH KNOB AND IT IS WHAT MAKES IN-WORLD PLAY SURVIVE' and 'Everything else here is a working configuration'. (1) avxEnabled false never reached the game. Every Satisfactory launch log in ~/Library/Logs/com.fly.gaming from 12 Sep 10:55Z to 13 Sep 23:09Z -- including the 12 Sep runs credited below -- carries ROSETTA_ADVERTISE_AVX=1. The bottle stores avxEnabled true, and BottleSettings.environmentVariables only ever adds that variable, so the profile's false leaves the bottle's =1 in place. The settingsFingerprint changes; the environment does not. (2) The game crashes early with AVX genuinely off (bottle set false by hand). 26 controlled launches on 14-15 Sep 2026, 11 died within ~21 s of the world loading, and no change moved the rate: shipped settings 3/8, D3DM_MULTITHREADED_INTERFACE_ENABLE=1 3/8, CA_DEBUG_TRANSACTIONS=1 1/2, without -USEALLAVAILABLECORES 2/3, D3DM_RETAIN_REFERENCES=1 1/3, -VSYNC 1/2. (3) What is measured about the crash: RHIThread, 15-21 s after 'Load map complete', faulting inside macOS thread-ownership checks -- libsystem_platform os_unfair_lock_assert_owner.cold.1 (7) and _os_unfair_lock_unowned_abort (2), libobjc AutoreleasePoolPage::releaseUntil (1), libsystem_pthread pthread_setspecific (1). Three more launches exited 3-6 s after load with no record anywhere. CA_DEBUG_TRANSACTIONS=1 logs D3DMetal's DXGISwapChain::Present1 and swapchain creation (libd3dshared WineSwapchainCallbacks::InitializeForHWND) changing CAMetalLayer off the main thread. Solarpunk hit the same trap on 6 Sep. Treat it as a D3DMetal bug, not a profile setting; the Apple Feedback draft is in ~/wyn-handovers/apple-feedback-20260915/. (4) The MENU DEATH section's 'likelier cause is the same AVX SIGILL' is withdrawn: silent deaths recur with AVX off. Status stays verified pending the owner's decision. With ~40% early crashes, the section 5 'no crash directory' bar is not reliably met. CRASHES WHEN YOU QUIT. Play is fine; the exit is not. Leaving the game from its own menu tears down normally and then dies with a fatal allocator error instead of exiting cleanly. Nothing you did in the session is lost and it is not a launch failure — see EXIT CRASH below. Everything else here is a working configuration. Launch args: -NO_EOS_OVERLAY -dx11 -USEALLAVAILABLECORES -Nosplash -ResX=1280 -ResY=720 (Steam LaunchOptions; was wrongly matched to -NOTEXTURESTREAMING earlier). D3DMetal 3.0. Crash-avoidance (not taste), and all FOUR knobs matter: MetalFX=0, D3DM_ENABLE_ASYNC_COMMIT=0, HUD off, and avxEnabled FALSE. MetalFX on crawls ~0.1-2 fps then RHIThread SIGILL in D3DMCommandQueue::ExecuteCommandLists; MetalFX off alone also SIGILL'd. wyn play waits 120s after quit (D3DMetal GPU settle). Leftover CrashReportClient does not block Play once the game EXE is gone. AVX IS THE FOURTH KNOB AND IT IS WHAT MAKES IN-WORLD PLAY SURVIVE, measured 12 Sep 2026. With avxEnabled true the game loads Persistent_Level and then dies the moment you move: EXCEPTION_ILLEGAL_INSTRUCTION 32s in, callstack through FactoryGameSteam-RenderCore, UECC dump written. The faulting address 0x00007ff805ba1deb is outside every one of the 526 PE modules in that dump (they live at 0x140000000 and 0x6fffc6f9....-0x6ffffffe1....), so the illegal instruction is in native Rosetta-translated code, not in the game's x86 image; the minidump captures no code pages there, so the instruction itself cannot be read. Mechanism is in Wyn's own guidance: avxEnabled sets ROSETTA_ADVERTISE_AVX=1 (BottleSettings.swift) and binaries then emit AVX. With avxEnabled false a person played and moved in-world: zero illegal-instruction mentions in the log, no crash directory, adapter AMD Compatibility Mode / VendorId 1002, frame #4658. The bottle itself stores avxEnabled true (ensureSteamBottle sets it when creating one), so the profile override is doing the work via ProfileApplicator.launchSettings; settingsFingerprint goes d326edcc9913c14f -> ebe75d3faab5d10f when it applies, which is how to tell that it did. EXIT CRASH, unfixed and deterministic. Quitting from the in-game menu tears down in order (online services, Steam API unload, FFX/FSR/DLSS module shutdown, EOS_Shutdown EOS_Success) and then the process dies: FMallocBinned2 Attempt to realloc an unrecognized block 0000000003C30000, canary == 0x0 != 0xe3 (MallocBinned2.cpp:900). Heap corruption on exit, not OOM. Same block address on both 12 Sep occurrences, so reproducible rather than random. No crash directory is written despite the fatal error. It costs nothing in play, but it means no LogExit: Exiting. -- this profile meets loaded map, frame count and adapter on the §5 bar and FAILS clean exit. Verified is kept deliberately, with that gap stated here rather than hidden. Undiagnosed. Do not read it as a launch failure. MENU DEATH AT ~33s, 12 Sep 2026 -- and do not trust the first explanation of it. No LogExit, no UE crash handler, no macOS crash report, and the log's last line is a crawl in its own numbers: TicksCount=[421] ExpectedTicksCount=[1000]. It was blamed on an already-running Steam client handing the game gameHostSteamEnvironment's D3DM_ENABLE_METALFX=1 default over this profile's 0. That mechanism is real on the -applaunch path and SteamLauncher+SessionEnv.swift fixes it THERE, but this title never takes that path: a d3dmetal profile goes through launchGameDirectD3DMetal, which starts the game EXE directly with the profile's own environment, so there is no client environment to inherit. The inheritance story was never proved for this title. The likelier cause is the same AVX SIGILL, hit before anything could be written. Treat it as unexplained.
Environment
WINEDLLOVERRIDES | d3d11,dxgi,d3d12,d3d10,atidxx64,nvapi64,nvngx=b |
|---|---|
MTL_HUD_ENABLED | 0 |
D3DM_SHOW_HUD_STATS | 0 |
D3DM_ENABLE_METALFX | 0 |
D3DM_ENABLE_ASYNC_COMMIT | 0 |
Agents: GET /api/v1/profiles/satisfactory.json or GET /api/v1/games/satisfactory.json.