Skip to content

Make it easy to build Cemu on BSD #1632

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jul 23, 2025
Merged

Make it easy to build Cemu on BSD #1632

merged 11 commits into from
Jul 23, 2025

Conversation

kreinholz
Copy link
Contributor

I built latest Cemu on FreeBSD using (alternatively) 40 patches to vanilla Cemu sources or the commits in this pull request. These changes should be non-breaking to non-BSD, and enable easy building on FreeBSD (and likely OpenBSD as well).

Tested on:

FreeBSD 14.3-STABLE stable/14-n271682 amd64

I got great performance with consistent 60 FPS in brief play testing. Vulkan and OpenGL graphic backends both work as does bundled cubeb audio. No graphical or audio stuttering. Since FreeBSD's bluetooth stack leaves a lot of be desired, I emulated a Wii U Pro Controller using a PS4 DualShock (recognized in Cemu via SDLController).

This is on modest hardware: NVIDIA GeForce RTX 3050, Intel Xeon CPU E5-2620 v3, 2.40 GHz, 64 GB 2133MHz Kingston DDR4 ECC memory.

Buildable/testable on FreeBSD by utilizing my unofficial FreeBSD port. Main branch is with my local patches; forked branch is with the commits in this pull request.

@qurious-pixel
Copy link
Contributor

Are you able to add the builds steps to the readme?
Does your port naming conflict with the other Cemu emulator in the official ports?

@kreinholz
Copy link
Contributor Author

Are you able to add the builds steps to the readme? Does your port naming conflict with the other Cemu emulator in the official ports?

Updated README on both branches of my unofficial Cemu port for FreeBSD with very basic build instructions. I didn't list out dependencies since those are covered in the Makefile but would be happy to write up something more comprehensive.

Good catch with the naming conflict with the TI-83/TI-84 cemu already in FreeBSD Ports. pkg appears to be case-insensitive and notes a conflict, so I changed the name of my custom port to Cemu_Cafe. (Not very original but it works as a placeholder for now).

Happy to share build/run logs, screenshots, or help out in any other way I can.

@qurious-pixel
Copy link
Contributor

qurious-pixel commented Jul 16, 2025

I was able to build successfully on my fork.

Perhaps the BUILD.md, something like this:

pkg install llvm16 git ccache cmake ninja ffmpeg pkgconf alsa-lib pulseaudio sdl3 evdev-proto vulkan-headers vulkan-loader opencv

git clone --recursive https://github.com/cemu-project/Cemu
cd Cemu

cmake -B build -G Ninja
cmake --build build

ninja install

for those that don't use the Makefile.

@kreinholz
Copy link
Contributor Author

I was able to build successfully on my fork.

Perhaps the BUILD.md, something like this:

pkg install llvm16 git ccache cmake ninja ffmpeg pkgconf alsa-lib pulseaudio sdl3 evdev-proto vulkan-headers vulkan-loader opencv

git clone --recursive https://github.com/cemu-project/Cemu
cd Cemu

cmake -B build -G Ninja
cmake --build build

ninja install

for those that don't use the Makefile.

Added a proposed FreeBSD section to BUILD.md. This covers build with system LLVM compiler. I've not tested building with GCC although in theory this should be possible as well.

@qurious-pixel
Copy link
Contributor

Looks good. Thanks for this.

@Exzap Exzap merged commit 4efa40c into cemu-project:main Jul 23, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants