Box64 and RISC-V in 2024: What It Takes to Run the Witcher 3 on RISC-V

Box64, Witcher 3, and Emulation Stack

  • Box64 is an x86_64 emulator that reuses native system libraries (libc, libm, SDL, OpenGL) for speed.
  • On RISC-V, it runs the x86_64 build of Wine; Wine itself still needs an emulator for x86 apps.
  • Some speculate about a hypothetical Wine build that exposes x86_64 APIs while compiling to RISC-V/ARM, but this is described as difficult and not what Box64 currently does.
  • Witcher 3 reportedly reaches ~15 fps via multiple translation layers (x86 → RISC-V CPU, DirectX → Vulkan via Wine/DXVK, then native GPU driver).

Hardware Used and Alternatives

  • The Witcher 3 demo uses Milk-V Pioneer, a RISC-V workstation board; it can ship with up to 128 GB RAM (clarifying confusion about the screenshot showing 31 GB).
  • Commenters note that newer RISC-V options with more/faster cores and RVV 1.0 support may now be better targets.

RISC-V ISA Design Debates

  • Strong criticism of missing bitfield extract/insert and limited addressing modes; some call this an obvious design gap.
  • Others note ongoing RISC-V working group discussions, vendor pressure, and clever instruction sequences that emulate bitfield operations reasonably efficiently.
  • Heated discussion around the compressed (C) extension:
    • Pros: higher code density, less I‑cache pressure, relatively simple length decode.
    • Cons: misaligned instructions spanning cache lines or pages, complexity in hardware and verification, large opcode space consumption.
    • Some argue C should be used mainly for microcontrollers; others say page-crossing cases are rare and manageable.
  • Misaligned load/store semantics and the lack of strong guarantees are seen as favoring hardware convenience over software needs.

RISC vs CISC and the “RISC dream”

  • Several participants argue modern high-performance cores (x86, ARM, RISC-V) have converged: all decode to micro-ops, use OoO, speculation, and large caches.
  • The original “RISC dream” of ultra-simple, one-cycle instructions with compilers doing all scheduling is widely viewed as largely obsolete; dynamic hardware scheduling and rich extensions dominate.
  • Others emphasize RISC-V’s main advantage as an open, license-free ISA and a simpler base to invest in, not minimality.

Practical Software Impact

  • For most software in higher-level languages, targeting RISC-V changes little.
  • With the compressed extension, RISC-V code size can be comparable to or smaller than x86-64 and ARM.
  • Key differences for low-level or runtime authors:
    • More general-purpose registers (32) reduce spills.
    • Important extensions (vector, bit-manipulation, conditional move) are not always guaranteed in base profiles, which affects optimization strategies.
  • Weaker memory model is similar to ARM; properly written concurrent code should not depend on x86’s stronger model.