Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Vectric VCarve under Wine

Running Vectric VCarve (and, by extension, the rest of the shared "AspireUnified" codebase — Aspire / Cut2D / Cut3D / PhotoVCarve) on 64-bit Linux through Wine.

Out of the box on modern 64-bit Wine, VCarve has two problems:

  1. It won't launch — it crashes immediately with an unhandled page fault (this is WineHQ bug #54829).
  2. Even once it launches, the 3D toolpath preview is corrupted — heavy horizontal banding across the relief, because Wine's built-in OpenMP runtime mis-schedules the loop that generates the relief textures.

Both are fixed here in this repo:

Problem Fix
Launch crash LD_PRELOAD a tiny shim (libvcarve_fix.so) that catches the faulting memory scan and lets it complete.
3D-preview banding Tell Wine to use the native Microsoft vcomp140.dll (already installed by VCarve's own installer) instead of its built-in one.

Launch crash dialog 3D preview banding before the fix Clean 3D preview after both fixes

On this page

Quick start

  1. Install VCarve into a 64-bit Wine prefix with Vectric's own installer.
  2. LD_PRELOAD the included libvcarve_fix.so to fix the launch crash.
  3. Override vcomp140 = native,builtin to fix the 3D-preview banding.
  4. Launch VCarve — it starts, and the relief preview is clean.

Per-environment steps are below: Bottles or generic Wine.


What you need

  • A 64-bit Wine (distribution Wine, wine-staging, or Bottles' bundled Wine). The launch crash is 64-bit-only.
  • VCarve installed into the prefix with Vectric's own installer — it places the native vcomp140.dll that the banding fix needs.
  • gcc, only if you want to build the shim yourself (a prebuilt libvcarve_fix.so is included).

This repo ships no Vectric files — get the trial or your licensed installer from Vectric.

Build the shim (optional — a prebuilt .so is included)

Using GCC to build the shim:

gcc -O2 -fPIC -shared -o libvcarve_fix.so libvcarve_fix.c -ldl

Output is ~16 KB and exports a single symbol (sigaction).


Setup — Bottles

Bottles runs Windows software on Linux. Assumes you've created a bottle and installed VCarve into it.

1. Make the shim reachable from inside the bottle

The Flatpak Bottles sandbox can't read arbitrary host paths, so put libvcarve_fix.so where the bottle can see it — simplest is inside the bottle's own directory:

~/.var/app/com.usebottles.bottles/data/bottles/bottles/<YourBottle>/libvcarve_fix.so

2. Set LD_PRELOAD for the bottle to fix the launch crash

In your bottle → Settings → Environment Variables, add (the in-sandbox path from step 1):

LD_PRELOAD = /path/inside/bottle/libvcarve_fix.so

Bottles environment variable for LD_PRELOAD

3. Force the native vcomp140.dll (fixes the banding)

In your bottle → Settings → DLL Overrides, add:

vcomp140 = native, builtin

Bottles DLL override for vcomp140

4. Launch VCarve

Launch VCarve from Bottles. It should start with a clean 3D preview.

VCarve running under Bottles


Setup — generic Wine

For a plain wine install where you manage the prefix yourself.

Assume:

  • WINEPREFIX points at the prefix where VCarve is installed (default is ~/.wine).
  • libvcarve_fix.so is at a path you control, e.g. this repo's vcarve/ directory.

1. Force the native vcomp140.dll (fixes the banding)

Either persist it in the prefix (recommended) …

WINEPREFIX="$HOME/.wine" wine reg add \
  "HKCU\\Software\\Wine\\DllOverrides" /v vcomp140 /d "native,builtin" /f

… or set it per-launch with WINEDLLOVERRIDES (below), or via winecfgLibraries → add vcomp140Native then Builtin.

2. Launch with the shim preloaded (fixes the launch crash)

WINEPREFIX="$HOME/.wine" \
LD_PRELOAD="$PWD/libvcarve_fix.so" \
  wine "C:\\Program Files\\VCarve Desktop Trial Edition 12.5\\x64\\VCarveDesktopTrialEdition.exe"

If you skipped step 1, fold the override into the same command:

WINEPREFIX="$HOME/.wine" \
WINEDLLOVERRIDES="vcomp140=n" \
LD_PRELOAD="$PWD/libvcarve_fix.so" \
  wine "C:\\Program Files\\VCarve Desktop Trial Edition 12.5\\x64\\VCarveDesktopTrialEdition.exe"

Adjust the .exe path to match your install (licensed VCarve Pro, a different version, etc.).

A convenience wrapper:

#!/usr/bin/env bash
export WINEPREFIX="$HOME/.wine"
export LD_PRELOAD="/path/to/libvcarve_fix.so"
exec wine "C:\\Program Files\\VCarve Desktop Trial Edition 12.5\\x64\\VCarveDesktopTrialEdition.exe"

Common problems and known issues

Crashes on launch. Confirm 64-bit Wine and that LD_PRELOAD is an absolute path the Wine process can read (under Flatpak Bottles, inside the sandbox). The shim only matches the specific startup fault; on a build that no longer triggers it, the shim does nothing and other faults pass through unchanged.

Launches, but the 3D preview is still banded. The vcomp140 override didn't take. Check it's set for the right prefix/bottle and that a native vcomp140.dll exists in system32 (VCarve's installer puts it there). WINEDEBUG=+loaddll shows which one loads.

Tested with

  • VCarve Desktop Trial Edition 12.5 (VCarveDesktopTrialEdition.exe) and the full licensed VCarve release — both confirmed working with these fixes.
  • Wine 11.0 stable / wine-staging 11.9, Ubuntu 24.04 and Arch Linux 2026.

The launch fix is byte-pattern matched rather than tied to a version, so it should apply to other Vectric products built from the same codebase (Aspire / Cut2D / Cut3D / PhotoVCarve).