Giter VIP home page Giter VIP logo

cemu's Introduction

Cemu - Wii U emulator

Build Process Discord Matrix Server

This is the code repository of Cemu, a Wii U emulator that is able to run most Wii U games and homebrew in a playable state. It's written in C/C++ and is being actively developed with new features and fixes.

Cemu is currently only available for 64-bit Windows, Linux & macOS devices.

Links:

Other relevant repositories:

Download

You can download the latest Cemu releases for Windows, Linux and Mac from the GitHub Releases. For Linux you can also find Cemu on flathub.

On Windows Cemu is currently only available in a portable format so no installation is required besides extracting it in a safe place.

The native macOS build is currently purely experimental and should not be considered stable or ready for issue-free gameplay. There are also known issues with degraded performance due to the use of MoltenVK and Rosetta for ARM Macs. We appreciate your patience while we improve Cemu for macOS.

Pre-2.0 releases can be found on Cemu's changelog page.

Build Instructions

To compile Cemu yourself on Windows, Linux or macOS, view BUILD.md.

Issues

Issues with the emulator should be filed using GitHub Issues.
The old bug tracker can be found at bugs.cemu.info and still contains relevant issues and feature suggestions.

Contributing

Pull requests are very welcome. For easier coordination you can visit the developer discussion channel on Discord or alternatively the Matrix Server. Before submitting a pull request, please read and follow our code style guidelines listed in CODING_STYLE.md.

If coding isn't your thing, testing games and making detailed bug reports or updating the (usually outdated) compatibility wiki is also appreciated!

Questions about Cemu's software architecture can also be answered on Discord (or through the Matrix bridge).

License

Cemu is licensed under Mozilla Public License 2.0. Exempt from this are all files in the dependencies directory for which the licenses of the original code apply as well as some individual files in the src folder, as specified in those file headers respectively.

cemu's People

Contributors

artemisx64 avatar bitscher avatar capitalistspz avatar chrispurnell avatar colinkinloch avatar crementif avatar emiyl avatar epicusername12 avatar exzap avatar fs00 avatar garyodernichts avatar goeiecool9999 avatar gurrgur avatar jn64 avatar lijunyu-cn avatar m-chojnacki avatar maschell avatar mythicalplayz avatar qurious-pixel avatar rluxv avatar schspa avatar shinra-electric avatar squall-leonhart avatar ssimco avatar tachi107 avatar tillsunset avatar totalcaesar659 avatar ultrahdr avatar why-keith avatar zopolis4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cemu's Issues

Linux: does not cleanly exit

Every time I exit Cemu (File - Quit) it really just crashes:

terminate called without an active exception

Thread 1 "MainThread" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44      pthread_kill.c: No such file or directory.
(ins)(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ffff6155caf in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007ffff6107d42 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff60f2469 in __GI_abort () at abort.c:79
#4  0x00007ffff5e9d988 in __gnu_cxx::__verbose_terminate_handler() () at /var/tmp/portage/sys-devel/gcc-12.2.0/work/gcc-12.2.0/libstdc++-v3/libsupc++/vterminate.cc:95
#5  0x00007ffff5ea9386 in __cxxabiv1::__terminate(void (*)()) (handler=<optimized out>) at /var/tmp/portage/sys-devel/gcc-12.2.0/work/gcc-12.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:48
#6  0x00007ffff5ea93f1 in std::terminate() () at /var/tmp/portage/sys-devel/gcc-12.2.0/work/gcc-12.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:58
#7  0x0000555555be41de in std::thread::~thread() (this=0x17a5) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/bits/std_thread.h:152
#8  0x00007ffff610a738 in __run_exit_handlers (status=0, listp=0x7ffff62be818 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:113
#9  0x00007ffff610a83a in __GI_exit (status=<optimized out>) at exit.c:143
#10 0x0000555555ee503d in MainWindow::OnFileExit(wxCommandEvent&) (this=<optimized out>, event=<optimized out>) at /home/tatsh/dev/overlay/Cemu/src/gui/MainWindow.cpp:738
#11 0x0000555555b8ab76 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
#12 0x0000555555b8ace3 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) ()
#13 0x0000555555b8b0a9 in wxEvtHandler::TryHereOnly(wxEvent&) ()
#14 0x0000555555b8b12b in wxEvtHandler::ProcessEventLocally(wxEvent&) ()
#15 0x0000555555b8b1d1 in wxEvtHandler::ProcessEvent(wxEvent&) ()
#16 0x0000555555971ea1 in wxWindowBase::TryAfter(wxEvent&) ()
#17 0x0000555555b8bb07 in wxEvtHandler::SafelyProcessEvent(wxEvent&) ()
#18 0x000055555592edf6 in wxMenuBase::DoProcessEvent(wxMenuBase*, wxEvent&, wxWindow*) ()
#19 0x000055555592f0ac in wxMenuBase::SendEvent(int, int) ()
#20 0x00005555558e73f1 in menuitem_activate ()
#24 0x00007ffff6f21157 in <emit signal ??? on instance 0x555557a4fc10 [GtkMenuItem]> (instance=instance@entry=0x555557a4fc10, signal_id=<optimized out>, detail=detail@entry=0)
    at ../glib-2.72.3/gobject/gsignal.c:3553
    #21 0x00007ffff6f08649 in g_closure_invoke
    (closure=0x555557a4bcb0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffc100, invocation_hint=invocation_hint@entry=0x7fffffffc080)
    at ../glib-2.72.3/gobject/gclosure.c:830
    #22 0x00007ffff6f1a79a in signal_emit_unlocked_R
    (node=node@entry=0x5555578df5d0, detail=detail@entry=0, instance=instance@entry=0x555557a4fc10, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc100)
    at ../glib-2.72.3/gobject/gsignal.c:3743
    #23 0x00007ffff6f20bf9 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc2b0) at ../glib-2.72.3/gobject/gsignal.c:3496
#25 0x00007ffff75a01b4 in gtk_widget_activate (widget=widget@entry=0x555557a4fc10 [GtkMenuItem]) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkwidget.c:7845
#26 0x00007ffff7463de6 in gtk_menu_shell_activate_item (menu_shell=0x555557aae2b0 [GtkMenu], menu_item=0x555557a4fc10 [GtkMenuItem], force_deactivate=<optimized out>)
    at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmenushell.c:1375
#27 0x00007ffff74640c3 in gtk_menu_shell_button_release (widget=0x555557aae2b0 [GtkMenu], event=<optimized out>) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmenushell.c:791
#28 0x00007ffff75f4256 in _gtk_marshal_BOOLEAN__BOXEDv
    (closure=0x5555577fc0a0, return_value=0x7fffffffc5b0, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x555557882780)
    at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmarshalers.c:129
#29 0x00007ffff6f08862 in _g_closure_invoke_va
    (closure=closure@entry=0x5555577fc0a0, return_value=return_value@entry=0x7fffffffc5b0, instance=instance@entry=0x555557aae2b0, args=args@entry=0x7fffffffc680, n_params=1, param_types=0x555557882780)
    at ../glib-2.72.3/gobject/gclosure.c:893
#30 0x00007ffff6f202f2 in g_signal_emit_valist (instance=0x555557aae2b0, signal_id=84, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc680) at ../glib-2.72.3/gobject/gsignal.c:3406
#31 0x00007ffff6f21157 in g_signal_emit (instance=instance@entry=0x555557aae2b0, signal_id=<optimized out>, detail=detail@entry=0) at ../glib-2.72.3/gobject/gsignal.c:3553
#32 0x00007ffff759d244 in gtk_widget_event_internal (widget=widget@entry=0x555557aae2b0 [GtkMenu], event=event@entry=0x555557f0fd30)
    at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkwidget.c:7812
#33 0x00007ffff759fd72 in gtk_widget_event_internal (event=0x555557f0fd30, widget=0x555557aae2b0 [GtkMenu]) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkwidget.c:7383
#34 0x00007ffff744e330 in propagate_event_up (topmost=<optimized out>, event=<optimized out>, widget=0x555557aae2b0 [GtkMenu]) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmain.c:2588
#35 propagate_event (widget=widget@entry=0x555557a4fc10 [GtkMenuItem], event=event@entry=0x555557f0fd30, captured=captured@entry=0, topmost=topmost@entry=0x0)
    at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmain.c:2691
#36 0x00007ffff744f5ef in gtk_propagate_event (widget=widget@entry=0x555557a4fc10 [GtkMenuItem], event=event@entry=0x555557f0fd30) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmain.c:2725
#37 0x00007ffff744fd7d in gtk_main_do_event (event=0x555557f0fd30) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmain.c:1921
#38 gtk_main_do_event (event=<optimized out>) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmain.c:1691
#39 0x00007ffff7b1b435 in _gdk_event_emit (event=event@entry=0x555557f0fd30) at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gdk/gdkevents.c:73
#40 0x00007ffff7b4fb82 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
    at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gdk/x11/gdkeventsource.c:367
#41 0x00007ffff6fa5acb in g_main_dispatch (context=0x5555577e1930) at ../glib-2.72.3/glib/gmain.c:3417
#42 g_main_context_dispatch (context=0x5555577e1930) at ../glib-2.72.3/glib/gmain.c:4135
#43 0x00007ffff6fa5d78 in g_main_context_iterate (context=0x5555577e1930, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.72.3/glib/gmain.c:4211
#44 0x00007ffff6fa6063 in g_main_loop_run (loop=loop@entry=0x555558071b70) at ../glib-2.72.3/glib/gmain.c:4411
#45 0x00007ffff744ef4d in gtk_main () at /var/tmp/portage/x11-libs/gtk+-3.24.34/work/gtk+-3.24.34/gtk/gtkmain.c:1329
#46 0x00005555559afbd5 in wxGUIEventLoop::DoRun() ()
#47 0x0000555555ae102d in wxEventLoopBase::Run() ()
#48 0x0000555555ab64c6 in wxAppConsoleBase::OnRun() ()
#49 0x00005555560b7903 in wxEntry(int&, wchar_t**) ()
#50 0x0000555555f70640 in gui_create() () at /home/tatsh/dev/overlay/Cemu/src/gui/guiWrapper.cpp:42
#51 0x00005555558a5830 in mainEmulatorHLE() () at /home/tatsh/dev/overlay/Cemu/src/main.cpp:320
#52 0x00005555558a5b0a in main(int, char**) (argc=1, argv=0x7fffffffccb8) at /home/tatsh/dev/overlay/Cemu/src/main.cpp:421

GUI, Linux: crash when browsing folders with valid files that have a preview image

(Cemu2:16404): Gtk-CRITICAL **: 06:32:37.951: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
SIGSEGV!
Error: signal 11:
./src/Cemu2(+0x682209)[0x55ee2e114209]
/lib64/libc.so.6(+0x3dde0)[0x7f50b92e6de0]
/usr/lib64/libpng16.so.16(+0xd376)[0x7f50bac73376]
/usr/lib64/libpng16.so.16(+0x1df09)[0x7f50bac83f09]
/usr/lib64/libpng16.so.16(+0x21eeb)[0x7f50bac87eeb]
/usr/lib64/libpng16.so.16(+0xe5f6)[0x7f50bac745f6]
/usr/lib64/libpng16.so.16(png_process_data+0x3b)[0x7f50bac7517b]
/usr/lib64/libgdk_pixbuf-2.0.so.0(+0x1dd29)[0x7f50b9dd2d29]
/usr/lib64/libgdk_pixbuf-2.0.so.0(+0x1210b)[0x7f50b9dc710b]
/usr/lib64/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_loader_write+0x21e)[0x7f50b9dc7c8e]
/usr/lib64/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_new_from_file_at_scale+0x136)[0x7f50b9dc4d16]
/usr/lib64/libgtk-3.so.0(+0x1ec017)[0x7f50ba5ec017]
/usr/lib64/libgtk-3.so.0(+0x1e1081)[0x7f50ba5e1081]
/usr/lib64/libgtk-3.so.0(+0x1eedc8)[0x7f50ba5eedc8]
/usr/lib64/libgtk-3.so.0(+0x1eee9d)[0x7f50ba5eee9d]
/usr/lib64/libgtk-3.so.0(+0x143e70)[0x7f50ba543e70]
/usr/lib64/libglib-2.0.so.0(g_hash_table_foreach+0x60)[0x7f50ba171a30]
/usr/lib64/libgtk-3.so.0(+0x143d49)[0x7f50ba543d49]
/usr/lib64/libgtk-3.so.0(+0x1495bb)[0x7f50ba5495bb]
/usr/lib64/libgtk-3.so.0(+0x3fb1b7)[0x7f50ba7fb1b7]
/usr/lib64/libgobject-2.0.so.0(+0x16862)[0x7f50ba0e6862]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit_valist+0xf73)[0x7f50ba0fef53]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit+0x97)[0x7f50ba0ff157]
/usr/lib64/libgtk-3.so.0(gtk_cell_area_apply_attributes+0xb6)[0x7f50ba545a86]
/usr/lib64/libgtk-3.so.0(+0x37bf17)[0x7f50ba77bf17]
/usr/lib64/libgtk-3.so.0(+0x37f107)[0x7f50ba77f107]
/usr/lib64/libgtk-3.so.0(+0x385675)[0x7f50ba785675]
/usr/lib64/libgdk-3.so.0(+0x2ec89)[0x7f50bacedc89]
/usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x175)[0x7f50ba1839d5]
/usr/lib64/libglib-2.0.so.0(+0x54d78)[0x7f50ba183d78]
/usr/lib64/libglib-2.0.so.0(g_main_loop_run+0x73)[0x7f50ba184063]
/usr/lib64/libgtk-3.so.0(gtk_main+0x6d)[0x7f50ba64ef4d]
terminate called without an active exception
Aborted (core dumped)

In the Gtk+ open file dialog, as soon as I click to browse the folder with a WUX file, the app immediately crashes with the above.

I checked other Gtk+ apps like Audacity. Previews show fine in the open file dialog and the apps do not crash. This only happens in Cemu.

Just to make sure, I removed ROM Properties from my machine while testing.

Make a commitment to support non-systemd systems

#18 seems to imply that Cemu depends on systemd-libs.

Please may the Cemu team make a commitment to support non-systemd distros by making the dependency on systemd optional, or ideally, by dropping it entirely?

Running vcpkg install - failed

Linux version on Ubuntu, performed all the steps according to BUILD.md:

$ cmake .. -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang-12 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-12 -G Ninja
[...]
Installing 51/102 boost-context:x64-linux...
Building boost-context[core]:x64-linux...
-- Installing port from location: /home/user/Cemu/dependencies/vcpkg/buildtrees/versioning_/versions/boost-context/24210ac19518ca74072938e9569a9e9f5b3476ba
-- Downloading https://github.com/boostorg/context/archive/boost-1.79.0.tar.gz -> boostorg-context-boost-1.79.0.tar.gz...
-- Extracting source /home/user/Cemu/dependencies/vcpkg/downloads/boostorg-context-boost-1.79.0.tar.gz
-- Using source at /home/user/Cemu/dependencies/vcpkg/buildtrees/boost-context/src/ost-1.79.0-c7ed8111f4.clean
-- Including /home/user/Cemu/dependencies/vcpkg/buildtrees/boost-context/vcpkg-b2-options.cmake
-- Getting CMake variables for x64-linux
-- Configuring x64-linux
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Copying headers
-- Copying headers done
-- Installing: /home/user/Cemu/dependencies/vcpkg/packages/boost-context_x64-linux/share/boost-context/usage
-- Installing: /home/user/Cemu/dependencies/vcpkg/packages/boost-context_x64-linux/share/boost-context/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: "/home/user/.cache/vcpkg/archives/4c/4c6a94ecea790b05707cc15753270ac4ff849ba25f05d6c6070ac676b816e11d.zip"
Elapsed time to handle boost-context:x64-linux: 3.071 s
Installing 52/102 boost-coroutine:x64-linux...
Building boost-coroutine[core]:x64-linux...
-- Installing port from location: /home/user/Cemu/dependencies/vcpkg/buildtrees/versioning_/versions/boost-coroutine/b953ff17be4b4da2bb6b898c80b12c4185b3a821
-- Downloading https://github.com/boostorg/coroutine/archive/boost-1.79.0.tar.gz -> boostorg-coroutine-boost-1.79.0.tar.gz...
[DEBUG] To include the environment variables in debug output, pass --debug-env
[DEBUG] Feature flag 'binarycaching' unset
[DEBUG] Feature flag 'manifests' = off
[DEBUG] Feature flag 'compilertracking' unset
[DEBUG] Feature flag 'registries' unset
[DEBUG] Feature flag 'versions' unset
[DEBUG] 19279: popen( curl --fail -L https://github.com/boostorg/coroutine/archive/boost-1.79.0.tar.gz --create-dirs --output /home/user/Cemu/dependencies/vcpkg/downloads/boostorg-coroutine-boost-1.79.0.tar.gz.19279.part 2>&1)
[DEBUG] 19279: cmd_execute_and_stream_data() returned 22 after   847312 us
Error: Failed to download from mirror set:
https://github.com/boostorg/coroutine/archive/boost-1.79.0.tar.gz:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0    26    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 500


[DEBUG] /mnt/vss/_work/1/s/src/vcpkg/base/downloads.cpp(766): 
[DEBUG] Time in subprocesses: 848833 us
[DEBUG] Time in parsing JSON: 4 us
[DEBUG] Time in JSON reader: 0 us
[DEBUG] Time in filesystem: 320 us
[DEBUG] Time in loading ports: 0 us
[DEBUG] Exiting after 849.7 ms (847754 us)

CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:32 (message):
      
      Failed to download file with error: 1
      If you use a proxy, please check your proxy setting. Possible causes are:
      
      1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable
         to `https://address:port`. This is not correct, because `https://` prefix
         claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr
         , etc..) is an HTTP proxy. Try setting `http://address:port` to both
         HTTP_PROXY and HTTPS_PROXY instead.
      
      2. You are using Fiddler. Currently a bug (https://github.com/microsoft/vcpkg/issues/17752)
         will set HTTPS_PROXY to `https://fiddler_address:port` which lead to problem 1 above.
         Workaround is open Windows 10 Settings App, and search for Proxy Configuration page,
         Change `http=address:port;https=address:port` to `address`, and fill the port number.
      
      3. Your proxy's remote server is out of service.
      
      In future vcpkg releases, if you are using Windows, you no longer need to set
      HTTP(S)_PROXY environment variables. Vcpkg will simply apply Windows IE Proxy
      Settings set by your proxy software. See (https://github.com/microsoft/vcpkg-tool/pull/49)
      and (https://github.com/microsoft/vcpkg-tool/pull/77)
      
      Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues

Call Stack (most recent call first):
  scripts/cmake/vcpkg_download_distfile.cmake:273 (z_vcpkg_download_distfile_show_proxy_and_fail)
  scripts/cmake/vcpkg_from_github.cmake:106 (vcpkg_download_distfile)
  buildtrees/versioning_/versions/boost-coroutine/b953ff17be4b4da2bb6b898c80b12c4185b3a821/portfile.cmake:3 (vcpkg_from_github)
  scripts/ports.cmake:147 (include)


error: building boost-coroutine:x64-linux failed with: BUILD_FAILED
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
    https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+boost-coroutine
You can submit a new issue at:
    https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[boost-coroutine]+Build+error
Include '[boost-coroutine] Build error' in your bug report title, the following version information in your bug description, and attach any relevant failure logs from above.
    vcpkg-tool version: 2022-07-21-a0e87e227afb536c62188c11ad029954f28fdb22
    vcpkg-scripts version: 1b0252ca 2022-08-22 (5 days ago)

You can also use the prefilled template from /home/user/Cemu/build/vcpkg_installed/vcpkg/issue_body.md.

-- Running vcpkg install - failed
CMake Error at dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake:860 (message):
  vcpkg install failed.  See logs for more information:
  /home/user/Cemu/build/vcpkg-manifest-install.log
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake:124 (include)
  CMakeLists.txt:18 (project)


CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
-- Configuring incomplete, errors occurred!

[Bug] Random number generator causing static assert

Cemu
Version 2.0(Latest Upstream)
Test Platform: Linux

Issue

Discover why random number generator is causing static assert particularly in cemu

Other Notes

It works outside of cemu repository using clang14 and libstdc++

Example of function having issue

std::string GenerateRandomString(size_t length, std::string_view characters)
{
    assert(!characters.empty());
    std::stringstream result;

    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<decltype(characters.size())> index_dist(0, characters.size() - 1);
    for (uint32_t i = 0; i < length; ++i)
    {
        result << characters[index_dist(gen)]; //Issue occurs with this function[index_dist(gen)] during compilation
    }

    return result.str();
}

Linux metadata files

Hey Cemu!,

Cool to see that your project is going Open Source. It's very admirable and I hope that you'll not be completely crushed under all the feedback and comments you're getting. That said, I do have my own comments to add.

Linux metadata

With Linux support now being a very viable option, it's important to also have some stuff in place for the Linux ecosystem at large. For start, there are certain standards that most Linux distributions and Desktop Environments adhere to:

https://www.freedesktop.org/wiki/Specifications/

Stop reading now! It's way too much to tackle all at once, so let's help you in breaking it down a bit.

info.cemu.Cemu.desktop

This is the file that tells desktop environments like KDE and GNOME, that your binary is actually an application that the user should see in the UI. It uses tags and descriptions for filtering.

Example

info.cemu.Cemu.appdate.xml

This is a big XML that gives an explanation about the application, that has information about the developer, and that even provides links for help documentation, code contributions or donations. Also important, flatpaks on Flathub must have license information and age-ratings information, so that user's know what is coming to them.

Example

info.cemu.Cemu.svg

An icon. While it's not critical... svg is recommended since the days of 32px icons are numbered.

Example

Summary

  • .desktop
  • .appdata.xml
  • .svg

Breath of the Wild - Crashes with pre-rendered Scenes?

Version: CEMU 2.0 - Windows Version.
Hardware: Core i5 8500, 32GB DDR4 3200, GTX 1660 ti (DCH Driver version 516.94)
Game: Breath of the Wild (Version 208, DLC 80)
Log-File: log.txt
Settings: It is a completely clean installation. All Default Settings. No Graphics Packs used.

I gave my 100% save state a go. All Blights have been taken care o before. The Moment, the Champion Scenes play, i get a black screen on the game for about 1-2 seconds. Then CEMU stops. No Error Message. It simply closes. I created a clean install for CEMU 1.27.1 to test, wether it worked there. Again, All default Settings. No Graphics Packs used. And yes, in 1.27.1 the scenes ran without a problem.

With no graphics packs to create any problems and all default settings on both Versions, I can only assume, that CEMU 2.0 has an issue either all, or at least that particular prerendered cutscene. To make sure, if its just that one or any cutscene, I created an empty profile to start a game from scratch, left the Shrine of Ressurrection, ran to the Tower and started that Cutscene just the same. And again, CEMU 2.0 crashed, CEMU 1.27.1 didnt. It seems, Breath of the Wild crashes with any prerendered cutscene. Back to the 100% save state I played memories and hat the same crashes on CEMU v2.0, but no crashes in CEMU v1.27.1.

Edit: I didn't use any additional plugins or mods in CEMU.

Comment after the case was closed: Thank you for fixing this so very fast! Great work!

[Discussion] Should being packaged by Linux distributions be a supported use-case?

Following on from my comments in #74 I'd like to bring the question of whether or not Cemu being packaged by Linux distributions should be a supported use-case? Or should the focus be on providing "official" builds (via Flatpak, AppImage, or just a self-contained archive)?

Benefits of allowing distribution packages:

  • Users can install Cemu via the same mechanism they use to install the majority of the packages they use (*)
  • Users can use system libraries that are more optimized for the specific distribution (this is always touted as a major con by people who support trying to package every application under the sun, but in practice there is very little value in this from the perspective of the users and the application developers).

Cons:

  • Increased number of bug reports from users using system packaged Cemu due to different versions of dependencies in use and/or differences in the build environment (such as default CFLAGS/LDFLAGS)
  • Increased time spent triaging issues that are reported (what Cemu version is in use, what libraries is it using, etc)
  • Users must wait until the package is updated by their maintainer for any Cemu fixes (which may be delayed by dependency mismatches, maintainer availability etc).
  • Increased complexity of code due to having to maintain compatibility with several dependency versions at once
  • Rolling back Cemu may be difficult/impossible due to dependency mismatch

Ultimately distribution packages are going to lead to an increase in the number of user issues for various reasons with a corresponding decrease in the ability of Cemu developers to help (for instance what is the Cemu dev/user supposed to do when the issue exists in library version a.b.c when version a.b.d is out but the distribution has not yet updated to it?).

  • I note that many (most?) distributions support Flatpak now and that so long as the distribution is not using a custom software center Flatpak support is likely to be directly integrated such that Flatpaks can be installed and managed that way. In that situation installing Flatpaks can be just as seamless as system packages.

Benefits of NOT supporting distribution packages and only supporting release binaries:

  • Releases have the exact dependencies that the release was developed against. E.g every user of version 2.4 has the exact same set of dependencies as every other user.
  • Cemu can integrate an auto-update mechanism. For instance allowing users to check for updates and install them from within Cemu itself.
  • Users can downgrade to old versions as needed without otherwise affecting their systems (for instance if there's a regression on a particular game with the new version).
  • Users still have a good experience with Cemu even if they're on a "stable" distribution which doesn't do major version updates for existing packages.
  • Reduced code complexity due to only needing to support a certain set of application dependencies at once.

Cons:

  • App isolation technologies like Flatpak and AppImage can have issues fully integrating with the rest of the system (such as GTK themes, fonts)
  • Refusing to support system packages tends to be negatively received by a certain subset of "purist" Linux users. These users very much tend to be far more vocal than other users which can make it seem like this group is larger than it actually is. (Most users are more pragmatic and/or simply don't care about how the application is delivered to them, they are just happy to have Cemu working on Linux as is).

I would like to note that I am an objective observer here, without any real feelings on which option is best for Cemu. I do a fair amount of work on system packaging including complex applications like Cemu and so see a lot of this first-hand. Many applications are simply ill-suited for being available in distribution package repos and trying to shoehorn them in often leads to grief that could have been avoided if application developers had simply realized that allowing packaging was a bad decision from the beginning. I see individuals like @Tachi107 either implicitly or explicitly working on various initiatives to pave the way for system packaging and I worry that @Exzap, being as far as I can tell generally unfamiliar with Linux and it's community except for the work involved in the initial porting, may not have realized the full implications of much of this. Allowing and supporting system packages WILL be opening a can of worms when the needs of the Linux community could just as well be served by providing high quality binary distributions of Cemu.

Build fails on Ubuntu 20.04

Hi,

After installing everything mentioned in the BUILD.md and downloading a newer cmake and the latest vulkan dsk, and doing the following:

export $PATH=/home/ross/project/cmake-3.24.1-linux-x86_64/bin:$PATH
export VULKAN_SDK=/home/ross/project/vulkan_sdk/x86_64
cmake .. -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang-12 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-12 -G Ninja -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja

I get this error:

$ cmake .. -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang-12 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-12 -G Ninja -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja
-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
The following packages will be built and installed:
    wxwidgets[core]:x64-linux -> 3.2.0#1 -- /home/ross/project/Cemu/dependencies/vcpkg_overlay_ports/wxwidgets
    zstd[core]:x64-linux -> 1.5.2#1 -- /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/versioning_/versions/zstd/2f8a5da3f925dc994500dabb2d3b5c7e11df0afd
Restored 0 package(s) from /home/ross/.cache/vcpkg/archives in 8 us. Use --debug to see more details.
Installing 1/2 wxwidgets:x64-linux...
Building wxwidgets[core]:x64-linux...
-- Installing port from location: /home/ross/project/Cemu/dependencies/vcpkg_overlay_ports/wxwidgets
-- Using cached wxWidgets-wxWidgets-v3.2.0.tar.gz.
-- Cleaning sources at /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/src/v3.2.0-b1a1c2cb85.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/ross/project/Cemu/dependencies/vcpkg/downloads/wxWidgets-wxWidgets-v3.2.0.tar.gz
-- Applying patch install-layout.patch
-- Applying patch relocatable-wx-config.patch
-- Applying patch fix-libs-export.patch
-- Applying patch fix-pcre2.patch
-- Applying patch gtk3-link-libraries.patch
-- Using source at /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/src/v3.2.0-b1a1c2cb85.clean
CMake Warning at /home/ross/project/Cemu/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake:16 (message):
  Port wxwidgets currently requires the following packages from the system
  package manager:

      pkg-config
      GTK 3
      libsecret
      libgcrypt
      libsystemd

  These development packages can be installed on Ubuntu systems via

      sudo apt-get install pkg-config libgtk-3-dev libsecret-1-dev libgcrypt20-dev libsystemd-dev

Call Stack (most recent call first):
  scripts/ports.cmake:147 (include)


-- Configuring x64-linux
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:96 (message):
    Command failed: /home/ross/project/Cemu/dependencies/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja -v
    Working Directory: /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/x64-linux-rel/vcpkg-parallel-configure
    Error code: 1
    See logs for more information:
      /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/config-x64-linux-CMakeCache.txt.log
      /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/config-x64-linux-CMakeCache.txt.log
      /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/config-x64-linux-out.log

Call Stack (most recent call first):
  /home/ross/project/Cemu/build/vcpkg_installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_configure.cmake:238 (vcpkg_execute_required_process)
  /home/ross/project/Cemu/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake:85 (vcpkg_cmake_configure)
  scripts/ports.cmake:147 (include)


error: building wxwidgets:x64-linux failed with: BUILD_FAILED
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
    https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+wxwidgets
You can submit a new issue at:
    https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[wxwidgets]+Build+error
Include '[wxwidgets] Build error' in your bug report title, the following version information in your bug description, and attach any relevant failure logs from above.
    vcpkg-tool version: 2022-07-21-a0e87e227afb536c62188c11ad029954f28fdb22
    vcpkg-scripts version: 1b0252ca7 2022-08-22 (2 days ago)

You can also use the prefilled template from /home/ross/project/Cemu/build/vcpkg_installed/vcpkg/issue_body.md.

-- Running vcpkg install - failed
CMake Error at dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake:860 (message):
  vcpkg install failed.  See logs for more information:
  /home/ross/project/Cemu/build/vcpkg-manifest-install.log
Call Stack (most recent call first):
  /home/ross/project/cmake-3.24.1-linux-x86_64/share/cmake-3.24/Modules/CMakeDetermineSystem.cmake:124 (include)
  CMakeLists.txt:18 (project)


-- Configuring incomplete, errors occurred!

So... I dig in...

run failed command:

cd /home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/x64-linux-rel/vcpkg-parallel-configure
    Error code: 1
/home/ross/project/Cemu/dependencies/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja -v

output
======
[1/2] "/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" -E chdir "../../x64-linux-dbg" "/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/src/v3.2.0-b1a1c2cb85.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=/home/ross/project/Cemu/dependencies/vcpkg/packages/wxwidgets_x64-linux/debug" "-DwxUSE_SOUND=OFF" "-DwxUSE_PRIVATE_FONTS=OFF" "-DwxUSE_REGEX=sys" "-DwxUSE_ZLIB=sys" "-DwxUSE_EXPAT=sys" "-DwxUSE_LIBJPEG=sys" "-DwxUSE_LIBPNG=sys" "-DwxUSE_LIBTIFF=sys" "-DwxUSE_SECRETSTORE=FALSE" "-DwxUSE_STL=ON" "-DwxUSE_STD_CONTAINERS=OFF" "-DwxBUILD_DISABLE_PLATFORM_LIB_DIR=ON" "-DwxUSE_LIBLZMA=OFF" "-DwxUSE_JOYSTICK=OFF" "-DwxUSE_SOCKETS=OFF" "-DwxUSE_IPV6=OFF" "-DwxUSE_FS_ZIP=OFF" "-DwxUSE_FS_ARCHIVE=OFF" "-DwxUSE_FS_INET=OFF" "-DwxUSE_ARCHIVE_STREAMS=OFF" "-DwxUSE_ZIPSTREAM=OFF" "-DwxUSE_TARSTREAM=OFF" "-DwxUSE_PROTOCOL=OFF" "-DwxUSE_PROTOCOL_FTP=OFF" "-DwxUSE_PROTOCOL_HTTP=OFF" "-DwxUSE_URL=OFF" "-DwxUSE_SOUND=OFF" "-DwxUSE_WEBVIEW=OFF" "-DwxUSE_RICHTEXT=OFF" "-DwxUSE_SVG=OFF" "-DwxUSE_GIF=OFF" "-DwxUSE_PNM=OFF" "-DwxUSE_PCX=OFF" "-DwxUSE_WEBREQUEST=OFF" "-DwxUSE_ACTIVEX=OFF" "-DwxUSE_REGEX=OFF" "-DwxUSE_NANOSVG=OFF" "-DwxUSE_NANOSVG_EXTERNAL=OFF" "-DwxUSE_WEBREQUEST_CURL=ON" "-DPKG_CONFIG_ARGN=--static" "-DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config" "-DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON" "-DCMAKE_MAKE_PROGRAM=/home/ross/project/Cemu/dependencies/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja" "-DCMAKE_SYSTEM_NAME=Linux" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/toolchains/linux.cmake" "-DVCPKG_TARGET_TRIPLET=x64-linux" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/home/ross/project/Cemu/dependencies/vcpkg" "-D_VCPKG_INSTALLED_DIR=/home/ross/project/Cemu/build/vcpkg_installed" "-DVCPKG_MANIFEST_INSTALL=OFF"
FAILED: ../../x64-linux-dbg/CMakeCache.txt 
"/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" -E chdir "../../x64-linux-dbg" "/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/src/v3.2.0-b1a1c2cb85.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=/home/ross/project/Cemu/dependencies/vcpkg/packages/wxwidgets_x64-linux/debug" "-DwxUSE_SOUND=OFF" "-DwxUSE_PRIVATE_FONTS=OFF" "-DwxUSE_REGEX=sys" "-DwxUSE_ZLIB=sys" "-DwxUSE_EXPAT=sys" "-DwxUSE_LIBJPEG=sys" "-DwxUSE_LIBPNG=sys" "-DwxUSE_LIBTIFF=sys" "-DwxUSE_SECRETSTORE=FALSE" "-DwxUSE_STL=ON" "-DwxUSE_STD_CONTAINERS=OFF" "-DwxBUILD_DISABLE_PLATFORM_LIB_DIR=ON" "-DwxUSE_LIBLZMA=OFF" "-DwxUSE_JOYSTICK=OFF" "-DwxUSE_SOCKETS=OFF" "-DwxUSE_IPV6=OFF" "-DwxUSE_FS_ZIP=OFF" "-DwxUSE_FS_ARCHIVE=OFF" "-DwxUSE_FS_INET=OFF" "-DwxUSE_ARCHIVE_STREAMS=OFF" "-DwxUSE_ZIPSTREAM=OFF" "-DwxUSE_TARSTREAM=OFF" "-DwxUSE_PROTOCOL=OFF" "-DwxUSE_PROTOCOL_FTP=OFF" "-DwxUSE_PROTOCOL_HTTP=OFF" "-DwxUSE_URL=OFF" "-DwxUSE_SOUND=OFF" "-DwxUSE_WEBVIEW=OFF" "-DwxUSE_RICHTEXT=OFF" "-DwxUSE_SVG=OFF" "-DwxUSE_GIF=OFF" "-DwxUSE_PNM=OFF" "-DwxUSE_PCX=OFF" "-DwxUSE_WEBREQUEST=OFF" "-DwxUSE_ACTIVEX=OFF" "-DwxUSE_REGEX=OFF" "-DwxUSE_NANOSVG=OFF" "-DwxUSE_NANOSVG_EXTERNAL=OFF" "-DwxUSE_WEBREQUEST_CURL=ON" "-DPKG_CONFIG_ARGN=--static" "-DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config" "-DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON" "-DCMAKE_MAKE_PROGRAM=/home/ross/project/Cemu/dependencies/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja" "-DCMAKE_SYSTEM_NAME=Linux" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/toolchains/linux.cmake" "-DVCPKG_TARGET_TRIPLET=x64-linux" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/home/ross/project/Cemu/dependencies/vcpkg" "-D_VCPKG_INSTALLED_DIR=/home/ross/project/Cemu/build/vcpkg_installed" "-DVCPKG_MANIFEST_INSTALL=OFF"
CMake Error at /home/ross/project/cmake-3.24.1-linux-x86_64/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GTK3 (missing: GTK3_INCLUDE_DIRS GTK3_LIBRARIES)
Call Stack (most recent call first):
  /home/ross/project/cmake-3.24.1-linux-x86_64/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  build/cmake/modules/FindGTK3.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /home/ross/project/Cemu/dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake:826 (_find_package)
  build/cmake/toolkit.cmake:81 (find_package)
  build/cmake/main.cmake:15 (include)
  CMakeLists.txt:100 (include)


-- Configuring incomplete, errors occurred!
See also "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/x64-linux-dbg/CMakeFiles/CMakeOutput.log".
See also "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/x64-linux-dbg/CMakeFiles/CMakeError.log".
[2/2] "/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" -E chdir ".." "/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/src/v3.2.0-b1a1c2cb85.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=/home/ross/project/Cemu/dependencies/vcpkg/packages/wxwidgets_x64-linux" "-DwxUSE_SOUND=OFF" "-DwxUSE_PRIVATE_FONTS=OFF" "-DwxUSE_REGEX=sys" "-DwxUSE_ZLIB=sys" "-DwxUSE_EXPAT=sys" "-DwxUSE_LIBJPEG=sys" "-DwxUSE_LIBPNG=sys" "-DwxUSE_LIBTIFF=sys" "-DwxUSE_SECRETSTORE=FALSE" "-DwxUSE_STL=ON" "-DwxUSE_STD_CONTAINERS=OFF" "-DwxBUILD_DISABLE_PLATFORM_LIB_DIR=ON" "-DwxUSE_LIBLZMA=OFF" "-DwxUSE_JOYSTICK=OFF" "-DwxUSE_SOCKETS=OFF" "-DwxUSE_IPV6=OFF" "-DwxUSE_FS_ZIP=OFF" "-DwxUSE_FS_ARCHIVE=OFF" "-DwxUSE_FS_INET=OFF" "-DwxUSE_ARCHIVE_STREAMS=OFF" "-DwxUSE_ZIPSTREAM=OFF" "-DwxUSE_TARSTREAM=OFF" "-DwxUSE_PROTOCOL=OFF" "-DwxUSE_PROTOCOL_FTP=OFF" "-DwxUSE_PROTOCOL_HTTP=OFF" "-DwxUSE_URL=OFF" "-DwxUSE_SOUND=OFF" "-DwxUSE_WEBVIEW=OFF" "-DwxUSE_RICHTEXT=OFF" "-DwxUSE_SVG=OFF" "-DwxUSE_GIF=OFF" "-DwxUSE_PNM=OFF" "-DwxUSE_PCX=OFF" "-DwxUSE_WEBREQUEST=OFF" "-DwxUSE_ACTIVEX=OFF" "-DwxUSE_REGEX=OFF" "-DwxUSE_NANOSVG=OFF" "-DwxUSE_NANOSVG_EXTERNAL=OFF" "-DwxUSE_WEBREQUEST_CURL=ON" "-DPKG_CONFIG_ARGN=--static" "-DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config" "-DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON" "-DCMAKE_MAKE_PROGRAM=/home/ross/project/Cemu/dependencies/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja" "-DCMAKE_SYSTEM_NAME=Linux" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/toolchains/linux.cmake" "-DVCPKG_TARGET_TRIPLET=x64-linux" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/home/ross/project/Cemu/dependencies/vcpkg" "-D_VCPKG_INSTALLED_DIR=/home/ross/project/Cemu/build/vcpkg_installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DwxBUILD_DEBUG_LEVEL=0"
FAILED: ../CMakeCache.txt 
"/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" -E chdir ".." "/home/ross/project/cmake-3.24.1-linux-x86_64/bin/cmake" "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/src/v3.2.0-b1a1c2cb85.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=/home/ross/project/Cemu/dependencies/vcpkg/packages/wxwidgets_x64-linux" "-DwxUSE_SOUND=OFF" "-DwxUSE_PRIVATE_FONTS=OFF" "-DwxUSE_REGEX=sys" "-DwxUSE_ZLIB=sys" "-DwxUSE_EXPAT=sys" "-DwxUSE_LIBJPEG=sys" "-DwxUSE_LIBPNG=sys" "-DwxUSE_LIBTIFF=sys" "-DwxUSE_SECRETSTORE=FALSE" "-DwxUSE_STL=ON" "-DwxUSE_STD_CONTAINERS=OFF" "-DwxBUILD_DISABLE_PLATFORM_LIB_DIR=ON" "-DwxUSE_LIBLZMA=OFF" "-DwxUSE_JOYSTICK=OFF" "-DwxUSE_SOCKETS=OFF" "-DwxUSE_IPV6=OFF" "-DwxUSE_FS_ZIP=OFF" "-DwxUSE_FS_ARCHIVE=OFF" "-DwxUSE_FS_INET=OFF" "-DwxUSE_ARCHIVE_STREAMS=OFF" "-DwxUSE_ZIPSTREAM=OFF" "-DwxUSE_TARSTREAM=OFF" "-DwxUSE_PROTOCOL=OFF" "-DwxUSE_PROTOCOL_FTP=OFF" "-DwxUSE_PROTOCOL_HTTP=OFF" "-DwxUSE_URL=OFF" "-DwxUSE_SOUND=OFF" "-DwxUSE_WEBVIEW=OFF" "-DwxUSE_RICHTEXT=OFF" "-DwxUSE_SVG=OFF" "-DwxUSE_GIF=OFF" "-DwxUSE_PNM=OFF" "-DwxUSE_PCX=OFF" "-DwxUSE_WEBREQUEST=OFF" "-DwxUSE_ACTIVEX=OFF" "-DwxUSE_REGEX=OFF" "-DwxUSE_NANOSVG=OFF" "-DwxUSE_NANOSVG_EXTERNAL=OFF" "-DwxUSE_WEBREQUEST_CURL=ON" "-DPKG_CONFIG_ARGN=--static" "-DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config" "-DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON" "-DCMAKE_MAKE_PROGRAM=/home/ross/project/Cemu/dependencies/vcpkg/downloads/tools/ninja/1.10.2-linux/ninja" "-DCMAKE_SYSTEM_NAME=Linux" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/toolchains/linux.cmake" "-DVCPKG_TARGET_TRIPLET=x64-linux" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/home/ross/project/Cemu/dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/home/ross/project/Cemu/dependencies/vcpkg" "-D_VCPKG_INSTALLED_DIR=/home/ross/project/Cemu/build/vcpkg_installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DwxBUILD_DEBUG_LEVEL=0"
CMake Error at /home/ross/project/cmake-3.24.1-linux-x86_64/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GTK3 (missing: GTK3_INCLUDE_DIRS GTK3_LIBRARIES)
Call Stack (most recent call first):
  /home/ross/project/cmake-3.24.1-linux-x86_64/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  build/cmake/modules/FindGTK3.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /home/ross/project/Cemu/dependencies/vcpkg/scripts/buildsystems/vcpkg.cmake:826 (_find_package)
  build/cmake/toolkit.cmake:81 (find_package)
  build/cmake/main.cmake:15 (include)
  CMakeLists.txt:100 (include)


-- Configuring incomplete, errors occurred!
See also "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/x64-linux-rel/CMakeFiles/CMakeOutput.log".
See also "/home/ross/project/Cemu/dependencies/vcpkg/buildtrees/wxwidgets/x64-linux-rel/CMakeFiles/CMakeError.log".
ninja: build stopped: subcommand failed.

So... interesting Could NOT find GTK3 (missing: GTK3_INCLUDE_DIRS GTK3_LIBRARIES)

But it is installed:

$ dpkg -L libgtk-3-dev | grep '\.pc'
/usr/lib/x86_64-linux-gnu/pkgconfig/gdk-3.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gdk-broadway-3.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gdk-wayland-3.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gdk-x11-3.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-3.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-broadway-3.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-unix-print-3.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-wayland-3.0.pc

Cemu 2.0 poor windows scaling at anything other than 100%

When Windows scaling is set to anything other than 100% the gui window elements and anything rendered in the window exhibits blurry scaling. The previous experimental versions and the last stable version do not have this issue.

[Feature Request] Add Achievements Support with RetroAchievements

[Feature Requested]
RetroAchievements is a web-service that allows for creation of achievements in older systems.

[Requirements]
According to their official documentation the following needs to happen before support can be added:

  • Emulation - Either a Standalone or Libretro Core
  • Exposed Memory - The emulator must expose the emulated RAM
  • Achievement Creation Support - They prefer Libretro Core for easier integration into their toolsets, but other standalones exist.
  • Game Identification - Must be able to uniquely identify the games for the system
  • Server Support - This is handled on RetroAchievement's side.

[My Thoughts]
This is probably not going to happen any time soon. But I figured I would create this Feature Request to spark interest in anyone who would might want to try adding support, as well as possibly helping point in a direction that might lead to achievement support one day; as several things need to happen first such as exposing the emulated RAM, adding UI elements, and possibly debugging tools.

[More Reading]
rcheevos: Library to parse and evaluate achievements and leaderboards for RetroAchievements
RAIntegration - The DLL responsible to integrate emulators with RetroAchievements.org

Other standalones that support Retroachievements:

[Feature Request] Add snap packages

Packagers often choose Snap because as a snap because one can be sure that the app is always sandboxed by default. The dev can ship ANYTHING from libraries, apps, server/CLI software, even a modified Linux kernel, and so on.

No need to make the package executable as a snap (which is the case in AppImage, and already too much for a new user coming from Windows). Snaps, while once installed are easily and automatically updated. Regular users will very commonly NOT update manually.

It would be just an easy install for new users (and as they so generally start off on Ubuntu). A one click snap install from the Software would not hurt other users either.

Snaps always have all dependencies. Flatpaks and appimages strangely always dont carry them. Snapd is installed by default on many a Linux distros (a misconception that its only a Ubuntu thing).

Also against common misconception; Snap is open source. The part that is closed source is the server that hosts them - if there was a backdoor (this type of FUD is spread also) in snap, it would be discovered because it’s open source. The proprietary snap server is no worse than using, say Reddit.

KDE, Microsoft, Google and Mozilla and so many more big players have official snap packages, in one place. Centralization is NOT always a bad thing. For example flatpaks, they can be here and there, just like in the dangerous old PPA-model. 'Nuff said.

Thanks alot for making Linux more easier for the beginners to start with!

Super Smash Bros U does not boot on Linux

I was able to compile Cemu 2.0 on Lubuntu 22.04. Some games work, but others do not. This includes Super Smash Bros U which crashes on boot. I have attached a log file and a backtrace to help troubleshoot the issue. It may be some sort of threading issue as gdb says at the beginning __pthread_kill_implementation (no_tid=0, signo=5, threadid=140731614217792) at ./nptl/pthread_kill.c:4444 ./nptl/pthread_kill.c: No such file or directory.
log:
log.txt
gdb backtrace
gdb-CemuSSBU.txt

Specs:
Core i9 11900K
16GB RAM
AMD Radeon RX 6800
Mesa 22.3.0-devel

Cubeb audio api does not select Windows default audio device

Cubeb should be aware of the set default audio device when it's changed in the windows settings. Other emulators that use cubeb like dolphin, duckstation, pcsx2, rpcs3, citra and yuzu automatically switch to the selected default device in windows, especially if the default device is changed when the emulator isn't open. This is a minor inconvenience. That's why there is an auto/default setting under the audio device selection in emulators like yuzu and rpcs3.
Screenshot (10)

[Linux] Build failure due to SDL

Building on linux fails at the very end of the compilation process, related to SDL:

/usr/bin/ld: vcpkg_installed/x64-linux/lib/libSDL2.a(SDL_waylandevents.c.o): in function `pointer_handle_button':
SDL_waylandevents.c:(.text+0x187e): undefined reference to `libdecor_frame_move'
/usr/bin/ld: SDL_waylandevents.c:(.text+0x1992): undefined reference to `libdecor_frame_resize'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Relevant info:

  • OS: LInux Mint 21 (Ubuntu 22.04 base) / kernel 5.15
  • Cmake version: 3.24.0
  • SDL version: 2.0.20
  • Commit tested: a2abffd
  • Full build log: build.log

Linking fails on Linux

Build fails while linking with a lot of "undefined reference to `libdecor..." errors, here's the output:

[482/482] Linking CXX executable /home/user/Cemu/bin/Cemu
FAILED: /home/user/Cemu/bin/Cemu 
: && /usr/bin/clang++ -g  src/CMakeFiles/CemuBin.dir/main.cpp.o src/CMakeFiles/CemuBin.dir/mainLLE.cpp.o -o /home/user/Cemu/bin/Cemu  vcpkg_installed/x64-linux/debug/lib/libboost_program_options.a  vcpkg_installed/x64-linux/debug/lib/libboost_filesystem.a  vcpkg_installed/x64-linux/debug/lib/libboost_nowide.a  /usr/lib/libSM.so  /usr/lib/libICE.so  /usr/lib/libX11.so  /usr/lib/libXext.so  vcpkg_installed/x64-linux/debug/lib/libSDL2d.a  vcpkg_installed/x64-linux/debug/lib/libSDL2maind.a  vcpkg_installed/x64-linux/debug/lib/libSDL2d.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_core-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_baseu-3.2.a  dependencies/cubeb/libcubeb.a  src/Common/libCemuCommon.a  src/Cemu/libCemuComponents.a  src/Cafe/libCemuCafe.a  src/config/libCemuConfig.a  src/gui/libCemuGui.a  src/audio/libCemuAudio.a  src/input/libCemuInput.a  src/util/libCemuUtil.a  src/asm/libCemuAsm.a  vcpkg_installed/x64-linux/debug/lib/libssl.a  vcpkg_installed/x64-linux/debug/lib/libz.a  vcpkg_installed/x64-linux/debug/lib/libwx_baseu-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_core-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_adv-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_aui-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_html-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_propgrid-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_ribbon-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_stc-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_xrc-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_gl-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_qa-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_baseu_xml-3.2.a  vcpkg_installed/x64-linux/debug/lib/libcurl-d.a  vcpkg_installed/x64-linux/debug/lib/libimguid.a  vcpkg_installed/x64-linux/debug/lib/libpugixml.a  src/Common/libCemuCommon.a  src/audio/libCemuAudio.a  src/input/libCemuInput.a  src/Cemu/libCemuComponents.a  src/Cafe/libCemuCafe.a  src/config/libCemuConfig.a  src/gui/libCemuGui.a  src/imgui/libimguiImpl.a  src/Common/libCemuCommon.a  src/input/libCemuInput.a  src/Cemu/libCemuComponents.a  src/Cafe/libCemuCafe.a  src/resource/libCemuResource.a  src/gui/libCemuGui.a  src/asm/libCemuAsm.a  src/Cemu/libCemuComponents.a  dependencies/discord-rpc/src/libdiscord-rpc.a  -lpthread  src/Cafe/libCemuCafe.a  vcpkg_installed/x64-linux/debug/lib/libglslang.a  vcpkg_installed/x64-linux/debug/lib/libSPIRV.a  vcpkg_installed/x64-linux/debug/lib/libMachineIndependent.a  vcpkg_installed/x64-linux/debug/lib/libOGLCompiler.a  vcpkg_installed/x64-linux/debug/lib/libOSDependent.a  vcpkg_installed/x64-linux/debug/lib/libGenericCodeGen.a  dependencies/ih264d/libih264d.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_adv-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_aui-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_propgrid-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_ribbon-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_stc-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwxscintilla-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_xrc-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_html-3.2.a  /usr/lib/libmspack.so  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_gl-3.2.a  /usr/lib/libGLU.so  /usr/lib/libGLX.so  /usr/lib/libEGL.so  /usr/lib/libOpenGL.so  -lffi  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_qa-3.2.a  vcpkg_installed/x64-linux/debug/lib/libwx_baseu_xml-3.2.a  src/resource/libCemuResource.a  dependencies/ZArchive/libzarchive.a  vcpkg_installed/x64-linux/debug/lib/libzstd.a  vcpkg_installed/x64-linux/debug/lib/libzip.a  vcpkg_installed/x64-linux/debug/lib/libssl.a  vcpkg_installed/x64-linux/debug/lib/libz.a  vcpkg_installed/x64-linux/debug/lib/libcrypto.a  vcpkg_installed/x64-linux/debug/lib/libpugixml.a  dependencies/cubeb/libcubeb.a  vcpkg_installed/x64-linux/debug/lib/libboost_program_options.a  vcpkg_installed/x64-linux/debug/lib/libboost_filesystem.a  vcpkg_installed/x64-linux/debug/lib/libboost_nowide.a  vcpkg_installed/x64-linux/debug/lib/libSDL2d.a  -lwayland-egl  -lwayland-client  -lwayland-cursor  -lEGL  -lxkbcommon  /usr/lib/libXss.so  /usr/lib/libXxf86vm.so  -ldbus-1  -lunwind  -lunwind-generic  -lrt  -Wl,--no-undefined  -pthread  vcpkg_installed/x64-linux/debug/lib/libSDL2maind.a  vcpkg_installed/x64-linux/debug/lib/libwx_gtk3u_core-3.2.a  -lm  /usr/lib/libgtk-3.so  /usr/lib/libgdk-3.so  /usr/lib/libz.so  -lm  /usr/lib/libpcre.so  /usr/lib/libffi.so  /usr/lib/libbz2.so  /usr/lib/libbrotlicommon.so  /usr/lib/libgraphite2.so  /usr/lib/libglib-2.0.so  /usr/lib/libgio-2.0.so  /usr/lib/libgobject-2.0.so  /usr/lib/libgmodule-2.0.so  /usr/lib/libblkid.so  /usr/lib/libfribidi.so  /usr/lib/libdatrie.so  /usr/lib/libfreetype.so  /usr/lib/libbrotlidec.so  /usr/lib/libXrender.so  /usr/lib/libpthread.a  /usr/lib/libxcb.so  /usr/lib/libXau.so  /usr/lib/libdl.a  /usr/lib/liblzo2.so  /usr/lib/libpangocairo-1.0.so  /usr/lib/libpango-1.0.so  /usr/lib/libcairo.so  /usr/lib/libharfbuzz-gobject.so  /usr/lib/libfontconfig.so  vcpkg_installed/x64-linux/debug/lib/libpng16d.a  /usr/lib/libcairo-gobject.so  /usr/lib/libXcomposite.so  /usr/lib/libXdamage.so  /usr/lib/libwayland-client.so  /usr/lib/librt.a  /usr/lib/libepoxy.so  /usr/lib/libcloudproviders.so  /usr/lib/libatk-1.0.so  /usr/lib/libgdk_pixbuf-2.0.so  vcpkg_installed/x64-linux/debug/lib/libtiffd.a  vcpkg_installed/x64-linux/debug/lib/libjpeg.a  vcpkg_installed/x64-linux/debug/lib/liblzma.a  /usr/lib/libatk-bridge-2.0.so  /usr/lib/libsystemd.so  /usr/lib/libatspi.so  /usr/lib/libdbus-1.so  /usr/lib/libXtst.so  /usr/lib/libxkbcommon.so  /usr/lib/libwayland-cursor.so  /usr/lib/libwayland-egl.so  /usr/lib/libGL.so  /usr/lib/libEGL.so  /usr/lib/libpangoft2-1.0.so  /usr/lib/libthai.so  /usr/lib/libXft.so  /usr/lib/libxcb-render.so  /usr/lib/libxcb-shm.so  /usr/lib/libXdmcp.so  /usr/lib/libpixman-1.so  /usr/lib/libharfbuzz.so  /usr/lib/libmount.so  /usr/lib/libsysprof-capture-4.a  /usr/lib/libz.so  -lm  /usr/lib/libpcre.so  /usr/lib/libffi.so  /usr/lib/libbz2.so  /usr/lib/libbrotlicommon.so  /usr/lib/libgraphite2.so  /usr/lib/libglib-2.0.so  /usr/lib/libgio-2.0.so  /usr/lib/libgobject-2.0.so  /usr/lib/libgmodule-2.0.so  /usr/lib/libblkid.so  /usr/lib/libfribidi.so  /usr/lib/libdatrie.so  /usr/lib/libfreetype.so  /usr/lib/libbrotlidec.so  /usr/lib/libXrender.so  /usr/lib/libpthread.a  /usr/lib/libxcb.so  /usr/lib/libXau.so  /usr/lib/libdl.a  /usr/lib/liblzo2.so  /usr/lib/libpangocairo-1.0.so  /usr/lib/libpango-1.0.so  /usr/lib/libcairo.so  /usr/lib/libharfbuzz-gobject.so  /usr/lib/libfontconfig.so  vcpkg_installed/x64-linux/debug/lib/libpng16d.a  /usr/lib/libcairo-gobject.so  /usr/lib/libXcomposite.so  /usr/lib/libXdamage.so  /usr/lib/libwayland-client.so  /usr/lib/librt.a  /usr/lib/libepoxy.so  /usr/lib/libcloudproviders.so  /usr/lib/libatk-1.0.so  /usr/lib/libgdk_pixbuf-2.0.so  vcpkg_installed/x64-linux/debug/lib/libtiffd.a  vcpkg_installed/x64-linux/debug/lib/libjpeg.a  vcpkg_installed/x64-linux/debug/lib/liblzma.a  /usr/lib/libatk-bridge-2.0.so  /usr/lib/libsystemd.so  /usr/lib/libatspi.so  /usr/lib/libdbus-1.so  /usr/lib/libXtst.so  /usr/lib/libxkbcommon.so  /usr/lib/libwayland-cursor.so  /usr/lib/libwayland-egl.so  /usr/lib/libGL.so  /usr/lib/libEGL.so  /usr/lib/libpangoft2-1.0.so  /usr/lib/libthai.so  /usr/lib/libXft.so  /usr/lib/libxcb-render.so  /usr/lib/libxcb-shm.so  /usr/lib/libXdmcp.so  /usr/lib/libpixman-1.so  /usr/lib/libharfbuzz.so  /usr/lib/libmount.so  /usr/lib/libsysprof-capture-4.a  /usr/lib/libXcursor.so  /usr/lib/libXrandr.so  /usr/lib/libXinerama.so  /usr/lib/libXi.so  /usr/lib/libXfixes.so  vcpkg_installed/x64-linux/debug/lib/libexpat.a  /usr/lib/libSM.so  /usr/lib/libICE.so  /usr/lib/libX11.so  /usr/lib/libXext.so  /usr/lib/libgspell-1.so  vcpkg_installed/x64-linux/debug/lib/libwx_baseu-3.2.a  vcpkg_installed/x64-linux/debug/lib/libz.a  -lc  -ldl  /usr/lib/libspeexdsp.so && :
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandvideo.c.o): in function `Wayland_VideoInit':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandvideo.c:926: undefined reference to `libdecor_new'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandvideo.c.o): in function `Wayland_VideoQuit':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandvideo.c:1050: undefined reference to `libdecor_unref'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `SetMinMaxDimensions':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:354: undefined reference to `libdecor_frame_set_min_content_size'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:357: undefined reference to `libdecor_frame_set_max_content_size'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `SetFullscreen':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:406: undefined reference to `libdecor_frame_set_capabilities'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:409: undefined reference to `libdecor_frame_set_fullscreen'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:411: undefined reference to `libdecor_frame_unset_fullscreen'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:414: undefined reference to `libdecor_frame_unset_capabilities'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `decoration_frame_configure':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:713: undefined reference to `libdecor_configuration_get_window_state'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:762: undefined reference to `libdecor_configuration_get_content_size'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:783: undefined reference to `libdecor_configuration_get_content_size'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:808: undefined reference to `libdecor_state_new'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:809: undefined reference to `libdecor_frame_commit'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:810: undefined reference to `libdecor_state_free'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_GetWindowWMInfo':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1053: undefined reference to `libdecor_frame_get_xdg_surface'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1055: undefined reference to `libdecor_frame_get_xdg_toplevel'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_SetWindowModalFor':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1121: undefined reference to `libdecor_frame_set_parent'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_ShowWindow':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1167: undefined reference to `libdecor_decorate'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1174: undefined reference to `libdecor_frame_set_app_id'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1175: undefined reference to `libdecor_frame_map'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_HideWindow':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1351: undefined reference to `libdecor_frame_unref'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_RestoreWindow':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1590: undefined reference to `libdecor_frame_unset_maximized'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_SetWindowBordered':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1617: undefined reference to `libdecor_frame_set_visibility'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_SetWindowResizable':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1639: undefined reference to `libdecor_frame_set_capabilities'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1641: undefined reference to `libdecor_frame_unset_capabilities'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_MaximizeWindow':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1674: undefined reference to `libdecor_frame_set_maximized'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_MinimizeWindow':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1702: undefined reference to `libdecor_frame_set_minimized'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_SetWindowSize':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1958: undefined reference to `libdecor_frame_is_floating'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1976: undefined reference to `libdecor_state_new'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1977: undefined reference to `libdecor_frame_commit'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:1978: undefined reference to `libdecor_state_free'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandwindow.c.o): in function `Wayland_SetWindowTitle':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandwindow.c:2018: undefined reference to `libdecor_frame_set_title'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylanddyn.c.o): in function `SDL_WAYLAND_LoadSymbols':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:155: undefined reference to `libdecor_unref'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:156: undefined reference to `libdecor_new'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:157: undefined reference to `libdecor_decorate'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:161: undefined reference to `libdecor_frame_unref'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:162: undefined reference to `libdecor_frame_set_title'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:163: undefined reference to `libdecor_frame_set_app_id'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:164: undefined reference to `libdecor_frame_set_max_content_size'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:167: undefined reference to `libdecor_frame_set_min_content_size'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:170: undefined reference to `libdecor_frame_resize'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:174: undefined reference to `libdecor_frame_move'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:177: undefined reference to `libdecor_frame_commit'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:180: undefined reference to `libdecor_frame_set_minimized'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:181: undefined reference to `libdecor_frame_set_maximized'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:182: undefined reference to `libdecor_frame_unset_maximized'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:183: undefined reference to `libdecor_frame_set_fullscreen'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:184: undefined reference to `libdecor_frame_unset_fullscreen'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:185: undefined reference to `libdecor_frame_set_capabilities'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:187: undefined reference to `libdecor_frame_unset_capabilities'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:189: undefined reference to `libdecor_frame_has_capability'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:191: undefined reference to `libdecor_frame_set_visibility'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:192: undefined reference to `libdecor_frame_is_visible'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:193: undefined reference to `libdecor_frame_is_floating'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:194: undefined reference to `libdecor_frame_set_parent'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:196: undefined reference to `libdecor_frame_get_xdg_surface'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:197: undefined reference to `libdecor_frame_get_xdg_toplevel'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:198: undefined reference to `libdecor_frame_map'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:199: undefined reference to `libdecor_state_new'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:200: undefined reference to `libdecor_state_free'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:201: undefined reference to `libdecor_configuration_get_content_size'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandsym.h:205: undefined reference to `libdecor_configuration_get_window_state'
/usr/bin/ld: vcpkg_installed/x64-linux/debug/lib/libSDL2d.a(SDL_waylandevents.c.o): in function `ProcessHitTest':
/home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandevents.c:487: undefined reference to `libdecor_frame_move'
/usr/bin/ld: /home/user/Cemu/dependencies/vcpkg/buildtrees/sdl2/src/e268dc78a1-8128fd6574.clean/src/video/wayland/SDL_waylandevents.c:511: undefined reference to `libdecor_frame_resize'
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Having the libdecor package installed or not doesn't change anything.

export support in 2.0

I see that cemuhook is no longer supported, and it seems that the ability to inject a dll and call exports such as memory_getBase and osLib_registerHLEFunction have been dropped... Have they been dropped? Is there a new way to call these?

MacOS support (x86 + ARM64)?

Hi,
I know this is very far from being supported but opening anyway..
think the hardest part is graphics support but some massaging to Vulkan code + MoltenVK enhancements should make it possible eventually (MacOS Metal 3.0 support will be needed?)..
thanks..

Consistent coding style

I would highly recommend that we add some sort of documentation on how to format code.

The best solution for this IMO would be a .clang-format file. That way the clang-format tool can format everything in a consistent style.

These are pretty easy to set up, and IDEs like CLion support them out of the box for automatic, on file save / hotkey formatting. A minimal .clang-format file only needs two lines if Exzap is okay with using a predefined style. (Just don't pick GNU.)

Here's an example of good documentation regarding this topic, and here's a sample .clang-format.

Please update fmt to 9.0.0

libfmt 9.0.0 has lots of improvements (more constexpr stuff, improved C++20 compatibility), and updating to it would improve the situation for #1, as it is currently impossible to build Cemu using the system version of libfmt on recent distros.

Cemu is currently using version 7.1.3, released at the end of 2020.

Error installing updates (BOTW) v1.26.2+

Version : v1.26.2+ Windows 10
When opening the meta.xml of the update folder the following error occurs.

''Error: The system cannot find the path specified. space: The system cannot find the path specified: '''' ''

Works properly in v1.26.1
I don't think any more information is relevant.
The update path is not too large.

Edit : Installing game update/dlc in v1.26.1, then updating cemu works.

ninja fails on Ubuntu 22.04.1 LTS

Following BUILD.md:

$ ninja
[...]
/usr/bin/ld: SDL_waylanddyn.c:(.text+0xbec): undefined reference to `libdecor_state_free'
/usr/bin/ld: SDL_waylanddyn.c:(.text+0xbfa): undefined reference to `libdecor_configuration_get_content_size'
/usr/bin/ld: SDL_waylanddyn.c:(.text+0xc08): undefined reference to `libdecor_configuration_get_window_state'
/usr/bin/ld: vcpkg_installed/x64-linux/lib/libSDL2.a(SDL_waylandevents.c.o): in function `pointer_handle_button':
SDL_waylandevents.c:(.text+0x187e): undefined reference to `libdecor_frame_move'
/usr/bin/ld: SDL_waylandevents.c:(.text+0x1992): undefined reference to `libdecor_frame_resize'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

No sound on Linux

On Settings Audio API is empty:
image
Also i'm try change <api>0</api> from 0 to 1 or 2 or 3 on settings.xml and this not helped.
Used binary file from release page. Also i'm try compile, but have error.
Terminal log on Cemu emty.

Operating System: KDE neon 5.25 (Ubuntu 20.04)
Audio Card: Steinberg UR12
Kernel: 5.18.0-14.2-liquorix-amd64

Audio Card Info:

Bus 001 Device 004: ID 0499:170a Yamaha Corp. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0499 Yamaha Corp.
  idProduct          0x170a 
  bcdDevice            1.01
  iManufacturer           1 Yamaha Corporation
  iProduct                2 Steinberg UR12 
  iSerial                 0 
  bNumConfigurations      2
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00da
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass          1 Audio
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               8
        wTotalLength       0x004b
        bmControls           0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               41
        bmAttributes            3 Internal programmable clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource            0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID             41
        bNrChannels             2
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            18
        wTerminalType      0x0603 Line Connector
        bAssocTerminal          0
        bSourceID               1
        bCSourceID             41
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0603 Line Connector
        bAssocTerminal          0
        bCSourceID             41
        bNrChannels             2
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            20
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               3
        bCSourceID             41
        bmControls         0x0000
        iTerminal               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           1
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             2
        bmChannelConfig    0x00000000
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x00c8  1x 200 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          20
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             2
        bmChannelConfig    0x00000000
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x00c8  1x 200 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x018d
    bNumInterfaces          4
    bConfigurationValue     2
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  0a 24 01 00 01 34 00 02 01 02
      ** UNRECOGNIZED:  0c 24 02 01 01 01 00 02 03 00 00 00
      ** UNRECOGNIZED:  09 24 03 02 01 03 00 01 00
      ** UNRECOGNIZED:  0c 24 02 03 03 06 00 02 03 00 00 00
      ** UNRECOGNIZED:  09 24 03 04 01 01 00 03 00
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  07 24 01 01 01 01 00
      ** UNRECOGNIZED:  0e 24 02 01 02 04 18 02 44 ac 00 80 bb 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0038  1x 56 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  07 24 01 01 01 01 00
      ** UNRECOGNIZED:  0e 24 02 01 02 04 18 02 88 58 01 00 77 01
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0068  1x 104 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  07 24 01 01 01 01 00
      ** UNRECOGNIZED:  0e 24 02 01 02 04 18 02 10 b1 02 00 ee 02
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x00c8  1x 200 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  07 24 01 04 01 01 00
      ** UNRECOGNIZED:  0e 24 02 01 02 04 18 02 44 ac 00 80 bb 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0038  1x 56 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  07 24 01 04 01 01 00
      ** UNRECOGNIZED:  0e 24 02 01 02 04 18 02 88 58 01 00 77 01
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0068  1x 104 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  07 24 01 04 01 01 00
      ** UNRECOGNIZED:  0e 24 02 01 02 04 18 02 10 b1 02 00 ee 02
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x00c8  1x 200 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  07 24 01 00 01 24 00
      ** UNRECOGNIZED:  06 24 02 02 01 00
      ** UNRECOGNIZED:  09 24 03 02 01 01 01 01 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

Build fails on Arch Linux with Clang 13

I downloaded the Vulkan SDK, unzipped it to /usr/lib/vulkansdk, I set VULKAN_SDK to /usr/lib/vulkansdk/x86_64/. All CMake configuration was done with the CMake extension for Visual Studio Code. I set the kit to Clang 13.0.1.

Here's the error:

[build] In file included from <built-in>:451:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/build/src/Cafe/CMakeFiles/CemuCafe.dir/cmake_pch.hxx:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Common/precompiled.h:10:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/fmt/core.h:13:
[build] In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/functional:64:
[build] In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/stl_algo.h:65:
[build] /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/uniform_int_dist.h:250:31: error: expected unqualified-id
[build]           static_assert(!_Up_traits::__is_signed, "U must be unsigned");
[build]                                      ^
[build] /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/uniform_int_dist.h:251:31: error: expected unqualified-id
[build]           static_assert(!_Wp_traits::__is_signed, "W must be unsigned");
[build]                                      ^
[build] 2 errors generated.

Seems to be something in /usr/bin/include/c++/. Is my C++ version too new? Or my Clang version? I'm using the 5.19.3 kernel, gcc version 12.2.0-1.

The full log:

[main] Building folder: Cemu 
[build] Starting build
[proc] Executing command: /usr/bin/cmake --build /home/zjeffer/Documents/repos/Cemu/build --config Release --target all --
[build] [18/221   0% :: 0.188] Generating API documentation with Doxygen
[build] /home/zjeffer/Documents/repos/Cemu/dependencies/cubeb/include/cubeb/cubeb.h:188: warning: Member cubeb_channel_layout (typedef) of file cubeb.h is not documented.
[build] /home/zjeffer/Documents/repos/Cemu/dependencies/cubeb/include/cubeb/cubeb.h:166: warning: Member cubeb_channel (enumeration) of file cubeb.h is not documented.
[build] /home/zjeffer/Documents/repos/Cemu/dependencies/cubeb/include/cubeb/cubeb.h:436: warning: argument 'user' of command @param is not found in the argument list of cubeb_device_changed_callback(void *user_ptr)
[build] /home/zjeffer/Documents/repos/Cemu/dependencies/cubeb/include/cubeb/cubeb.h:436: warning: The following parameter of cubeb_device_changed_callback(void *user_ptr) is not documented:
[build]   parameter 'user_ptr'
[build] [19/221   0% :: 0.412] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/VI/VI.cpp.o
[build] [20/221   1% :: 0.425] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/ShaderInfo/ShaderInstanceInfo.cpp.o
[build] [21/221   1% :: 0.613] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/VulkanAPI.cpp.o
[build] [22/221   2% :: 0.848] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/SI/SI.cpp.o
[build] [23/221   2% :: 1.054] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/RendererShaderVk.cpp.o
[build] FAILED: src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/RendererShaderVk.cpp.o 
[build] /usr/bin/clang++ -DENABLE_DISCORD_RPC -DHAS_CUBEB=1 -DVK_NO_PROTOTYPES -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XLIB_KHR -D_UNICODE -D__WXGTK3__ -D__WXGTK__ -I/home/zjeffer/Documents/repos/Cemu/build/src/Cafe -I/home/zjeffer/Documents/repos/Cemu/src/Cafe -I/usr/lib/vulkansdk/x86_64/include -I/home/zjeffer/Documents/repos/Cemu/src/Cafe/. -I/home/zjeffer/Documents/repos/Cemu/src/Cafe/.. -I/home/zjeffer/Documents/repos/Cemu/dependencies/cubeb/include -I/home/zjeffer/Documents/repos/Cemu/build/exports -I/home/zjeffer/Documents/repos/Cemu/dependencies/ZArchive/include -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/SDL2 -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/lib/wx/include/gtk3-unicode-static-3.2 -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/wx-3.2 -O3 -DNDEBUG   -fms-extensions -fms-compatibility-version=19.14 -fdelayed-template-parsing -maes -Wno-switch -Wno-ignored-attributes -Wno-deprecated-enum-enum-conversion -Wno-ambiguous-reversed-operator -std=gnu++20 -Winvalid-pch -Xclang -include-pch -Xclang /home/zjeffer/Documents/repos/Cemu/build/src/Cafe/CMakeFiles/CemuCafe.dir/cmake_pch.hxx.pch -Xclang -include -Xclang /home/zjeffer/Documents/repos/Cemu/build/src/Cafe/CMakeFiles/CemuCafe.dir/cmake_pch.hxx -MD -MT src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/RendererShaderVk.cpp.o -MF src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/RendererShaderVk.cpp.o.d -o src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/RendererShaderVk.cpp.o -c /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/RendererShaderVk.cpp
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/RendererShaderVk.cpp:13:10: fatal error: 'SPIRV/Logger.h' file not found
[build] #include <SPIRV/Logger.h>
[build]          ^~~~~~~~~~~~~~~~
[build] 1 error generated.
[build] [23/221   3% :: 1.497] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Transcompiler/LatteTC.cpp.o
[build] [23/221   3% :: 1.563] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/IOSU/legacy/iosu_acp.cpp.o
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/IOSU/legacy/iosu_acp.cpp:88:28: warning: format specifies type 'unsigned long long *' but the argument has type 'uint64 *' (aka 'unsigned long *') [-Wformat]
[build]                 if (sscanf(text, "%llx", &value) == 0)
[build]                                   ~~~~   ^~~~~~
[build]                                   %lx
[build] 1 warning generated.
[build] [23/221   4% :: 1.809] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Transcompiler/LatteTCGenIR.cpp.o
[build] [23/221   4% :: 1.828] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/VulkanQuery.cpp.o
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanQuery.cpp:1:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VulkanRenderer.h:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/LatteTextureVk.h:7:
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VKRBase.h:53:2: warning: non-void function does not return a value [-Wreturn-type]
[build]         }
[build]         ^
[build] 1 warning generated.
[build] [23/221   4% :: 2.903] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/Account/Account.cpp.o
[build] FAILED: src/Cafe/CMakeFiles/CemuCafe.dir/Account/Account.cpp.o 
[build] /usr/bin/clang++ -DENABLE_DISCORD_RPC -DHAS_CUBEB=1 -DVK_NO_PROTOTYPES -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XLIB_KHR -D_UNICODE -D__WXGTK3__ -D__WXGTK__ -I/home/zjeffer/Documents/repos/Cemu/build/src/Cafe -I/home/zjeffer/Documents/repos/Cemu/src/Cafe -I/usr/lib/vulkansdk/x86_64/include -I/home/zjeffer/Documents/repos/Cemu/src/Cafe/. -I/home/zjeffer/Documents/repos/Cemu/src/Cafe/.. -I/home/zjeffer/Documents/repos/Cemu/dependencies/cubeb/include -I/home/zjeffer/Documents/repos/Cemu/build/exports -I/home/zjeffer/Documents/repos/Cemu/dependencies/ZArchive/include -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/SDL2 -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/lib/wx/include/gtk3-unicode-static-3.2 -isystem /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/wx-3.2 -O3 -DNDEBUG   -fms-extensions -fms-compatibility-version=19.14 -fdelayed-template-parsing -maes -Wno-switch -Wno-ignored-attributes -Wno-deprecated-enum-enum-conversion -Wno-ambiguous-reversed-operator -std=gnu++20 -Winvalid-pch -Xclang -include-pch -Xclang /home/zjeffer/Documents/repos/Cemu/build/src/Cafe/CMakeFiles/CemuCafe.dir/cmake_pch.hxx.pch -Xclang -include -Xclang /home/zjeffer/Documents/repos/Cemu/build/src/Cafe/CMakeFiles/CemuCafe.dir/cmake_pch.hxx -MD -MT src/Cafe/CMakeFiles/CemuCafe.dir/Account/Account.cpp.o -MF src/Cafe/CMakeFiles/CemuCafe.dir/Account/Account.cpp.o.d -o src/Cafe/CMakeFiles/CemuCafe.dir/Account/Account.cpp.o -c /home/zjeffer/Documents/repos/Cemu/src/Cafe/Account/Account.cpp
[build] In file included from <built-in>:451:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/build/src/Cafe/CMakeFiles/CemuCafe.dir/cmake_pch.hxx:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Common/precompiled.h:10:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/fmt/core.h:13:
[build] In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/functional:64:
[build] In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/stl_algo.h:65:
[build] /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/uniform_int_dist.h:250:31: error: expected unqualified-id
[build]           static_assert(!_Up_traits::__is_signed, "U must be unsigned");
[build]                                      ^
[build] /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/uniform_int_dist.h:251:31: error: expected unqualified-id
[build]           static_assert(!_Wp_traits::__is_signed, "W must be unsigned");
[build]                                      ^
[build] 2 errors generated.
[build] [23/221   5% :: 4.172] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/IOSU/kernel/iosu_kernel.cpp.o
[build] [23/221   5% :: 4.480] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/ShaderInfo/ShaderDescription.cpp.o
[build] [23/221   6% :: 4.868] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/IOSU/PDM/iosu_pdm.cpp.o
[build] [23/221   6% :: 4.968] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/IOSU/fsa/iosu_fsa.cpp.o
[build] [23/221   7% :: 5.188] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/VulkanPipelineCompiler.cpp.o
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanPipelineCompiler.cpp:1:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VulkanRenderer.h:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/LatteTextureVk.h:7:
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VKRBase.h:53:2: warning: non-void function does not return a value [-Wreturn-type]
[build]         }
[build]         ^
[build] 1 warning generated.
[build] [23/221   7% :: 5.696] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/VulkanSurfaceCopy.cpp.o
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanSurfaceCopy.cpp:1:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VulkanRenderer.h:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/LatteTextureVk.h:7:
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VKRBase.h:53:2: warning: non-void function does not return a value [-Wreturn-type]
[build]         }
[build]         ^
[build] 1 warning generated.
[build] [23/221   8% :: 5.786] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/MMU/MMU.cpp.o
[build] [23/221   8% :: 6.109] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/VulkanPipelineStableCache.cpp.o
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanPipelineStableCache.cpp:1:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VulkanRenderer.h:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/LatteTextureVk.h:7:
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VKRBase.h:53:2: warning: non-void function does not return a value [-Wreturn-type]
[build]         }
[build]         ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanPipelineStableCache.cpp:425:3: warning: 'SHA256_Init' is deprecated [-Wdeprecated-declarations]
[build]                 SHA256_Init(&sha256);
[build]                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:73:1: note: 'SHA256_Init' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Init(SHA256_CTX *c);
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanPipelineStableCache.cpp:426:3: warning: 'SHA256_Update' is deprecated [-Wdeprecated-declarations]
[build]                 SHA256_Update(&sha256, blob.data(), blob.size());
[build]                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:74:1: note: 'SHA256_Update' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c,
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanPipelineStableCache.cpp:427:3: warning: 'SHA256_Final' is deprecated [-Wdeprecated-declarations]
[build]                 SHA256_Final(hash, &sha256);
[build]                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:76:1: note: 'SHA256_Final' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Final(unsigned char *md, SHA256_CTX *c);
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] 4 warnings generated.
[build] [23/221   9% :: 6.327] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/VulkanRendererCore.cpp.o
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanRendererCore.cpp:1:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VulkanRenderer.h:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/LatteTextureVk.h:7:
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VKRBase.h:53:2: warning: non-void function does not return a value [-Wreturn-type]
[build]         }
[build]         ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanRendererCore.cpp:58:37: warning: self-comparison always evaluates to true [-Wtautological-compare]
[build]         cemu_assert_debug(fetchShader->key == fetchShader->key); // fetch shaders must be layout compatible, but may have different offsets
[build]                                            ^
[build] 2 warnings generated.
[build] [23/221   9% :: 7.483] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/IOSU/legacy/iosu_boss.cpp.o
[build] [23/221   9% :: 7.487] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/IOSU/legacy/iosu_act.cpp.o
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/IOSU/legacy/iosu_act.cpp:561:6: warning: 'SHA256_Init' is deprecated [-Wdeprecated-declarations]
[build]                                         SHA256_Init(&ctx_sha256);
[build]                                         ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:73:1: note: 'SHA256_Init' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Init(SHA256_CTX *c);
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/IOSU/legacy/iosu_act.cpp:569:6: warning: 'SHA256_Update' is deprecated [-Wdeprecated-declarations]
[build]                                         SHA256_Update(&ctx_sha256, tempArray, 4);
[build]                                         ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:74:1: note: 'SHA256_Update' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c,
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/IOSU/legacy/iosu_act.cpp:574:6: warning: 'SHA256_Update' is deprecated [-Wdeprecated-declarations]
[build]                                         SHA256_Update(&ctx_sha256, tempArray, 4);
[build]                                         ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:74:1: note: 'SHA256_Update' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c,
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/IOSU/legacy/iosu_act.cpp:575:6: warning: 'SHA256_Update' is deprecated [-Wdeprecated-declarations]
[build]                                         SHA256_Update(&ctx_sha256, actCemuRequest->resultBinary.binBuffer+10, 6);
[build]                                         ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:74:1: note: 'SHA256_Update' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c,
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/IOSU/legacy/iosu_act.cpp:577:6: warning: 'SHA256_Final' is deprecated [-Wdeprecated-declarations]
[build]                                         SHA256_Final(h, &ctx_sha256);
[build]                                         ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/sha.h:76:1: note: 'SHA256_Final' has been explicitly marked deprecated here
[build] OSSL_DEPRECATEDIN_3_0 int SHA256_Final(unsigned char *md, SHA256_CTX *c);
[build] ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
[build] #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
[build]                                                 ^
[build] /home/zjeffer/Documents/repos/Cemu/build/vcpkg_installed/x64-linux/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
[build] #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
[build]                                                    ^
[build] 5 warnings generated.
[build] [23/221  10% :: 10.878] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/HW/Latte/Renderer/Vulkan/VulkanRenderer.cpp.o
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanRenderer.cpp:1:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VulkanRenderer.h:5:
[build] In file included from /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/LatteTextureVk.h:7:
[build] /home/zjeffer/Documents/repos/Cemu/src/Cafe/../Cafe/HW/Latte/Renderer/Vulkan/VKRBase.h:53:2: warning: non-void function does not return a value [-Wreturn-type]
[build]         }
[build]         ^
[build] 1 warning generated.
[build] ninja: build stopped: subcommand failed.
[build] Build finished with exit code 1

ppc64le support

Congrats for open sourcing cemu, this is really a great news. Do you forsee any major issue porting to ppc64 (Little Endian, 4K page size)? It would be nice to have more games playable on fully open architectures like Raptor CS Talos 2/Blackbird.

[Feature Request] UWP compatibility

Hi coders,

I was thinking if someone had any idea if it was possible to port this emulator to a UWP so we could have this great emulator running on the xbox series x. Thanks in advance :)

[Linux] Crash when gamepaths includes wide character

I added a folder with japanese characters in its path and the following error occured.

terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character

Current State Of Linux Builds

Linux builds of Cemu are not recommended yet for beginners, since currently it lacks a few things:

  • There's only prebuilt binaries for ubuntu 20.04, which means that for other distros (or versions) you'll have to compile it yourself.
    • In the future the plan is to also distribute appimages and/or flatpak releases using the CI.
  • Cemu currently requires all files to be placed in a case-insensitive filesystem
  • Cemu utilizes GTK3 using wxWidgets and xlib for it's Linux port currently. Wayland support should work but other environments aren't tested.

You can use this issue to share your experiences, issues or build tips!

[Feature Request] CEMU Tas Movie Format

Cemu eventually being able to create/playback TASes is by far one thing I'm excited to see happen sooner due to Open Source Development. That being said we're looking at far more than just a simple Feature Request. I haven't personally used Cemu that much (I already own a WiiU, and mostly play the Gamecube version of Wind Waker), so please correct me if any statements are incorrect due to my ignorance.

List of MVP requirements for TASing, in a somewhat logical order

  • Input Recording, Ideally through a controller-specific GUI like seen below (This is Dolphin)
    image
  • Frame Advancing
  • Input Recording Playback
  • Overwriting Playback

Additional Features that would Benefit Users

  • Savestates
  • Official Input File Editors/Splitters
  • Movie Exporting ( Recording of the Game using the Input Files, Likely going to have 3 options, /w Gamepad, /wo GamePad, only Gamepad )

My intended Target of this Discussion is going to be on the most basic of inputs, however discussion of handling more complex situations (GamePad Touchscreen, Gyro, Etc) should be discussed at some point.

Metadata

What sort of Metadata do we want to supply it with? (Using the LawsOfTAS as our base)

Header

Emulator version

I'd say this should be the Emulator Version the input was recorded on. However Cemu should playback any valid record, simply with a warning about Mismatched Versions. This will lead to desyncs however I prefer to warn users rather then prevent them.

Movie format version

Nothing to add.

ROM filename

I'd suggest a Deviation by Splitting this into ROM Filename and Region.

ROM Checksum

Potential deviation by using an Optional List here, with the potential format.

Version Name Checksum
0.0.1 Launch 123412341234
0.0.2 Day 1 Patch 431243121

Required Header Target Version, this gives a better experience for users since we can display Invalid Game Version Provided, Input is for 0.0.1 "Launch" not 0.0.2 "Day 1 Patch", instead of Invalid Game Provided

GUID

Slap on a UUID4, not much more to say

RTC

If someone can find a game with more advanced requirements for RNG sync, please bring them up in the discussion so we can format that into this Header.

Emulator Flags

Graphic Pak could be put here, for the time being though I strongly recommend simply failing to run if the provided game isn't running Native Graphics.

Flags & Settings for determining console used

This might be useful for Movie Output? Like GamePadOnly:True or DisplayGamePad:TopLeft or Games with different Framerates.

Rerecord count

Nothing to add

Frame Count

Optional Header to help validate files easier.

Input Count

Optional Header for Validation/Quick Stats

Controllers

Optional List of Controllers and their frame information. Example,

Controller Initial Frame Last Frame Player Slot
GamePad 0 // Blank can mean for the entire movie 0
Wii Mote 14000 1234151 1

Useful for Syncing, along with fancy Graphs (Ooo, Graphs!), but not required since we have the Controller ID

Author

Defaults to CrainWWR

Savestate

Reserved for Future Development, for now let's just assume all TASes start on System Boot.

Input Format

(Focusing on Gamepad)

  • Controller ID ( 3 Bits, 7 Potential Controllers )
  • DPad (4 Bits)
  • X/Y/A/B (4 Bits)
  • Left Stick (1 Bit for Pushed + 16 for Horizontal/Vertical)
  • Right Stick (Mirror Left Stick)
  • L/ZL/R/ZR (4 Bits)
  • +/- (2 Bits)
  • Power/TV/Home/Sync (4 Bits)
  • Amiibos (Reserve 6 Bits, this is not MVP)
  • Player Slot (3 bits, 8 Total using 0)

64 Total Bits

Example

HEADERS // Yaml~ Format?
CemuVersion:2.0
MovieFormat:1.0
ROMFilename:The Legend of Zelda Wind Waker HD
Region:Europe
Versions:
      0.0.1: 123445
      0.0.2: 122343
TargetVersion:0.0.2
GUID:MySickUUID4
RTC:1/1/1987 13:23.00.123 UST 
FrameCount:12342
EmulatorFlags:
      GraphicPak: Disabled
AdditionalSettings:
      Movie:
         DisplayGamePad:TopLeft
         DisplayFrameCount:TopRight
         DisplayReRecordAmount: // Null for false?
     Controllers:
          GamePad:
                 InitialFrame:0
                 PlayerSlot:0
          WiiMote: // YAML wouldn't allow this if we had another WiiMote, so open for suggestions
                 InitialFrame:123454
                 LastFrame:12314111
                 PlayerSlot:1
 ~-~ // You got to have a fancy little section seperator. None of that `NULL` character nonsense. Be Unique, Be Cool
SAVESTATE
UsingSaveState:False
~-~
INPUTS // This should have Whitespace to pad the First Input so the inputs align to 64 bit. I think it already should, but I'm writing this tired.
ab438529AA1211131234123abcb2323aacacabd // 64 Bit Encoded 

Allow pure build

Hello everyone,

First of I want to thank the Cemu team for open sourcing the emulator. I have been literally waiting for this for years.

The first thing I wanted to do is start packaging it for the distribution I use so everyone can enjoy it! But I quickly ran into issue while trying to build Cemu. I installed all deps listed in the build guide but it seems Cemu tries to install additional dependencies, such as vcpkg.

The distro I use requires a pure build so it's not possible to fetch and install dependencies at build time. So my request is to allow all dependencies to be specified up front. Allowing a transparent and reproducible build process to be specified for distros.

[Tekken Tag Tournament 2] Visual glitches after Cemu 1.26.2

Version of Cemu 2.0 (also happens in previous version)
Specs: xeon e5 2640 v3
Gpu: rx 6600
ram:16 gb ram
Api:vulkan and apparently opengl too but has a slightly different effect
Amd driver version: 22.8.1
async shaders activated (also happens without activating it)
graphic packs:resolution to 1080p (also happens on normal resolution)
multi core enabled (also happens in single core)

for unknown reasons the characters have a weird green costume or green degrade in both clothes, armors and even the model itself
(case with last phase ogre)
and also when trying to select a costume for a character, deselecting the character and selecting another the first three costumes will be the ones of the previous character
(doing some little research i had seen this bug happening to other people too even in older versions of cemu)
image
image
image

[Fatal Frame] Crashes instantly on title screen

These all happened on cemu 2.0
After launching the game, both on the USA digital and JP physical version, it crashes after it gets into the emu
On cemu 1.26.2 and 1.27.1 it crashes after entering a chapter, all after the resumes before entering, it crashes also
On cemu 1.27, the game is 100% playable without problems from start to finish

No IR pointer on first wiimote

This issue has some time. When connecting wiimote using wiimote api, everything works great, but no IR pointer.

If I connect a second wiimote, the second one has IR pointer.

The first one never gets IR pointer. Doesnt matter if I switch them. First one never gets IR.

Using cemu 2.0
Windows 11
Both wiimotes are TR ones

Tried a clean cemu, but the same.

Flatpak support

Flatpak will allow cemu to be used on all linux distributions.

Would be nice:

macOS support?

Just wanted to know if there will be any macOS support in the near future.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.