The game launches and you can hear the menu and intro, but there's no picture at all. A Direct3D 9 wrapper in the game folder brings the image back.
Copies a ready-to-paste prompt for Claude Code or another coding agent
I'm running "ObsCure 2" on macOS through CrossOver (CrossOver 27 Preview) and I need to fix this bug:
## Sound plays but the screen stays black
The game launches and you can hear the menu and intro, but there's no picture at all. A Direct3D 9 wrapper in the game folder brings the image back.
Apply the fix below on my machine, one step at a time. Tell me what each command does before you run it, back up any game files you modify, and stop if what you see doesn't match the steps.
---
ObsCure 2 renders through an old Direct3D 9 path that produces no output under translation — audio runs fine, but the frame never reaches the screen. Dropping [dxwrapper](https://github.com/elishacloud/dxwrapper) next to the game intercepts those Direct3D calls and restores the picture.
## Add the wrapper
1. Download the latest release from the [dxwrapper releases page](https://github.com/elishacloud/dxwrapper/releases).
2. From the archive, take three files:
- `d3d9.dll` (the Direct3D 9 stub — it's in the **Stub** folder)
- `dxwrapper.dll`
- `dxwrapper.ini`
3. Copy all three into the game folder, **next to the game's `.exe`**. For the Steam version under CrossOver that's:
```
~/Library/Application Support/CrossOver/Bottles/Steam/drive_c/Program Files (x86)/Steam/steamapps/common/Obscure2
```
`~` is your home folder — in Finder, press ⌘⇧G and paste the path to jump straight there.
4. Leave `dxwrapper.ini` at its defaults for the first run — you only need to edit it if you want extra tweaks later.
## CrossOver: make Wine use the wrapper
Just dropping the file in isn't enough under CrossOver — by default Wine loads its own built-in `d3d9` and ignores the one you added. Point it at the wrapper:
1. Open your bottle, choose **Run Command…**, and run `winecfg`.
2. Go to the **Libraries** tab, add a new override for `d3d9`, and set it to **Native**.
3. Launch the game — the picture should be back.
To confirm the wrapper loaded, look for a `dxwrapper.log` file that appears next to the game's `.exe` after launch.
ObsCure 2 renders through an old Direct3D 9 path that produces no output under translation — audio runs fine, but the frame never reaches the screen. Dropping dxwrapper next to the game intercepts those Direct3D calls and restores the picture.
~ is your home folder — in Finder, press ⌘⇧G and paste the path to jump straight there.
Leave dxwrapper.ini at its defaults for the first run — you only need to edit it if you want extra tweaks later.
CrossOver: make Wine use the wrapper
Just dropping the file in isn’t enough under CrossOver — by default Wine loads its own built-in d3d9 and ignores the one you added. Point it at the wrapper:
Open your bottle, choose Run Command…, and run winecfg.
Go to the Libraries tab, add a new override for d3d9, and set it to Native.
Launch the game — the picture should be back.
To confirm the wrapper loaded, look for a dxwrapper.log file that appears next to the game’s .exe after launch.