{
"$type": "com.whtwnd.blog.entry",
"title": "Veloren on Intel Macs: The x86_64 Binary That Wasn't",
"content": "I run a self-hosted Veloren server on my homelab. Linux client works great. Getting the game running on two Intel Macs (a 2019 MacBook Pro i7 and a Mac Mini i3-8100B) took way longer than it should have, mostly because of a bad binary from the official download.\n\n## Airshipper ships the wrong arch\n\nAirshipper is Veloren's official launcher. The macOS x86_64 download gives you this:\n\n```\nbad CPU type in executable\n```\n\nChecked with `file`:\n\n```bash\n$ file airshipper\nairshipper: Mach-O 64-bit executable arm64\n```\n\nARM64 binary in the x86_64 download. Still the case as of March 2026.\n\n## Standalone client download\n\nVeloren publishes standalone client builds separate from Airshipper. The x86_64 one from there is a real x86_64 binary:\n\n```bash\nmkdir -p ~/Applications/Veloren\ncd ~/Applications/Veloren\ncurl -L -o veloren.zip \"https://download.veloren.net/latest/macos/x86_64/weekly\"\nunzip veloren.zip && rm veloren.zip\n\n# confirm it's actually x86_64\nfile veloren-voxygen\n# veloren-voxygen: Mach-O 64-bit executable x86_64\n\n# remove quarantine or macOS blocks the unsigned binary\nxattr -rd com.apple.quarantine ~/Applications/Veloren/\nchmod +x ~/Applications/Veloren/veloren-voxygen\n\n# first launch from terminal to catch errors\n./veloren-voxygen\n```\n\n## Dual-GPU MacBook Pro crash loop\n\nThe Mac Mini worked immediately. The MacBook Pro kept crashing. It would reach character creation, then loop back to \"Preparing Client\" endlessly. Server logs showed `Connection reset by peer`. Client was crashing hard.\n\nThe 2019 MBP has two GPUs (Intel UHD 630 + AMD Radeon Pro 555X). macOS switches between them dynamically, and the handoff during world loading crashes wgpu. The Mac Mini only has the UHD 630, no GPU switching, no crash.\n\nFix: lock it to the integrated GPU.\n\n```bash\nsudo pmset -a gpuswitch 0\n```\n\nOr **System Preferences > Battery > Options** — disable \"Automatic graphics switching.\"\n\n## Intel UHD 630 needs low settings\n\nDefault Veloren graphics settings tank on integrated Intel. Put this in `~/Applications/Veloren/userdata/voxygen/settings.ron` before launching:\n\n```ron\ngraphics: (\n terrain_view_distance: 4,\n entity_view_distance: 4,\n lod_distance: 50,\n sprite_render_distance: 50,\n particles_enabled: false,\n weapon_trails_enabled: false,\n figure_lod_render_distance: 100,\n max_fps: Max(30),\n render_mode: (\n aa: r#None,\n cloud: r#None,\n reflection: Low,\n fluid: Low,\n lighting: Lambertian,\n shadow: r#None,\n rain_enabled: false,\n bloom: Off,\n point_glow: 0.0,\n upscale_mode: (\n factor: 0.35,\n ),\n ),\n),\n```\n\nRenders at 35% and upscales. Looks soft but it's smooth on the UHD 630.\n\n## tl;dr\n\n- Airshipper's macOS x86_64 download is actually ARM64, don't use it\n- Standalone client from `download.veloren.net/latest/macos/x86_64/weekly` works\n- `xattr -rd com.apple.quarantine` or it won't launch\n- Dual-GPU MacBooks need GPU switching disabled (`pmset -a gpuswitch 0`)\n- Intel integrated graphics need everything turned down",
"createdAt": "2026-03-10T21:11:49.531Z",
"visibility": "public"
}