[Bug 257175] [NEW PORT] emulators/xenia: Xbox 360 Emulator

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 14 Jul 2021 07:00:58 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257175

            Bug ID: 257175
           Summary: [NEW PORT] emulators/xenia: Xbox 360 Emulator
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: beyert@cs.ucr.edu
 Attachment #226448 text/plain
         mime type:

Created attachment 226448
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=226448&action=edit
emulators_xenia.shar

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.

-- 
You are receiving this mail because:
You are the assignee for the bug.