Package Details: yuzu-mainline-git r22989.2b534c285-1

Git Clone URL: https://aur.archlinux.org/yuzu-mainline-git.git (read-only, click to copy)
Package Base: yuzu-mainline-git
Description: An experimental open-source emulator for the Nintendo Switch (newest features)
Upstream URL: https://github.com/yuzu-emu/yuzu-mainline
Keywords: emulator game qt switch yuzu
Licenses: GPL2
Conflicts: yuzu-canary-git, yuzu-git
Provides: yuzu, yuzu-cmd
Submitter: bscubed
Maintainer: bscubed (HurricanePootis)
Last Packager: HurricanePootis
Votes: 22
Popularity: 0.25
First Submitted: 2019-11-24 04:03 (UTC)
Last Updated: 2023-01-11 07:29 (UTC)

Required by (0)

Sources (21)

Pinned Comments

bscubed commented on 2019-11-24 17:42 (UTC)

If you're wondering what happened to yuzu-canary-git, read more here https://yuzu-emu.org/entry/yuzu-migration/ TL;DR: yuzu canary and yuzu nightly are being replaced by a single package, yuzu-mainline. This is the mainline build and contains untested, bleeding-edge features over yuzu stable.

bscubed commented on 2018-11-12 01:49 (UTC) (edited on 2019-11-24 17:45 (UTC) by bscubed)

Some things to note: This is an unofficial package, thus is not officially supported by the Yuzu team. Please don't ask for help on their forums or discord if you run into issues with this build, as it might devote import development resources to a bug that might have to do with running Yuzu on an unofficial platform. If you encounter an issue, feel free to comment on this package and I'll try to point you in the right direction.

Also, this build is in active development. Builds might break every once in a while.

If you're looking for the QT version of this package, it has now been merged in this package. No need for two packages anymore, and no need to compile everything twice.

Thanks for using my package and have a nice day! :)

Latest Comments

1 2 3 4 5 6 7 Next › Last »

Blu3wolf commented on 2022-11-18 11:31 (UTC)

This should conflict with yuzu, as it seeks to provide the same files.

spiffeeroo commented on 2022-10-13 17:45 (UTC)

I had to add 'llvm' to makedepends in PKGBUILD for chroot build. Otherwise I had CMAKE_CXX_COMPILER_AR-NOTFOUND build error because I assume it needs llvm-ar (due to clang compiler).

HurricanePootis commented on 2022-07-25 21:24 (UTC)

@Matin, updating the pkgver() on a git package is not our responsibility, as the PKGBUILD will auto update itself whenever you go to build. Please only flag packages out of date if there is an actual problem, please and thank you.

HurricanePootis commented on 2022-05-25 02:04 (UTC) (edited on 2022-05-29 18:46 (UTC) by HurricanePootis)

Responding to @laggykiller, I have been having the same issue and I have reported it to upstream. In return, I got/made the following patch which fixes compiling yuzu with clang and GCC

--- a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
@@ -977,7 +977,7 @@ private:
     bool uses_demote_to_helper{};

 // TODO: C++20 Remove this when all compilers support constexpr std::vector
-#if __cpp_lib_constexpr_vector >= 201907
+#if (__cpp_lib_constexpr_vector >= 201907) && !(defined(__clang__)) && !(defined(__GNUC__))
     static constexpr Flow::Block dummy_flow_block;
 #else
     const Flow::Block dummy_flow_block;

Here is a modified form of the PKGBUILD that applies this patch, and a few other changes that I believe will improve building (as mentioned before)

diff --git a/PKGBUILD b/PKGBUILD
index ff0f566..3fc43c4 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -27,7 +27,8 @@ depends=('desktop-file-utils'
          'sdl2'
          'shared-mime-info'
          'zlib'
-         'zstd')
+         'zstd'
+         'libusb')
 makedepends=('boost'
              'catch2'
              'cmake'
@@ -53,7 +54,8 @@ source=("$_pkgname::git+https://github.com/yuzu-emu/yuzu-mainline"
         # cubeb dependencies
         'git+https://github.com/arsenm/sanitizers-cmake.git'
         # sirit dependencies
-        'git+https://github.com/KhronosGroup/SPIRV-Headers.git')
+        'git+https://github.com/KhronosGroup/SPIRV-Headers.git'
+        'yuzu-gcc12-clang13.patch')
 md5sums=('SKIP'
          'SKIP'
          'SKIP'
@@ -70,7 +72,8 @@ md5sums=('SKIP'
          'SKIP'
          'SKIP'
          'SKIP'
-         'SKIP')
+         'SKIP'
+         '170f8084bf50dd397a71a26c68b3c0cc')

 pkgver() {
     cd "$srcdir/$_pkgname"
@@ -101,6 +104,9 @@ prepare() {
         git config submodule.${submodule}.url "$srcdir/${submodule##*/}"
         git submodule update --init
     done
+
+    cd "$srcdir/$_pkgname"
+    patch -p1 < ../yuzu-gcc12-clang13.patch
 }

 build() {
@@ -117,7 +123,15 @@ build() {
       -DYUZU_USE_EXTERNAL_SDL2=OFF \
       -DUSE_DISCORD_PRESENCE=ON \
       -DENABLE_QT_TRANSLATION=ON \
-      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON
+      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
+      -DBUILD_TAG=${pkgver} \
+      -DTITLE_BAR_FORMAT_IDLE="yuzu | ${pkgver} {}" \
+      -DTITLE_BAR_FORMAT_RUNNING="yuzu | ${pkgver} | {}" \
+      -DYUZU_USE_BUNDLED_OPUS=OFF \
+      -DYUZU_USE_BUNDLED_FFMPEG=OFF \
+      -DYUZU_USE_BUNDLED_LIBUSB=OFF \
+      -DYUZU_USE_BUNDLED_QT=OFF
+
     make
 }

laggykiller commented on 2022-05-22 12:35 (UTC)

Failed to build for a few days

[ 47%] Building CXX object src/shader_recompiler/CMakeFiles/shader_recompiler.dir/frontend/maxwell/control_flow.cpp.o
In file included from /usr/include/string.h:535,
                 from /usr/include/c++/12.1.0/cstring:42,
                 from /usr/include/fmt/core.h:13,
                 from /usr/include/fmt/format.h:48,
                 from /home/mcchau/Downloads/yuzu-mainline-git/src/yuzu/src/shader_recompiler/frontend/maxwell/control_flow.cpp:10:
In function ‘void* memmove(void*, const void*, size_t)’,
    inlined from ‘F boost::container::dtl::memmove(I, I, F) [with I = boost::move_iterator<Shader::Maxwell::Flow::StackEntry*>; F = Shader::Maxwell::Flow::StackEntry*]’ at /usr/include/boost/container/detail/copy_move_algo.hpp:184:19,
    inlined from ‘typename boost::container::dtl::enable_if_memtransfer_copy_constructible<I, F, F>::type boost::container::uninitialized_copy_alloc(Allocator&, I, I, F) [with Allocator = small_vector_allocator<Shader::Maxwell::Flow::StackEntry, new_allocator<void>, void>; I = boost::move_iterator<Shader::Maxwell::Flow::StackEntry*>; F = Shader::Maxwell::Flow::StackEntry*]’ at /usr/include/boost/container/detail/copy_move_algo.hpp:462:23,
    inlined from ‘void boost::container::vector<T, Allocator, Options>::priv_uninitialized_construct_at_end(InpIt, InpIt) [with InpIt = boost::move_iterator<Shader::Maxwell::Flow::StackEntry*>; T = Shader::Maxwell::Flow::StackEntry; A = boost::container::small_vector_allocator<Shader::Maxwell::Flow::StackEntry, boost::container::new_allocator<void>, void>; Options = void]’ at /usr/include/boost/container/vector.hpp:2662:72,
    inlined from ‘void boost::container::vector<T, Allocator, Options>::assign(FwdIt, FwdIt, typename boost::move_detail::disable_if_or<void, boost::move_detail::is_same<typename boost::container::dtl::version<typename boost::container::real_allocator<T, A>::type>::type, boost::move_detail::integral_constant<unsigned int, 0> >, boost::move_detail::is_convertible<InIt, typename boost::container::allocator_traits<typename boost::container::real_allocator<T, A>::type>::size_type>, boost::container::dtl::is_input_iterator<FwdIt> >::type*) [with FwdIt = boost::move_iterator<Shader::Maxwell::Flow::StackEntry*>; T = Shader::Maxwell::Flow::StackEntry; A = boost::container::small_vector_allocator<Shader::Maxwell::Flow::StackEntry, boost::container::new_allocator<void>, void>; Options = void]’ at /usr/include/boost/container/vector.hpp:1322:54,
    inlined from ‘void boost::container::small_vector_base<T, Allocator, Options>::move_construct_impl(base_type&, const allocator_type&) [with T = Shader::Maxwell::Flow::StackEntry; SecondaryAllocator = void; Options = void]’ at /usr/include/boost/container/small_vector.hpp:460:22,
    inlined from ‘void boost::container::small_vector_base<T, Allocator, Options>::move_construct_impl(base_type&, const allocator_type&) [with T = Shader::Maxwell::Flow::StackEntry; SecondaryAllocator = void; Options = void]’ at /usr/include/boost/container/small_vector.hpp:454:9,
    inlined from ‘boost::container::small_vector<T, N, Allocator, Options>::small_vector(boost::container::small_vector<T, N, Allocator, Options>&&) [with T = Shader::Maxwell::Flow::StackEntry; long unsigned int N = 3; Allocator = void; Options = void]’ at /usr/include/boost/container/small_vector.hpp:658:32,
    inlined from ‘Shader::Maxwell::Flow::Stack::Stack(Shader::Maxwell::Flow::Stack&&)’ at /home/mcchau/Downloads/yuzu-mainline-git/src/yuzu/src/./shader_recompiler/frontend/maxwell/control_flow.h:53:7,
    inlined from ‘constexpr std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = const Shader::Maxwell::Location&; _U2 = Shader::Maxwell::Flow::Stack; _T1 = Shader::Maxwell::Location; _T2 = Shader::Maxwell::Flow::Stack]’ at /usr/include/c++/12.1.0/bits/stl_pair.h:281:35,
    inlined from ‘std::pair<Shader::Maxwell::Location, Shader::Maxwell::Flow::Stack> Shader::Maxwell::Flow::Stack::Pop(Shader::Maxwell::Flow::Token) const’ at /home/mcchau/Downloads/yuzu-mainline-git/src/yuzu/src/shader_recompiler/frontend/maxwell/control_flow.cpp:148:31:
/usr/include/bits/string_fortified.h:36:34: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ reading between 25 and 9223372036854775800 bytes from a region of size 24 [-Werror=stringop-overread]
   36 |   return __builtin___memmove_chk (__dest, __src, __len,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
   37 |                                   __glibc_objsize0 (__dest));
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mcchau/Downloads/yuzu-mainline-git/src/yuzu/src/shader_recompiler/frontend/maxwell/control_flow.cpp: In member function ‘std::pair<Shader::Maxwell::Location, Shader::Maxwell::Flow::Stack> Shader::Maxwell::Flow::Stack::Pop(Shader::Maxwell::Flow::Token) const’:
/home/mcchau/Downloads/yuzu-mainline-git/src/yuzu/src/shader_recompiler/frontend/maxwell/control_flow.cpp:148:24: note: at offset 24 into source object ‘<anonymous>’ of size 48
  148 |     return {*pc, Remove(token)};
      |                  ~~~~~~^~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [src/shader_recompiler/CMakeFiles/shader_recompiler.dir/build.make:1098: src/shader_recompiler/CMakeFiles/shader_recompiler.dir/frontend/maxwell/control_flow.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2243: src/shader_recompiler/CMakeFiles/shader_recompiler.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

patlefort commented on 2022-05-04 10:21 (UTC)

It's currently bundling robin-map which conflict with the package of the same name, small fix:

diff --git a/PKGBUILD b/PKGBUILD
index ff0f566..a663535 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -34,7 +34,8 @@ makedepends=('boost'
              'ffmpeg'
              'git'
              'ninja'
-             'nlohmann-json')
+             'nlohmann-json'
+             'robin-map')
 source=("$_pkgname::git+https://github.com/yuzu-emu/yuzu-mainline"
         'git+https://github.com/benhoyt/inih.git'
         'git+https://github.com/kinetiknz/cubeb.git'
@@ -117,7 +118,8 @@ build() {
       -DYUZU_USE_EXTERNAL_SDL2=OFF \
       -DUSE_DISCORD_PRESENCE=ON \
       -DENABLE_QT_TRANSLATION=ON \
-      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON
+      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
+      -DDYNARMIC_NO_BUNDLED_ROBIN_MAP=ON
     make
 }

It is also installing some unnecessary stuff in include and lib, such as his mcl library, but even setting MCL_INSTALL to off has no effect.

HurricanePootis commented on 2022-05-03 13:53 (UTC) (edited on 2022-05-03 13:53 (UTC) by HurricanePootis)

Thank you for updating the package to remove soundtouch. However, I believe there are still are a few changes that can be made to make this package better.

Firstly, you should set yuzu to use the system's opus library, which like using system SDL2, avoids unnecessary recompiling times and links it against the system.

Secondly, I have noticed the title bar of the yuzu window doesn't accurately reflect the pkgver(). This is because yuzu puts that information with cmake flags, which we currently don't set.

Here's a link to the imgur to see the difference. Image 1 is the current PKGBUILD, Image 2 has my proposed changes: here

Here are the CMAKE flags I added for two proposals

diff --git a/PKGBUILD b/PKGBUILD    
index ff0f566..55a1d82 100755    
--- a/PKGBUILD    
+++ b/PKGBUILD    
@@ -117,7 +117,12 @@ build() {    
       -DYUZU_USE_EXTERNAL_SDL2=OFF \    
       -DUSE_DISCORD_PRESENCE=ON \    
       -DENABLE_QT_TRANSLATION=ON \    
-      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON    
+      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \    
+      -DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline \    
+      -DBUILD_TAG=${pkgver} \    
+      -DTITLE_BAR_FORMAT_IDLE="yuzu | ${pkgver} {}" \    
+      -DTITLE_BAR_FORMAT_RUNNING="yuzu | ${pkgver} | {}" \    
+      -DYUZU_USE_BUNDLED_OPUS=OFF    
     make    
 }

kzd commented on 2022-04-04 03:50 (UTC)

It looks like soundtouch was removed as a submodule. https://github.com/yuzu-emu/yuzu-mainline/commit/faf6a9876c394664d647355726290014b24efffc

Dropping the lines for the md5 check, src pull for soundtouch, and the entry in the submodule list seems adequate enough.

--- PKGBUILD    2022-04-03 23:42:22.557749745 -0400
+++ PKGBUILD.submodule-changes  2022-04-03 23:41:51.679296320 -0400
@@ -39,7 +39,6 @@
         'git+https://github.com/benhoyt/inih.git'
         'git+https://github.com/kinetiknz/cubeb.git'
         'git+https://github.com/MerryMage/dynarmic.git'
-        'git+https://github.com/citra-emu/ext-soundtouch.git'
         'libressl::git+https://github.com/citra-emu/ext-libressl-portable.git'
         'git+https://github.com/libusb/libusb.git'
         'git+https://github.com/discord/discord-rpc.git'
@@ -71,7 +70,6 @@
          'SKIP'
          'SKIP'
          'SKIP'
-         'SKIP'
          'SKIP')

 pkgver() {
@@ -82,7 +80,7 @@
 prepare() {
     cd "$srcdir/$_pkgname"

-    for submodule in externals/{inih/inih,cubeb,dynarmic,soundtouch,libressl,libusb/libusb,discord-rpc,Vulkan-Headers,sirit,mbedtls,xbyak,opus/opus,ffmpeg,SDL,cpp-httplib}; do
+    for submodule in externals/{inih/inih,cubeb,dynarmic,libressl,libusb/libusb,discord-rpc,Vulkan-Headers,sirit,mbedtls,xbyak,opus/opus,ffmpeg,SDL,cpp-httplib}; do
         git submodule init ${submodule}
         git config submodule.${submodule}.url "$srcdir/${submodule##*/}"
         git submodule update

HurricanePootis commented on 2022-03-22 23:27 (UTC) (edited on 2022-03-28 15:20 (UTC) by HurricanePootis)

Hello, due to a recent package update (probably involving qt5-webengine), yuzu fails to compile on~~ src/yuzu/applet/qt_web_engine.cpp

I have modified the PKGBUILD to fix it. All I did was insert #include <thread> into line 14 of src/yuzu/applet/qt_web_engine.cpp, which fixed the error.

All of have to do is modify the package build to insert the following at the bottom into prepare()

    cd "$srcdir/$_pkgname/src/yuzu/applets"
    sed -i '14i\#include <thread>\' qt_web_browser.cpp

prepare() should look like this as a whole

prepare() {
    cd "$srcdir/$_pkgname"

    for submodule in externals/{inih/inih,cubeb,dynarmic,soundtouch,libressl,libusb/libusb,discord-rpc,Vulkan-Headers,sirit,mbedtls,xbyak,opus/opus,ffmpeg,SDL,cpp-httplib}; do
        git submodule init ${submodule}
        git config submodule.${submodule}.url "$srcdir/${submodule##*/}"
        git submodule update
    done

    cd "$srcdir/$_pkgname"/externals/cubeb

    for submodule in cmake/sanitizers-cmake; do
        git submodule init ${submodule}
        git config submodule.${submodule}.url "$srcdir/${submodule##*/}"
        git submodule update
    done

    cd "$srcdir/$_pkgname"/externals/sirit

    for submodule in externals/SPIRV-Headers; do
        git submodule init ${submodule}
        git config submodule.${submodule}.url "$srcdir/${submodule##*/}"
        git submodule update
    done

    # Fix qt webengine problem
    cd "$srcdir/$_pkgname/src/yuzu/applets"
    sed -i '14i\#include <thread>\' qt_web_browser.cpp
}

EDIT: Looks like this problem was fixed upstream; no more need to patch.

HurricanePootis commented on 2022-03-22 03:47 (UTC) (edited on 2022-03-22 03:48 (UTC) by HurricanePootis)

After going through yuzu's PKGBUILD, I think these build options should be amended to yuzu-mainline-git:

      -DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline \
      -DBUILD_TAG=${pkgver} \
      -DTITLE_BAR_FORMAT_IDLE="yuzu | ${pkgver} {}" \
      -DTITLE_BAR_FORMAT_RUNNING="yuzu | ${pkgver} | {}" \
      -DYUZU_USE_BUNDLED_OPUS=OFF

The build repository should be obvious as to what it is. About the TITLE_BAR and BUILD_TAG stuff, I noticed that currently whenever yuzu-mainline-git is compiled, the title-bar of the window has the wrong build version information; this fixes that issue. Furthermore, OPUS appears to be automatically using the bundled version (you can see that the default cmake options has -DYUZU_USE_BUNDLED_OPUS=ON), and just like SDL2, we should use system libs. I have already tested system opus running breath of the wild and link's awakening, and nothing as changes audio wise.

I have all the changes in a easy patch file that you can apply like my sdl2 patch :]

diff --git a/PKGBUILD b/PKGBUILD
index b6ed097..dfd0989 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@

 _pkgname=yuzu
 pkgname=$_pkgname-mainline-git
-pkgver=r19936.dd43a7f8c
+pkgver=r21040.eefa21c2f
 pkgrel=1
 pkgdesc='An experimental open-source emulator for the Nintendo Switch (newest features)'
 arch=('i686' 'x86_64')
@@ -119,7 +119,13 @@ build() {
       -DYUZU_USE_EXTERNAL_SDL2=OFF \
       -DUSE_DISCORD_PRESENCE=ON \
       -DENABLE_QT_TRANSLATION=ON \
-      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON
+      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
+      -DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline \
+      -DBUILD_TAG=${pkgver} \
+      -DTITLE_BAR_FORMAT_IDLE="yuzu | ${pkgver} {}" \
+      -DTITLE_BAR_FORMAT_RUNNING="yuzu | ${pkgver} | {}" \
+      -DYUZU_USE_BUNDLED_OPUS=OFF
+
     make
 }