Created attachment 226448 [details]
I'm releasing my preliminary work on porting Xenia, an Xbox 360 emulator working with commercial games to FreeBSD. It needed a lot of patches to work around threading differences between Linux and FreeBSD. Most notably, I had to revert one file back two revisions to address C++17 compatibility (Xenia requires a C++17 compatible compiler, and clang++ is the only officially supported C++ compiler by the developers) with the LLVM include headers in /usr/src/include.
Prior to rolling back that file, there were notorious issues with fstream, iostream, and I ultimately brought in boost_nowide to get it to compile (I might try a simpler version later without this library since I have since resolved the standard library issues).
I will admit that while Xenia has been compiling without issues for a week or longer, I don't know if it runs, because it is so finicky on compatible hardware, and has extremely high GPU and CPU requirements to run games at full speed, even on Windows with current Direct X API support. It is absolutely necessary to have a GPU with Vulkan API support, and further, you must enable one of the Vulkan backends for any games to work at all. The compatibility is different between these two Vulkan backends (the legacy backend won't work with any games at all, and the other is undergoing testing) and the Direct X backend, the latter of which obviously will not work on Linux or FreeBSD.
If anyone can test this, I would appreciate if folks try building and let me know if it is working for them. I have had limited success with the Windows version on one of my slower machines, but only with Direct X, although I am going to experiment some more and document the installation steps.
I'll be improving this port rapidly, so by the time a committer gets to this submission, it will probably be confirmed as working with some games.
Sorry, typo, I meant /usr/include in referring to the include directory.
Timothy, first of all, thanks for working on this! I suggest that you create a review on https://reviews.freebsd.org/ and link it back here, so that committers can have an easier time providing feedback for lengthy patches. Thanks!
(In reply to Guangyuan Yang from comment #2)
Thank you! I will definitely create a review.