Skip to content

Unity game crashes with 0xc06d007e (FlsGetValue2 not found in kernelbase.dll) on both stable and beta engines #258

Description

@je1001dev

Environment

  • Whisky 3.7.0, macOS 26.0.0, Apple M5
  • Bottle: Windows 10, Wine 11.0 (stock v3.1.1 engine) — also reproduced on v4.6.4-beta.1 (Wine 11.16)

Game
"How to Fish" (Steam AppID 4001890), a Unity engine game.

Symptom
The game crashes immediately with Unhandled exception 0xc06d007e at the exact same address (kernelbase+0xd887) regardless of graphics backend (DXVK/D3D11 fully initializes — device, swapchain, DXGI format conversion all succeed — before the crash occurs, so this is not a graphics API issue).

Root cause found

warn:module:LdrGetProcedureAddress "FlsGetValue2" (ordinal 0) not found in "kernelbase.dll"

kernelbase.dll only exports FlsGetValue / RtlFlsGetValue, not FlsGetValue2. Confirmed via strings on both the stock (wine-11.0) and beta (wine-11.16) kernelbase.dll — neither has this export. The Unity engine's runtime (likely via a newer UCRT build) delay-loads this symbol during early bootstrap and crashes when it's missing.

Backtrace (relevant frames)

=>0 kernelbase (+0xd887)
  1-10 unityplayer (+0x1c35223, +0x1bc6397, +0x103e233, +0x10a8960, +0xfb696b, +0x12c0266, +0x13e6c0c, +0x13b0bac, +0x11c2877, +0x11c2fbb)
  11 how to fish (+0x11f6)
  12 kernel32 (+0x11469)
  13 ntdll (+0x10d2b)

Ask
Could FlsGetValue2 be added to kernelbase.dll (likely a thin wrapper around the existing FLS implementation)? Happy to test a beta build.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions