Commit graph

19037 commits

Author SHA1 Message Date
Liam b71130e6f1 gdbstub: fix target descriptions 2022-06-01 20:31:24 -04:00
Kyle Kienapfel 054732210e ui: Status bars dock button becomes dock/undock button
For people not used to the Yuzu UI it's not always clear if the emulated
console is docked or not.  The other items update their text when clicked,
this PR brings the DOCK button in line with this.

DOCK -> DOCKED or HANDHELD
2022-06-01 17:22:53 -07:00
bunnei af418eb666
Merge pull request #8400 from Docteh/fullscreen_glitch
fix UI opening fullscreen after certain crashes
2022-06-01 10:26:24 -07:00
liamwhite a2f6a2480d
Merge pull request #8404 from Morph1984/virtual
core/debugger: Define defaulted virtual destructors
2022-06-01 12:30:47 -04:00
Morph 69511aed3d core/debugger: Define defaulted virtual destructors
Resolves an MSVC warning where a virtual destructor is not defined in the base class with virtual functions.
2022-06-01 02:28:34 -04:00
Liam 989d4a7a41 core/debugger: Improved stepping mechanism and misc fixes 2022-06-01 02:15:15 -04:00
Morph a32f6e9d8e gdbstub: Explicitly cast return type to u8
Otherwise, the addition promotes the returned value to an int instead of keeping it as a u8.
2022-06-01 01:40:18 -04:00
Kyle Kienapfel 36df3ce97e fix UI opening fullscreen after certain crashes
Sometimes when yuzu crashes, it restarts with the games list in fullscreen,
which would be fine, except there isn't an easy way to exit this.
It also doesn't occur often enough for qt-config.ini files to be in good supply.

UILayout\geometry value in qt-config.ini is the culprit,
 at least for the one provided.

Proposed fix is to simply check isFullScreen when yuzu is starting up,
and take it out of full screen immediately
2022-05-31 21:24:31 -07:00
Liam fb4b3c127f core/debugger: Implement new GDB stub debugger 2022-06-01 00:01:25 -04:00
Narr the Reg e609bc1c6a service: hid: Improve stub of IRS 2022-05-31 10:26:13 -05:00
bunnei f6c47df671
Merge pull request #8368 from german77/seventimes
Service: hid: Several improvements and implementations
2022-05-30 10:44:36 -07:00
lat9nq 422525e3fb main: Insert warning text on broken Vulkan
Co-authored-by: Schplee <24275329+Schplee@users.noreply.github.com>
2022-05-30 10:58:19 -04:00
lat9nq 2dafb27055 main: Save config on broken Vulkan detect
Prevents possible issues if someone were to open yuzu repeatedly over
and over again.
2022-05-30 10:58:19 -04:00
lat9nq 500b01076e yuzu-qt: Make has_broken_vulkan only for crashes
Being able to catch and handle a Vulkan exception is not what this is
for.
2022-05-30 10:58:18 -04:00
lat9nq b43ae9d5ed vulkan_library: Add debug logging 2022-05-30 10:57:59 -04:00
lat9nq f22867efc5 yuzu-qt: Attempt to workaround broken Vulkan installations
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-30 10:57:59 -04:00
lat9nq 67fa743414 default_ini: Reflect new renderer backend default setting 2022-05-29 21:38:36 -04:00
lat9nq 5799fa4d7d settings: Set Vulkan to the default renderer backend 2022-05-29 21:38:36 -04:00
Kyle K 499c89790b motion touch ui: move remaining connection out of .ui file
Two reasons for this:
1. Out of 7 connections, 6 are in ConfigureMotionTouch::ConnectEvents,
   this is the outlier.
2. Qt6 doesn't moc the connection properly
2022-05-29 18:37:38 -07:00
Kyle K 75bf2c20eb Update some files with Qt 5.15.2 best practices in mind
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-29 09:21:52 -07:00
bunnei 1c8b509441
Merge pull request #8332 from Morph1984/reduce_exec_size
general: Use smaller array types where applicable
2022-05-29 02:33:24 -07:00
bunnei cc289a8ed0
Merge pull request #8339 from Docteh/about_icon
about dialog: Fix yuzu icon
2022-05-29 02:32:40 -07:00
Kyle K 017a18f42e Logging: Report Post Windows 10 2004 versions, like Windows 11
Qt5 and Qt6 don't really do a good job of reporting Windows versions past the 2004 version.

Current: Windows 10 Version 2009
This Patch: Windows 10 Version 21H1 (Build 19043.1706)
Also: Windows 11 Version 21H2 (Build 22000.675)

Fixes: #8362
2022-05-28 20:48:19 -07:00
Mai M 8a858c2623
Merge pull request #8385 from lat9nq/just-subsys-win
yuzu-qt: Call -Wl,--subsystem,windows directly
2022-05-28 14:30:15 -04:00
lat9nq 6e12eb80a0 yuzu-qt: Call -Wl,--subsystem,windows directly
-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-05-28 04:07:46 -04:00
bunnei d879741ec6
Merge pull request #8374 from german77/asnycvibrations
input_common: Make vibration request async
2022-05-28 00:55:53 -07:00
bunnei 439e621674
Merge pull request #8372 from german77/touch
input_common: touch: Rewrite touch driver to support multiple touch points
2022-05-27 12:16:03 -07:00
german77 a1f2610522 service: hid: Implement ResetIsSixAxisSensorDeviceNewlyAssigned
Needed by Nintendo Switch Sports
2022-05-27 10:22:37 -05:00
german77 240f59a4c8 service: hid: Implement LoadSixAxisSensorCalibrationParameter and GetSixAxisSensorIcInformation
Needed by Nintendo Switch Sports
2022-05-27 10:22:36 -05:00
german77 c889a5805e service: hid: Implement EnableSixAxisSensorUnalteredPassthrough and IsSixAxisSensorUnalteredPassthroughEnabled
Needed by Nintendo Switch Sports
2022-05-27 10:21:10 -05:00
german77 762a30d0db service: hid: Add error handling to sixaxis functions 2022-05-27 10:21:10 -05:00
german77 390d49c5f1 service: hid: Refractor sixaxis functions 2022-05-27 10:21:10 -05:00
german77 3cf15af31e service: hid: Implement MergeSingleJoyAsDualJoy according to RE 2022-05-27 10:21:09 -05:00
german77 7aa1d10655 service: hid: Add error handling to setNpadAssignment and variants 2022-05-27 10:21:09 -05:00
german77 74d1b9a254 service: hid: Quick RE fixes and comments 2022-05-27 10:21:08 -05:00
lat9nq 0e5a6676c3 path_util: Resolve -Wpointer-bool-conversion warning
Clang (rightfully) warns that we are checking for the existence of
pointer to something just allocated on the stack, which is always true.

Instead, check whether GetModuleFileNameW failed.

Co-authored-by: Mai M <mathew1800@gmail.com>
2022-05-26 19:01:26 -04:00
bunnei a9beb4746e
Merge pull request #8379 from lat9nq/amd-push-desc-workaround
vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
2022-05-25 13:07:39 -07:00
bunnei 79352ee9d5
Merge pull request #8369 from lat9nq/amd-wmel-workaround
vulkan_device: Workaround extension bug
2022-05-25 13:07:28 -07:00
lat9nq 3a8c2ae328 vulkan_device: Workaround extension bug
A bug occurs in yuzu when VK_KHR_workgroup_memory_explicit_layout is
available but 16-bit integers are not supported in the host driver.

Disable usage of the extension when this case arises.
2022-05-25 01:22:15 -04:00
lat9nq 7f53cd1e96 vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
Recent AMD Vulkan drivers (22.5.2 or 2.0.226 for specifically Vulkan)
have a broken VK_KHR_push_descriptor implementation that causes a crash
in yuzu. Disable it for the time being.
2022-05-25 01:17:48 -04:00
bunnei 4118aad491
Merge pull request #8311 from asLody/fix-stencil-faces
vk_rasterizer: fix stencil test when two faces are disabled
2022-05-24 18:37:31 -07:00
Narr the Reg bf948b5790 input_common: Make vibration request async 2022-05-23 12:25:02 -05:00
german77 c82806f9cb input_common: touch: Rewrite touch driver to support multiple touch points 2022-05-23 11:01:14 -05:00
liamwhite 4eb7f6c044
Merge pull request #8342 from lat9nq/clang-latest-stdc++
general: Use Common::U16StringFromBuffer in place of QString::toStdU16String
2022-05-20 23:35:10 -04:00
Kyle K 669a9a644d UI: Translate hotkey labels in configuration
Another request from GillianMC.

The translated strings have been placed in a separate "Hotkeys" context as an alternative
 to having to add the tr function to the Config class, or adding them to ConfigureHotkeys
context which is quite long. The English strings get attached to the items in the Action
column as "data", and are used for RetranslateUI and saving the hotkey configuration.
2022-05-18 22:05:19 -07:00
Alexandre Bouvier 020982508d video_core: Support new VkResult 2022-05-17 17:37:10 +02:00
lat9nq 5035df27c3 qt_software_keyboard: Address review feedback
Use auto and a more descriptive variable name.

Secondly, fix some C++ misconceptions or constructing too many objects.

Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
Co-authored-by: Lioncash <mathew1800@gmail.com>
2022-05-16 14:44:01 -04:00
Kyle K 8f3098fc1e about dialog: Fix the logo in a multiplatform way
The Icon was renamed in #8283 for Linux builds, and the fix proposed in #8312 would in turn break
the icon for Windows users.

I've decided to fix the aboutdialog.ui file via qtcreator.

I'm not sure its important to have the yuzu icon inside the About dialog grabbed from the local Qt theme,
but I've reword how the code works for that, and we can just delete those lines.

I've also thrown the yuzu.png through pngcrush to remove this warning
libpng warning: iCCP: known incorrect sRGB profile

Credit to abouvier for bringing bug up.
2022-05-16 05:42:38 -07:00
lat9nq 3ca3254b9f main: Use Common::U16StringFromBuffer
See ffd3afcf2
2022-05-15 18:09:19 -04:00
lat9nq f7908eebb9 qt_software_keyboard: Use Common::U16StringFromBuffer
See ffd3afcf2
2022-05-15 18:08:08 -04:00
lat9nq ffd3afcf2f string_util: Add U16StringFromBuffer
Qt's QString::toStdU16String doesn't work when compiling against the
latest libstdc++, at least when using Clang. This function effectively
does the same thing as the aforementioned one.
2022-05-15 18:06:33 -04:00
Lioncash f981e90af3 general: Avoid ambiguous format_to compilation errors
Ensures that we're using the fmt version of format_to.

These are also the only three outliers. All of the other formatters we
have are properly qualified.
2022-05-14 16:48:34 -04:00
Morph 36d44bf52f time_zone_manager: Use s8 for month length tables
Using this smaller type saves 512 bytes in the compiled executable.
2022-05-13 00:51:11 -04:00
Morph 370d3fa1e3 video_core/surface: Use u8 for PixelFormat block tables
Using this smaller type saves 33280 bytes in the compiled executable.
2022-05-13 00:51:11 -04:00
Morph b3f8c7ce58 codecs/vp9: Use u8 for norm and map luts
Using this smaller type saves 1536 bytes in the compiled executable.
2022-05-13 00:51:05 -04:00
Morph eea68eae18 command_generator: Use u8 for tap index lut
Using this smaller type saves 1024 bytes in the compiled executable.
2022-05-13 00:50:58 -04:00
Morph 0b9ef3c0b8
Merge pull request #8308 from german77/disablesix
service: hid: Disable correctly motion input
2022-05-11 17:51:54 -04:00
Morph 2fb6df3fe9
Merge pull request #8314 from liamwhite/gl-flip-2
OpenGL: interpret face flips according to GL NDC
2022-05-11 17:51:18 -04:00
Morph dca63391b6
Merge pull request #8313 from liamwhite/dma-bpp
maxwell_dma: fix bytes_per_pixel
2022-05-11 17:51:02 -04:00
Liam e7ba9fd7e1 maxwell_dma: use fallback if remapping is enabled 2022-05-10 19:26:48 -04:00
Liam e158951695 video_core/macro: clear code on upload address assignment 2022-05-10 17:07:21 -04:00
Fernando Sahmkow 5562ae9cc5 VideoCore: Add option to dump the macros.
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
2022-05-08 21:37:34 -04:00
Liam 7fe5004f90 video_core/macro_jit_x64: warn on invalid parameter access 2022-05-08 02:48:03 -04:00
Liam b317f54f22 OpenGL: implement face flips according to NDC 2022-05-06 20:05:21 -04:00
Liam 4f1a2c2562 maxwell_dma: fix bytes per pixel 2022-05-06 18:18:00 -04:00
Narr the Reg babd580c64 service: hid: Fix motion refresh rate 2022-05-06 11:13:49 -05:00
german77 7eb0992d2c service: hid: Disable correctly motion input 2022-05-06 11:13:48 -05:00
Lody 535bc61b4c vk_rasterizer: fix stencil test when two faces are disabled 2022-05-06 14:47:55 +08:00
Morph 4559112651 hle/result: Update std::expected replacement message
std::expected is included in C++23
2022-05-03 17:44:30 -04:00
Morph f3f3f1b7d9 hle/result: Add ResultRange overload in ResultVal
Also marks the implicit conversion operator as constexpr instead of consteval as the constructor is not constant evaluated.
2022-05-03 17:44:30 -04:00
bunnei b06f9f2606
Merge pull request #8272 from german77/stick_range
yuzu: config: Improve analog stick mapping
2022-05-03 14:36:39 -07:00
Morph 08bddd7d79 hle/result: Implement ResultRange
A ResultRange defines an inclusive range of error descriptions within an error module.
This can be used to check whether the description of a given ResultCode falls within the range.
The conversion function returns a ResultCode with its description set to description_start.
2022-05-02 18:17:39 -04:00
Kyle K 4be00def5c ui: retranslate the network tab
Looks like it was just missed when it was added, as currently the Network Tab only has one item
RetranslateUI is used more commonly throughout the project
2022-05-01 21:39:39 -07:00
Kyle K bd9f74e6e4 ui: let system locale control format of Custom RTC
The Custom RTC widget is under the influence of the computers System Locale.
The format strings are not necessarily related. As a small example, setting the Windows Language to Dansk, and then trying to use yuzu in English the requested AM/PM indicator is simply not shown

The display format for the Custom RTC field needs to be removed from src/yuzu/configuration/configure_system.ui

modifying the display format needs to be moved to src/yuzu/configuration/configure_system.cpp
2022-04-30 17:29:49 -07:00
Morph b50e1596cc
Merge pull request #8274 from german77/firmware
service: hid: Stub IsFirmwareUpdateNeededForNotification
2022-04-29 04:08:34 -04:00
Mai M ca28b447ac
Merge pull request #8280 from Tachi107/spdx-fixup
chore: add missing SPDX tags
2022-04-28 23:28:42 -04:00
Mai M 5687bc6e10
Merge pull request #8282 from liamwhite/gcc-12
GCC 12 fixes
2022-04-28 23:28:07 -04:00
Liam 709d7fd92c GCC 12 fixes 2022-04-28 16:50:34 -04:00
Andrea Pappacoda 01cf05bc75
chore: add missing SPDX tags
Follow-up to 99ceb03a1c
2022-04-28 18:24:11 +02:00
bunnei f3128fe915
Merge pull request #8267 from Morph1984/swapbuffers
renderer_vulkan: Update screen info if the framebuffer size has changed
2022-04-27 22:21:15 -07:00
Mai M 794cfb4271
Merge pull request #8236 from Docteh/sort_translations
Changes to language order in General -> UI -> Interface Language
2022-04-27 21:47:39 -04:00
bunnei 9ed0b5c5f9
Merge pull request #8229 from german77/reinterpret2
service: hid: Access shared memory directly
2022-04-27 12:31:27 -07:00
Kyle K 99b425e0e2 Changes to language order in General -> UI -> Interface Language
Language List is from Dolphin, specifically https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DolphinQt/Settings/InterfacePane.cpp#L30

Any languages that are compiled in, but not in the list will be at the end.
2022-04-27 02:33:16 -07:00
german77 173d849b8f service: hid: Stub IsFirmwareUpdateNeededForNotification
Used in Fitness Boxing 2: Rhythm & Exercise (0100073011382000)
2022-04-27 00:06:30 -05:00
Narr the Reg 17ce54d7f2 yuzu: Config allow to delete single axis directions when buttons are mapped to a stick 2022-04-26 19:03:54 -05:00
Narr the Reg d2388a2ca8 yuzu: config: Set default range to 95% 2022-04-26 19:03:54 -05:00
Morph 213120a98b renderer_vulkan: Update screen info if the framebuffer size has changed 2022-04-26 02:48:40 -04:00
Mai M 8304b14a90
Merge pull request #8261 from liamwhite/jit-cleanup
service: jit: document and clean up
2022-04-24 22:03:39 -04:00
Liam 64e93dc959 service: jit: document and clean up 2022-04-24 20:25:42 -04:00
Mai M a7f7279d9d
Merge pull request #8260 from Morph1984/c4146
kernel: svc: Replace -1ULL with 0xFFFFFFFFFFFFFFFF
2022-04-24 18:25:00 -04:00
Morph 8eabdc058b kernel: svc: Replace -1ULL with 0xFFFFFFFFFFFFFFFF
Resolves the C4146 compiler warning on MSVC.
2022-04-24 17:40:47 -04:00
Merry 91a6df0361 Remove unused PrepareReschedule function 2022-04-24 12:10:16 +01:00
Narr the Reg 0f3ad939a8 service: hid: Ensure all structs are initialized 2022-04-23 17:11:43 -05:00
Narr the Reg 61582efeb9 service: hid: Access shared memory directly 2022-04-23 15:41:42 -05:00
Morph 7f77aafe41
Merge pull request #8249 from german77/queued
hotkeys: Trigger actions on a separate thread
2022-04-23 16:21:23 -04:00
Narr the Reg 4de43e4d4a hotkeys: Trigger actions on a separate thread 2022-04-23 14:24:28 -05:00
Morph 99ceb03a1c general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
bunnei 04afcfe115
Merge pull request #7976 from BytesGalore/master
loader: log the type of mismatching file-extension
2022-04-22 23:55:07 -07:00
bunnei 764e5c7fe5
Merge pull request #7978 from german77/sideway
input_common: Map sticks correctly when mapped sideways
2022-04-21 22:21:59 -07:00
bunnei a1ee9799bc
Merge pull request #8222 from german77/sixaxis_test
service: hid: Improve accuracy of sixaxis functions
2022-04-21 21:25:47 -07:00