summaryrefslogtreecommitdiff
path: root/src/yuzu/CMakeLists.txt
AgeCommit message (Collapse)Author
2022-07-30Translate english pluralsKyle Kienapfel
Turns out that for Qt to properly handle plurals in English a translation needs to be provided, otherwise the user is left with messages such as "Building: 2 shader(s)" Plurals for other all other languages are handled on transifex. I wrote the README.md to just refer to it as a translation collaboration site just in case we ever switch. These translations being out of date won't pose any technical problems so I believe it is fine to handle them manually on a "best effort" basis. The files are generated into the source directory so that the relative filenames are correct. The generated file is added to .gitignore
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda
[REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-07-25Address first part of review commentsFearlessTobi
2022-07-25yuzu: Add ui files for multiplayer roomsFearlessTobi
2022-07-25Merge pull request #8564 from lat9nq/dinner-forkbunnei
yuzu: Streamline broken Vulkan handling
2022-07-23yuzu: Hook qt camera to camera drivergerman77
2022-07-10yuzu: Rename check_vulkan to startup_checkslat9nq
2022-06-11Merge pull request #8353 from Docteh/msvc_report_runtimeMai M
log the MSVC runtime version when running on MSVC build
2022-06-11Merge pull request #8393 from lat9nq/default-vulkanbunnei
general: Set renderer_backend's default to Vulkan
2022-06-10log the MSVC runtime version when running on MSVC buildKyle Kienapfel
This might be useful information, not 100% sure. [ 0.958068] Frontend <Info> yuzu\main.cpp:GMainWindow:275: yuzu Version: yuzu Development Build | master-0b9ef3c0b-dirty [ 0.958095] Frontend <Info> yuzu\main.cpp:LogRuntimes:220: MSVC Compiler: 1931 Runtime: 14.32.31326.0
2022-06-10Merge pull request #8318 from Docteh/cmake-qt56-entryMai M
Update some files with Qt 5.15.2 best practices in mind
2022-06-01core/debugger: Improved stepping mechanism and misc fixesLiam
2022-05-30yuzu-qt: Attempt to workaround broken Vulkan installationslat9nq
This does a few things in order to make the default setting Vulkan workable. - When yuzu boots, it just opens the Vulkan library. - If it works, all good and we continue with Vulkan as the default. - If something breaks, a new file in the config directory will be left behind (this is deleted normally). - If Vulkan is not working, has_broken_vulkan is set to true. - The first time this happens, a warning is displayed to notify the user. - This forces use of OpenGL, and Vulkan cannot be selected. - The Shader Backend selector is made accessible for use in custom configurations. - To disable has_broken_vulkan, the user needs to press a button in Graphics Configuration to manually run the Vulkan device enumeration.
2022-05-29Update some files with Qt 5.15.2 best practices in mindKyle K
There was some discussion about updating to Qt6 and I figured I would work on some smaller parts. For Windows platform the WinMain function has moved from the Qt5::WinMain to a new one called Qt6::EntryPointPrivate Also Qt5 supports versionless CMake targets https://www.qt.io/blog/versionless-cmake-targets-qt-5.15 These other changes in this commit are to support Qt6, but in ways that don't mess with Qt5. src/yuzu/bootmanager.cpp: Qt6 complains about not being able to know to use QPoint or QPointF, picking QPoint src/yuzu/bootmanager.h: Qt6 prefers that QStringList.h be included rather than an empty class definition src/yuzu/configuration/configure_system.cpp: toULongLong intends to return unsigned 64 bit integer, but Settings::values.rng_seed is only 32 bits wide src/yuzu/game_list.cpp: Qt6 returns a different datatype for QStringList.length than Qt5, it used to be int, but in Qt6 its now qsizetype src/yuzu/loading_screen.cpp: Qt5's for QStyleOption.init say to switch to initFrom. The QStyleOption.init doesn't exist in Qt6 src/yuzu/main.cpp: Another QPointer and QStringList.size, lets standardize on size()
2022-05-28yuzu-qt: Call -Wl,--subsystem,windows directlylat9nq
-mwindows doesn't work with Clang. tpoechtrager/wclang resolves this by just using MinGW-GCC to link the executable, however this prevents us from using LLVM-exclusive tools when building yuzu. Solution is to send the linker argument we need from -mwindows directly to the linker. From https://gcc-help.gcc.gnu.narkive.com/FogklN5J/gcc-wl-subsystem-windows-mwindows-options
2022-04-16yuzu: Add custom ringcon configurationgerman77
2022-03-27build: cleanup installation of yuzu and yuzu-cmdAndrea Pappacoda
Explicitly specifying an install destination is not needed anymore since CMake 3.14. By removing the hardcoded ${CMAKE_INSTALL_PREFIX}/bin it is also now possible to override the install destination via the command line. For example, you can now install yuzu to /usr/games with -DCMAKE_INSTALL_BINDIR=games
2021-12-22main: fix wake lock in Flatpak ...liushuyu
... by using the XDP system
2021-12-02yuzu: Implement basic controller navigationgerman77
2021-11-24core/hid: Fully implement native mousegerman77
2021-10-30yuzu qt: Disable the screensaver with SDL2lat9nq
Disables the screen saver when a game boots using SDL2 so that it works on any supported platform.
2021-09-29CMakeLists: Remove BoxCat build optionMorph
2021-09-18config: Move TAS options to it's own menugerman77
2021-08-23Merge pull request #6912 from lioncash/pluralbunnei
CMakeLists: Ensure proper numerusform tags are generated for pluralized translations
2021-08-22CMakeLists: Ensure proper numerusform tags are generated for pluralized ↵Lioncash
translations If we don't set an explicit source and target language for the base english translation, then we'll generate an incorrect number of <numerusform> tags (which Transifex doesn't like).
2021-08-12configuration: add option to select network interfacespholz
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
2021-07-14applets: Append qt_ prefix to Qt frontend appletsMorph
2021-07-08settings, arm_dynarmic, yuzu qt: Move CPU debugging optionlat9nq
Decouples the CPU debugging mode from the enumeration to its own boolean. After this, it moves the CPU Debugging tab over to a sub tab underneath the Debug tab in the configuration UI.
2021-05-26cmake: Download Qt binaries on Linux if neededlat9nq
If the local version of Qt is older than the minimum version required by yuzu, download a pre-built binary package from yuzu-emu/ext-linux-bin and build yuzu with it, instead. This also requires linking yuzu to the correct libraries after building it, and copying over the required binaries when building yuzu. This sets the Qt requirement to 5.12, which is intentionally behind the versions used by our toolchains since they are not all updated yet to 5.15.
2021-04-15applets/swkbd: Implement the Qt Software Keyboard frontendMorph
The Qt Software Keyboard frontend attempts to mimic the software keyboard rendered by the Nintendo Switch. This frontend implements multiple keyboard types, such as the normal software keyboard, the numeric pad software keyboard and the inline software keyboard. Keyboard and controller input is also supported in this frontend. Keyboard input is handled as native keyboard input, and so the on-screen keyboard cannot be navigated with the keyboard arrow keys as the arrow keys are used to move the text cursor. Controller input is translated into mouse hover movements on the onscreen keyboard or their respective button actions (B for backspace, A for entering the selected button, L/R for moving the text cursor, etc). The text check dialogs can also be confirmed with controller input through the use of the OverlayDialog Massive thanks to Rei for creating all the UI for the various keyboards and OverlayDialog. This would not have been possible without his excellent work. Co-authored-by: Its-Rei <kupfel@gmail.com>
2021-04-15overlay_dialog: Add an overlay text dialog that accepts controller inputMorph
An OverlayDialog is an interactive dialog that accepts controller input (while a game is running) This dialog attempts to replicate the look and feel of the Nintendo Switch's overlay dialogs and provide some extra features such as embedding HTML/Rich Text content in a QTextBrowser. The OverlayDialog provides 2 modes: one to embed regular text into a QLabel and another to embed HTML/Rich Text content into a QTextBrowser. Co-authored-by: Its-Rei <kupfel@gmail.com>
2021-02-14yuzu: Various frontend improvements to avoid crashes and improve experience ↵bunnei
on Linux.
2021-02-06Add controller window and single joycon top viewgerman
2021-02-06Make settings controller image change with controller inputgerman
2020-12-24cmake: Always enable VulkanReinUsesLisp
Removes the unnecesary burden of maintaining separate #ifdef paths and allows us sharing generic Vulkan code across APIs.
2020-12-18util: Add URL Request Interceptor for QWebEngineMorph
2020-11-15applets/controller: Change the input button to create input profilesMorph
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-11-15configure_input: Add per-player vibrationMorph
Allows for enabling and modifying vibration and vibration strength per player. Also adds a toggle for enabling/disabling accurate vibrations. Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-11-15input_profiles: Implement input profilesMorph
2020-11-03core: Remove usage of unicornLioncash
Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python.
2020-10-26video_core: NVDEC Implementationameerj
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-09-04Project Mjölnir: Part 2 - Controller AppletMorph
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-29yuzu: Add motion and touch configurationFearlessTobi
2020-08-26Project Mjölnir: Part 1Morph
Co-authored-by: James Rowe <jroweboy@gmail.com> Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-07-18Address trivial review comments.FearlessTobi
2020-07-18yuzu: Port translation support from CitraFearlessTobi
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2020-07-14Merge pull request #4294 from MerryMage/cpu-opt-settingsbunnei
configuration: Add settings to enable/disable specific CPU optimizations
2020-07-12configure_cpu: Split optimization settings off into Debug tabMerryMage
2020-07-12Merge pull request #3385 from Morph1984/batch-installbunnei
frontend: Add support to batch install files to NAND
2020-07-11configuration: Add settings to enable/disable specific CPU optimizationsMerryMage