Commit Graph

518 Commits

Author SHA1 Message Date
Squall Leonhart
1beec40445
Fix logging related crash in KPADGetUnifiedWpadStatus (#875) 2023-06-22 04:11:31 +02:00
Maschell
fd3b5b7f27
coreinit: Fix FSGetMountSource and FSAppendFile implementation (#863)
Fixes SD access in SSBU
2023-06-17 13:51:55 +02:00
Chris Purnell
950e9564e6
Fix register window not updating in PPC debugger (#864) 2023-06-17 13:50:40 +02:00
Chris Purnell
f0ef8f3cc2
Fix some out of bound array access. (#862) 2023-06-16 20:15:43 +02:00
Chris Purnell
f6a1cc598e
Fix error message when SDL fails to initialize (#861) 2023-06-16 19:57:27 +02:00
Exzap
633e5c0e05 Fix incorrect return values in OSAtomic 2023-06-15 22:36:45 +02:00
Exzap
808d1bb424 Add debug asserts for invalid MEMPTR
Also fixed some corruptions this uncovered
2023-06-15 22:36:35 +02:00
Exzap
7886b594a2 nsysnet: Implement inet_ntop 2023-06-15 22:36:25 +02:00
Exzap
0bead50065 coreinit: Implement support for ".." in paths 2023-06-15 21:23:18 +02:00
Maschell
f1ebfa9941
coreinit: Implement several FSA functions and fix some bugs (#844) 2023-06-15 21:05:16 +02:00
Colin Kinloch
ae4cb45cf3
Check wx dialogs aren't returning blank paths (#845) 2023-06-06 14:17:41 +02:00
Maschell
6073ab3ec6
coreinit: Refactor FS functions to be more accurate (#842) 2023-06-04 11:13:45 +02:00
Colin Kinloch
4ae5b4f8b8
Wayland: Use viewporter (#836) 2023-05-28 02:04:24 +02:00
Crementif
d903b2cf12
Remove deprecated logging system and expose developer logging window (#825) 2023-05-20 02:46:12 +02:00
Alexander
b8dec03cb5
Add missing template arguments for std::forward (#819) 2023-05-15 18:31:53 +02:00
Exzap
eda4cf4b24
Fix UI crash on Windows (#813) 2023-05-11 15:27:45 +02:00
Nicholas F
1bcdb35e42
Add GameMode support for Linux build (#796) 2023-05-11 07:19:44 +02:00
Jonathan Barrow
b74ae21953
Resolve domains to IPs in Friends NEX (#807) 2023-05-10 11:51:54 +02:00
goeiecool9999
d56bc807cf
GraphicsPackWindow2: Use UTF8 (#802) 2023-04-26 15:41:23 +02:00
why-keith
1f16e999c5
Migrate missing forceLog_printf statement to new logging (#800) 2023-04-25 18:15:37 +02:00
why-keith
e58a84629f
Migrate coreinitMemLog_printf to new logging (#799) 2023-04-25 18:09:00 +02:00
why-keith
caa57a3cfd
Logging migration (forceLogDebug_printf) (#780)
* script changes - no arguments

* script changes with 2 arguments

* script changes with > 2 arguments

* script conversions with 1 argument - pt. 1

* script conversions with 1 argument - pt. 2

* script conversions with 1 argument - pt. 3

* script conversions with 1 argument - pt. 4

* script conversions with 1 argument - pt. 5

Pointer format hunting

* Fixed pointer format

* script conversions with 1 argument - final

* fixed conversion in non utf-8 file

* fixed conversion with capital letter

* actually fixed conversion with capital letter

* fixed another capital lettering issue

* Added conversions with LR removed

* removed LR from logs

* Converted logs that previously contained LR

* converted log that originally specified string length

* fixed log with commas in main text

* fixed multi-line log

* Fixed more logs with commas in main text

* Fixed unformatted pointer

* added conversion with float value

* converted lines with double parameters

* converted missed line

* corrected argument formatting

Co-authored-by: Crementif <26669564+Crementif@users.noreply.github.com>

* Fixed misspellings of "unhandled"

unhandeled -> unhandled

Co-authored-by: Crementif <26669564+Crementif@users.noreply.github.com>

---------

Co-authored-by: Crementif <26669564+Crementif@users.noreply.github.com>
2023-04-25 08:43:31 +02:00
Exzap
f48ad6a1ca Dont format logging calls with only the format string 2023-04-20 14:37:11 +02:00
Exzap
41f2c27229 Remove dependency on boost::dll and boost::range 2023-04-16 11:51:25 +02:00
why-keith
80953fe603
Migrate saveLog_printf to new logging (#768) 2023-04-16 00:31:53 +02:00
why-keith
27a5671056
Migrate inputLog_printf to new logging (#767) 2023-04-16 00:18:11 +02:00
why-keith
a519b01b58
Migrate socketLog_printf to new logging (#766) 2023-04-16 00:08:22 +02:00
why-keith
9c6e3fb144
Migrate nfpLog_printf to new logging (#769) 2023-04-15 15:19:00 +02:00
Exzap
ecb7b77326 Latte: Use better hashing algorithm for cache invalidation
Decreases chance of hash collisions while also being faster due to 4 channel vectorization
2023-04-15 10:08:58 +02:00
why-keith
a640bd079c
Migrate sndApiLog_printf to new logging (#762) 2023-04-13 14:18:45 +02:00
why-keith
486e228f72
Migrate gx2Log_printf to new logging (#761) 2023-04-13 14:13:54 +02:00
Michael
d27935a1bd
Update URLs related towards cemu_graphic_packs repo. (#764) 2023-04-13 04:37:53 +02:00
why-keith
4be57f4896
Migrate force_log_printf to new logging (#714) 2023-04-12 16:31:34 +02:00
Exzap
072c18a6e3 Improve exception logging on posix
Fix compile errors
2023-04-06 07:33:41 +02:00
Nicholas F
55e1551cc7
Add F11 hotkey to gamepad view (#727) 2023-04-04 04:39:29 +02:00
goeiecool9999
cb9570e229
Fix disable screensaver workaround (#728) 2023-03-30 11:32:25 +02:00
Colin Kinloch
b3180bc4a6 Fix GamePad window when using vulkan with wayland 2023-03-29 18:22:48 +02:00
Colin Kinloch
be1e77186e
Wayland: Set app_id for icon in kde (#718) 2023-03-29 16:28:17 +02:00
Nicholas F
715d2247a9 Allow user to enter fullscreen with F11 2023-03-29 14:24:51 +02:00
Tillsunset
aa63a6a36e Disable the "Disable screen saver" option 2023-03-29 02:23:52 +02:00
Exzap
3ff3b732c8
Upgrade vcpkg + submodule dependencies (#719) 2023-03-28 17:43:02 +02:00
JP-Carr
a7f6043205 switched cafeLog_logLine() with cemuLog_log() 2023-03-26 15:10:48 +02:00
Tillsunset
18a266155f Revert "Force async compile off for macos (#532)"
This reverts commit 523a0e1706.
2023-03-24 18:06:19 +01:00
Rivan Parmar
823386cc09
gui: Added location column in Title Manager (#697)
Thanks @RivanParmar!
2023-03-19 11:25:05 +01:00
Exzap
9049ad91f9 Add missing constructor 2023-03-13 05:34:53 +01:00
Exzap
e803c6be47 Use attribute for AES-NI instead of -maes option 2023-03-13 05:34:53 +01:00
Exzap
9fb8f4cb6b Fix StringBuf.add() 2023-03-13 05:34:53 +01:00
Exzap
504e0488a8 Remove shaderMulAccuracy "min" option
It's less accurate and it doesn't actually perform better on most hardware.
2023-03-13 05:34:53 +01:00
Exzap
040cc27a40 Logging: Fix typo in preprocessor constant name 2023-03-13 05:34:53 +01:00
Exzap
8ce3f834c4 Latte: Optimize shader decompiler output 2023-03-13 05:34:53 +01:00
Exzap
a2c518354f Remove unnecessary include 2023-03-02 16:44:22 +01:00
Exzap
466ad8d35e Latte/Vulkan: Set RoundingModeRTE for all float types
Seems like GLSL's unpackHalf2x16() is affected by the 16bit rounding setting
2023-03-02 16:22:28 +01:00
Exzap
f8ea594447 Latte: Small refactor for shader decompiler
Latte: Small refactor for shader decompiler
2023-03-02 16:22:19 +01:00
Exzap
4a564e2447 Latte/Vulkan: Set shader rounding mode via VK_KHR_SHADER_FLOAT_CONTROLS 2023-03-02 16:22:05 +01:00
Exzap
43c9a4eccd
Fix compilation error when ENABLE_DISCORD_RPC is not set 2023-03-02 11:09:54 +01:00
Georgiy NN
b87465fd8a Fix building with cubeb disabled 2023-02-25 19:17:19 +01:00
Jonathan Mohrbacher
44c16e1c64 Delete dead EmulatedController::find_controller method 2023-02-25 18:45:42 +01:00
lisa-wolfgang
4c697d3755
Add cross-platform "disable screen saver" setting (#497) 2023-02-24 22:10:07 +01:00
Exzap
80b1c50b50 coreinit: Fix thread scheduler not resetting quantum
When a thread was force-rescheduled (e.g. via OSYieldThread) the next time it resumed it would not reset the time slice duration (remainingCycles) back to ppcThreadQuantum. As a consequence threads were often immediately rescheduled and only on the next turn they would get their full time slice.

Aside from (very slightly) improving performance, this also fixes the OSDisableInterrupts warning spam in the log for TPHD.
2023-02-22 13:37:14 +01:00
Exzap
9d25b88368 Latte: Add support for MIN_DX10 shader instruction 2023-02-22 13:37:14 +01:00
Crementif
05e0f349e0
debugger: Disable Linux read/write breakpoints for now (#669)
It seems that there's some differences for some distros so until a proper solution is found, just disable it for now.
2023-02-20 00:29:32 +01:00
Crementif
6d75776b28
Add GDB stub for debugging (#657)
* Implement GDB stub debugger

Can be enabled by using the "--enable-gdbstub" option (and the debugger GUI, although that's untested) which'll pause any game you launch at start-up. Will start at port 1337 although it'll eventually be user-editable. The code is a bit weirdly sorted and also just needs a general cleanup, so expect that eventually too. And uses egyptian braces but formatting was easier to do at the end, so that's also something to do.

It has been tested to work with IDA Pro, Clion and the standalone interface for now, but I plan on writing some instructions in the PR to follow for people who want to use this. Memory breakpoints aren't possible yet, only execution breakpoints.

This code was aimed to be decoupled from the existing debugger to be able to be ported to the Wii U for an equal debugging experience. That's also why it uses the Cafe OS's thread sleep and resuming functions whenever possible instead of using recompiler/interpreter controls.

* Add memory writing and floating point registers support

* Reformat code a bit

* Format code to adhere to Cemu's coding style

* Rework GDB Stub settings in GUI

* Small styling fixes

* Rework execution breakpoints

Should work better in some edge cases now. But this should also allow for adding access breakpoints since it's now more separated.

* Implement access breakpoints

* Fix some issues with breakpoints

* Fix includes for Linux

* Fix unnecessary include

* Tweaks for Linux compatibility

* Use std::thread instead of std::jthread to fix MacOS support

* Enable GDB read/write breakpoints on x86 only

* Fix compilation for GCC compilers at least

The thread type varies on some platforms, so supporting this is hell... but let's get it to compile on MacOS first.

* Disable them for MacOS due to lack of ptrace

---------

Co-authored-by: Exzap <13877693+Exzap@users.noreply.github.com>
2023-02-19 15:41:49 +01:00
goeiecool9999
05d82b09e9
Add back missing flag to keep background image in background (#667) 2023-02-19 14:52:19 +01:00
goeiecool9999
cbb79fd34c
Separate imgui contexts for TV and Pad windows. (#664) 2023-02-18 11:56:43 +01:00
Exzap
f3ff919be2
Code clean up + replace some wstring instances with utf8 (#640) 2023-01-29 13:53:31 +01:00
bslhq
ca79a6aa0d
GameList: Fix hidden last column (#632) 2023-01-29 13:06:20 +01:00
Exzap
8651c4bae7 coreinit: Correctly return success code in FSRemove 2023-01-28 10:05:29 +00:00
Exzap
404af95a2c Latte: Less aggressive texture readback
By mistake we would read affected textures back after every single drawcall. As an optimization if the same texture gets drawn to multiple times we'll try to only read it back once at the end of the sequence.
2023-01-27 09:57:10 +00:00
Exzap
859dc78e90 coreinit: Dont yield uninterruptible threads in spinlock 2023-01-27 09:57:10 +00:00
Exzap
387b712959 Logging: Add TextureReadback logtype and clean up code 2023-01-27 09:57:10 +00:00
Exzap
9bbfd33842 Latte: FragCoord w should not be reciprocal
Fixes rendering in various Virtual Console DS titles
2023-01-27 09:57:10 +00:00
Exzap
43b5ad2f1c PPCInterpreter: Improve overflow handling 2023-01-27 09:57:10 +00:00
Exzap
4b5014c16a coreinit: Fix memory mapping API
Fixes Unity based games freezing on boot
2023-01-27 09:57:10 +00:00
Exzap
f2671f417f Input: Fix potential race condition
Operator = for ControllerButtonState wasn't properly synchronized
2023-01-27 09:57:10 +00:00
jn64
9d55f46eb1
Always show "Open Cemu folder" menu item (#612) 2023-01-13 15:59:15 +01:00
goeiecool9999
33bd10b4e0
Vulkan: Use the correct resolution for out-of-date check (#595) 2022-12-29 00:19:05 +01:00
bslhq
0c6f18ab97
TitleMgr: Fix "c" showing up in account list for saves (#590) 2022-12-26 23:46:53 +01:00
Tillsunset
058d11b49b
Optimized timer code for macOS (#576) 2022-12-15 10:28:44 +01:00
SSimco
fcab8f8f1a
Linux: Add CMake find module for wayland + make wayland optional (#572) 2022-12-15 08:44:14 +01:00
Tillsunset
aea9f5b966
Fix SDL controller reversed y axis in UI (#574) 2022-12-14 05:41:48 +01:00
Tillsunset
4491560b32
Add check for backwards delete (#564) 2022-12-09 18:01:08 +01:00
Elijah
5a143c7b4b
Linux/MacOS: Use faster clock_gettime() for tick_cached() (#563) 2022-12-08 17:08:15 +01:00
SSimco
fca7f5dfe4
Linux: Add Vulkan support for wayland (#553) 2022-12-07 16:45:25 +01:00
Exzap
2c81d240a5
Make codebase more CPU-agnostic + MacOS disclaimer (#559) 2022-12-07 01:48:24 +01:00
Tom Lally
445b0afa95
Better screenshot error handling (#552) 2022-12-05 17:16:08 +01:00
iamqk
c1afa4cad0
PPCAssembler: Fix incorrect cast sign of branch distance calculate (#555) 2022-12-05 13:52:02 +01:00
Tom Lally
dd538d477c
Correctly create screenshot directory if it does not exist (#551) 2022-12-03 17:57:32 +01:00
Tom Lally
b361b154d8
Cross-platform screenshots (#543)
Co-authored-by: Tom Lally <tomlally@protonmail.com>
Co-authored-by: Exzap <13877693+Exzap@users.noreply.github.com>
2022-12-02 04:51:07 +01:00
goeiecool9999
2cfb7f3737
Automatically scale imgui text based on display pixel density (#545) 2022-12-01 15:58:08 +01:00
goeiecool9999
d3721c3f46
Fix render resolution at different UI scales (#514) 2022-11-30 13:39:32 +01:00
goeiecool9999
a3476c7b7c
macOS: Workaround for MoltenVK stride limitation (#534) 2022-11-30 01:26:42 +01:00
goeiecool9999
79e731d9b4
Add macOS keycodes for left/right control and tab (#535) 2022-11-30 01:26:12 +01:00
Tillsunset
6f985c3c78
Fix black screen when graphics packs are used (#541) 2022-11-29 10:54:11 +01:00
Tillsunset
87d2f8ad55
Fix shader preset regex (#536) 2022-11-28 08:24:52 +01:00
Tillsunset
523a0e1706
Force async compile off for macos (#532) 2022-11-26 02:10:51 +01:00
goeiecool9999
bc104859f3
Vulkan: return to more conventional swapchain sync method, encapsulate more code (#525) 2022-11-25 09:51:47 +01:00
SSimco
8162477dc1
ui: Add Open Cemu folder & delete shader cache buttons (#524)
* Add option to open UserDataPath folder
* Add option to remove shader caches

Co-authored-by: ssimco <ssimco-github@proton.me>
2022-11-24 18:57:13 +01:00
goeiecool9999
cbdf381b31
Fix gamepad hotkey and game profile setting (#510) 2022-11-24 12:29:29 +01:00
SSimco
c43fc81f8e
Disable key events for InputPanel's text controls (#520) 2022-11-24 11:10:37 +01:00
greybaron
c0ebbef9bd
macOS: Fix error sound for every KB keypress on render canvas (#521) 2022-11-21 22:47:53 +01:00
goeiecool9999
8ff668a303
fix flicker on windows (#523) 2022-11-21 21:45:46 +01:00
goeiecool9999
f4c2d16a3a
Attempt to fix flicker on resize, don't recreate if image was already acquired. (#522) 2022-11-21 19:06:35 +01:00
goeiecool9999
3a94a276da
Vulkan: Further simplify swapchain code (#502) 2022-11-21 16:47:43 +01:00
goeiecool9999
01ce523f01
Input settings: Fix combobox dropdown not working on linux (#500) 2022-11-21 13:13:19 +01:00
goeiecool9999
9ce52ad83a
Linux/macOS: Implement overlay CPU/memory statistics (#480) 2022-11-20 19:53:45 +01:00
MythicalPlayz
c17097369b
Redownload BOSS files if they are not found (#504) 2022-11-20 17:21:20 +01:00
SSimco
8f1ee9e5aa
Fix checking space using non existing folder (#503) 2022-11-18 12:46:05 +01:00
goeiecool9999
57c8dec335
fix two if statements checking range of number wrong (#494) 2022-11-17 15:42:08 +01:00
goeiecool9999
2adabcb936
Linux: Save 10.7MiB of useless debug info (#475) 2022-11-17 15:31:34 +01:00
SSimco
b1c70588fe
Enable online features for Unix (#486) 2022-11-15 17:03:46 +01:00
goeiecool9999
4442efa8ac
rely on distro policy to make executable PIE, but do enforce noexecstack on final output (#490) 2022-11-13 17:23:48 +01:00
goeiecool9999
e9d10a9581
Linux+OpenGL: Implement GUI vsync setting (#477) 2022-11-13 08:29:25 +01:00
goeiecool9999
2842615edb
Fix various colour values for dark themes (#439) 2022-11-13 08:27:09 +01:00
jn64
7f21104b54
Disable Discord RPC checkbox based on build option (#476) 2022-11-11 20:51:50 +01:00
goeiecool9999
bbd8d6d5ac
Linux OpenGL: Fix gamepad not updating (#474) 2022-11-11 08:33:44 +01:00
goeiecool9999
4d68446f14
Vulkan: Further swapchain code improvements. (#473) 2022-11-11 08:14:38 +01:00
goeiecool9999
a0e69ffbbd
Linux: Explicitly enable some flags related to security. (#446) 2022-11-09 07:17:50 +01:00
bslhq
be287a1f4e
ImGui: match all begin()/end() (#470) 2022-11-09 02:45:40 +01:00
Tillsunset
5adb1e9618
Add commit hash to build name on build check workflow (#463) 2022-11-07 02:47:59 +01:00
goeiecool9999
138510106c
Vulkan: Fix freeze when closing pad view (#435) 2022-11-06 00:40:00 +01:00
Exzap
948460cad7 InputSettings: Refresh panels on profile load and other operations 2022-11-06 00:32:33 +01:00
Exzap
3df8217a02 SDLController: Do not manually recycle controller instance
SDL_GameControllerFromInstanceID does not increase internal ref counter.
Fixes a crash when removing an SDL controller that is in use by another profile
2022-11-06 00:32:33 +01:00
Exzap
ec6726e85c Use generic EC_POINT_get_affine_coordinates 2022-11-06 00:32:33 +01:00
goeiecool9999
348d86648f
Vulkan: Refactor swapchain code (#399) 2022-11-04 15:22:29 +01:00
Tillsunset
2f86622a68
Don't go to mount point for free space check (#450) 2022-11-04 14:34:32 +01:00
Exzap
a40b226e00
CubebInput: Avoid redundant CoInitializeEx (#449) 2022-11-03 18:29:21 +01:00
Tillsunset
521f2fb707
MacOS: Workaround for Metal stride limitation (#445) 2022-11-03 12:51:32 +01:00
goeiecool9999
a129d22a57
Vulkan: Experimental fix for self-dependency barriers during renderpass (#431) 2022-11-03 00:43:26 +01:00
Adrian Graber
d4e14d2b05
Implement proper microphone support (#251) 2022-11-03 00:24:34 +01:00
goeiecool9999
dfa7774c4c
Non-windows: Link fontawesome into executable. (#442) 2022-11-03 00:23:31 +01:00
goeiecool9999
c3182aedd9
GeneralSettings: Update vsync after settings close (#401) 2022-10-31 17:54:26 +01:00
Zhaohui Shi
f41f7b63e8
DSUController: fix crash when running on offline mode (#434) 2022-10-31 14:27:35 +01:00
Tillsunset
c143950dd1
Fix fullscreen on macos (#429) 2022-10-30 01:40:53 +02:00
OatmealDome
e0aaf631c4
macOS: Set values for empty keys in Info.plist (#425) 2022-10-28 16:57:14 +02:00
Tillsunset
9ebbfb3ae2
Fix some compiler warnings (#416) 2022-10-26 14:47:44 +02:00
gurrgur
3869b47c35
OpenGL: Bind back buffer before clearing (#222) (#414) 2022-10-26 14:07:34 +02:00
GaryOderNichts
d303a7f502
coreinit: Implement OSGetSystemTick (#415) 2022-10-26 14:06:16 +02:00
GaryOderNichts
2461464ba7
FSA: Add missing path translations (#413) 2022-10-26 00:25:46 +02:00
gurrgur
76c75f767b
Use portable format specifiers (#411)
Fixes #387
2022-10-25 20:38:29 +02:00
Zhaohui Shi
88f63ca373
DSU: Fix bad crc calculate (#410) 2022-10-25 18:25:19 +02:00
Zhaohui Shi
643ac57a30
DSU: fix build error when enable DEBUG_DSU_CLIENT (#408) 2022-10-24 23:14:22 +02:00
emiyl
8f674933d2
Create Cemu .app bundle for macOS (#364) 2022-10-23 16:58:28 +02:00
Exzap
028b3f7992
Make controller button code thread-safe (#405)
* Refactor spinlock to meet Lockable requirements
* Input: Refactor button code and make it thread-safe
2022-10-23 15:47:42 +02:00
Tillsunset
1bcc064593
Add check for "." in FSC path (#402) 2022-10-23 13:06:20 +02:00
MythicalPlayz
c217b3ee32
GameList: Use title name based on console language (#388) 2022-10-21 00:17:11 +02:00
goeiecool9999
dd1cb1cccf
Update title manager when clearing MLC path in settings (#319) 2022-10-20 13:18:44 +02:00
goeiecool9999
9df1325d14
Linux: Resolve backtrace symbols directly from .symtab instead of .dynsym (#385) 2022-10-20 13:12:16 +02:00
MythicalPlayz
271a4e4719
Fixed Discord Rich Presence not working on games that are on MLC (#383) 2022-10-18 17:08:09 +02:00
Exzap
665a34e518
Linux: Always use libpng from system (#381)
* Always use system libpng on Linux
* Remove dependency on boost-crc in DSU (reuse existing implementation)
2022-10-17 13:25:49 +02:00
MythicalPlayz
753040f73a
Added Boot Image for Gamepad (#372) 2022-10-17 11:26:32 +02:00
goeiecool9999
e88d20cbfb
Fix crashes when wxWidgets tries to free stack allocated dialogs (#377) 2022-10-16 09:02:33 +02:00
Tillsunset
f0938e1a23
Fix CRC errors on MacOS(/Linux?) (#375)
Fixes graphic packs (like FPS++) not working even when enabled.
2022-10-15 13:38:06 +02:00
Tillsunset
df0e2f7881
Fix Cannot set locale to "" (#366)
* Add en resource and change language selection for macos user that don't have US as their system region
* default to English if the system language is unavailable
2022-10-15 07:20:20 +02:00
Exzap
ada8bbb3b4
Linux/MacOS: Greatly improve performance (#370)
std::unordered_set is implemented as a flat hashtable on libstdc++ which makes clearing expensive due to invoking memset on the entire table. To get the best performance across all platforms this replaces the unordered_set with a custom high-performance sparse bitset
2022-10-14 13:45:40 +02:00
Exzap
a19ed46b2a
Windows: Fix file and folder dialog freeze (#369)
Initializing the COM library immediately seems to be more robust than doing it on demand
2022-10-14 12:49:41 +02:00
Exzap
d251ce07e0 XAudio2: Don't quit on failed CoInitializeEx()
It returns an error code when already initialized
2022-10-13 12:18:34 +02:00
Exzap
f65dbe8437 Fix encoding error in input profile filenames
- Controller profile filenames now encode unicode characters correctly
- Removed dependency on boost::filesystem. There is still an indirect dependency on it from another boost module it seems
- Refactored some code to use FileStream instead of ifstream/ofstream
2022-10-12 14:27:01 +02:00
SSimco
8b3f36ad50
Use correct preprocessor check for Linux (#360) 2022-10-12 13:10:57 +02:00
SSimco
d6ba61cf64
Add support for non portable mode (#356) 2022-10-12 08:03:26 +02:00
Exzap
2b9edced81
Minor tweaks and code clean up (#357) 2022-10-11 09:17:34 +02:00
MythicalPlayz
b07e9efba4
Add support for choosing network service (incl Pretendo+Custom) (#302) 2022-10-11 04:04:47 +02:00
Exzap
52cc7c5996
Follow imgui recommendation and streamline build dependencies (#355) 2022-10-11 01:43:15 +02:00
goeiecool9999
431c5a101f
Linux: Print demangled symbols on backtrace (#312) 2022-10-10 02:35:04 +02:00
Tillsunset
0c9fb3143f
memory optimization, using posix_memalign (#350) 2022-10-09 10:43:45 +02:00
Tillsunset
638e9e1f87
Workaround for the h264 video crash on macOS (#348) 2022-10-09 08:45:26 +02:00
Tillsunset
b724a657e6
MoltenVk: Add missing texture decoders (#332) 2022-10-08 15:07:54 +02:00
bslhq
551f821109
Auto resize last column (#265) 2022-10-07 14:30:06 +02:00
emiyl
00968acc1d
dedicated decoder for R4G4 and R4G4B4A4 to R8G8B8A8 (#331) 2022-10-07 02:39:06 +02:00
Tillsunset
fb5ecca157
Vulkan: Use correct texture clear in LatteDraw_handleSpecialState8_clearAsDepth (#321) 2022-10-02 19:18:35 +02:00
Tillsunset
11f6e2b7ee
Vulkan: Implement texture decoder for R5G6B5_UNORM to R8G8B8A8_UNORM (#320) 2022-10-02 01:48:13 +02:00
emiyl
9541c8ae85
MoltenVk: Workaround for unsupported format R5_G6_B5_UNORM (#318) 2022-09-30 18:07:00 +02:00
Exzap
cceb4f6d0e
Vulkan: Always disable blending for integer formats (#317)
Should fix a warning in the Vulkan validation layer and avoid a sigtrap in MoltenVk
2022-09-30 15:59:16 +02:00
emiyl
ecfbbd4e26
MoltenVK: Workaround for unsupported formats (#315) 2022-09-30 15:28:56 +02:00
Narr the Reg
3767257220
nfp: Fix corruption, correct structs and use write counters (#310) 2022-09-29 13:00:46 +02:00
Tillsunset
3fb4b5e26c
MacOS+Linux: Use CLOCK_MONOTONIC_RAW over CLOCK_MONOTONIC (#313)
On MacOS this fixes the framerate being too high due to discontinuities in the timer that drives the emulated vsync. It also fixes behavior of the GetTickCount() wrapper.
2022-09-29 11:36:27 +02:00
goeiecool9999
6ecc4be0da
Posix/Linux: Add setting to disable coredumps 2022-09-27 13:58:50 +02:00
SSimco
25dae98ce0
Fix crash on GTK when a gfx pack preset value is changed (#300) 2022-09-26 07:53:10 +02:00
Exzap
9caf57c2c5
Vulkan: Fix incorrect encoding for substituted R4G4 format (#288)
Fixed incorrect channel order when VK_FORMAT_R4G4_UNORM_PACK8 is substituted with VK_FORMAT_R4G4B4A4_UNORM_PACK16
2022-09-24 11:44:44 +02:00
Exzap
3bceb39966
Remove PUBLIC_RELEASE flag and tie asserts to debug config (#287)
Removes the -DPUBLIC_RELEASE flag. Cemu's debug asserts are now only enabled if the build configuration is Debug. Similarly, on Windows the console is only shown for Debug builds.
2022-09-24 08:43:27 +02:00
Tillsunset
7864d76eca
fixed the string encoding issue on macOS (#277) 2022-09-20 14:50:34 +02:00
Crementif
510d80038d
[coreinit] Add OSIsDebuggerPresent 2022-09-19 21:41:01 +02:00
SSimco
9f02733a0d
Use unordered_map for keydown to allow codes above 255 (#248)
- Adds internal support for 32bit key codes, required for proper keyboard input on Linux
- Use gdk_keyval_name to get key name on Linux
2022-09-19 03:07:26 +02:00
Exzap
5e968eff4f
Fix 1x1 symbols in debugger window + Load icons from headers on all platforms
- Fixed an issue where the toolbar icons for the debugger were resized to 1x1
- On Windows we now load the PNG UI icons from the header-embedded pngs (`resource/embedded`) instead of via `cemu.rc` to match behavior of other platforms
2022-09-18 15:53:10 +02:00
Tillsunset
867c0c5ca2
Fix some issues with building on macOS (#268)
* fixed building on macos, needs OBJC and OBJXX to be enabled
* changed to weak ordering due to string comparison not being strong ordering
* Use raw PNG bytes from "resource/embedded/resources.h" in all windows too
2022-09-18 14:39:00 +02:00
Exzap
12b6830546
GX2: Add crash workaround for FFL uninitialized texture (#264)
When a game tries to generate Miis without the FFL files being dumped (<mlc>/sys/title/0005001b/10056000/content/) it will cause it to create and use a texture with invalid parameters.
This workaround catches and replaces bad texture parameters to avoid crashing further down the line.

Resolves crashes in Sonic Lost World, Super Mario 3D World and probably a few others.

We had this workaround in pre-2.0 Cemu already but it was dropped during refactoring.
2022-09-17 16:32:46 +02:00
Tillsunset
41dcd48048
Fix a small regression when building in Macos (#262) 2022-09-17 13:52:12 +02:00
Herman Semenov
03f5967408
Fix incorrect streamout buffer index in GS + refactor various code (#258) 2022-09-17 03:45:18 +02:00
Maximilian Downey Twiss
4a3d02db55
Properly list files in CMakeLists instead of using GLOB (#249) 2022-09-17 03:24:57 +02:00
Exzap
910cdf4d5c
Refactor wxGameList color code and match previous style on light theme (#261)
Refactored to pre-calculate the game list row colors at the beginning of the function. If the background color is almost white as it is on Windows, we'll use the previous bluish secondary color instead of grey-scale lightness adjustment.
2022-09-17 02:39:52 +02:00
Shoegzer
6ef36152c2
Use system color definitions for wxGameList (#241)
Previously it would use hard-coded bright colors which clashed with dark themes on Linux
2022-09-17 01:06:36 +02:00
Exzap
63206eb9a8
coreinit: Return error code instead of success in Acquire failure (#260)
Spotted by @Fs00
It's currently not known if any games are affected by this
2022-09-16 14:25:38 +02:00
Francesco Saltori
664d7ee902
Clean up more Cemuhook leftovers (#253) 2022-09-16 13:34:41 +02:00
Exzap
61a3b07697
Merge pull request #238 from Fs00/more-translations
More l10n improvements and add workflow to generate POT file
2022-09-14 22:49:14 +02:00
capitalists
b5963afbb5
Fix DSUController socket option error on Linux (#234) 2022-09-11 04:20:40 +02:00
SSimco
9a60979242
Linux: Avoid out-of-bounds raw keycode array access (#226) 2022-09-11 02:00:02 +02:00
capitalists
d4879da95c
Implement analog triggers for DSUController (#239) 2022-09-11 01:32:17 +02:00
Fs00
694b9ec495 Avoid including newlines in localizable string 2022-09-10 18:47:32 +02:00
Fs00
08db65bd5a Remove some dead code 2022-09-10 18:47:32 +02:00
Fs00
13aa0a4fd0 Make controller button names translatable and deduplicate code 2022-09-10 18:47:27 +02:00
Fs00
4c6f22ba39 Simplify a few window names 2022-09-10 13:55:37 +02:00
Exzap
680beaaf21 Rename path _utf8Wrapper to _utf8ToPath for better clarity 2022-09-09 23:49:38 +02:00
Exzap
168ecf8825 FSC: Use utf8 path strings instead of wchar
Also introduced helper function _utf8ToPath() to convert a utf8-encoded string to fs::path
2022-09-09 23:49:38 +02:00
Exzap
1ce629126a FSC: Refactor FileTree and remove redundant path parser class 2022-09-09 23:49:38 +02:00
Exzap
b8462cec8b FSC: Refactor to use FSCPath instead of legacy code 2022-09-09 23:49:38 +02:00
Exzap
0e0602e8d9 FSC: Use utf8 for mounting and internal target path 2022-09-09 23:49:38 +02:00
SSimco
cf598e38c1
Linux: Find case-insensitive file/folder path if not found (#196) 2022-09-09 20:16:46 +02:00
goeiecool9999
045a059742
fix for when file open is successful but the path isn't a file (#220)
FSC and indirectly coreinit relies on FileStream open failing for directories
2022-09-09 16:10:12 +02:00
Exzap
1e851fe7e2
Latte: Fix infinite loop in special state clearAsDepth() (#209)
This broke while refactoring code for the 2.0 release. Resolves Tokyo Mirage Session and Pokken freezing on boot. Probably also affects some other games

Also updated .gitignore
2022-09-08 17:33:31 +02:00
Timothy Redaelli
f032088902
Use _Exit instead of exit under Linux (#204)
The best ExitProcess alternative for Linux is _Exit since it doesn't
call exit handlers.
2022-09-08 17:05:31 +02:00
Tom Lally
6cdb6eed17
Cleanup udiv128 (#206) 2022-09-08 02:12:53 +02:00
bitscher
4eaa600b57
Fix various compiler warnings given by Clang (#170) 2022-09-07 20:04:32 +02:00
bslhq
4d1be950e3
Fix various issues related to title names (#192)
Fixed various issues related to title names:
1. If console language is set to non-English, the title names in Title Manager may be empty.
2. Game list do not show custom names if list style set to icon or small icon.
3. Custom title names for some languages (like JP or CN) appear confusing if re-edited.
4. Unexpected overrides of variable values in ParsedMetaXml.h
2022-09-07 19:58:56 +02:00
Jun Bo Bi
b752d2eddd
fix clang-cl (#202) 2022-09-07 18:22:40 +02:00
Timothy Redaelli
0a1985e481
Set timer milliseconds for "Controller settings" (#194)
This is needed to avoid having the Controller settings window black on Linux
2022-09-07 16:54:48 +02:00
goeiecool9999
e20bfd00ec
Separate filestream.h into OS specific implementation files (#190) 2022-09-07 02:42:25 +02:00
Tom Lally
f8b5024c09
Improved macro clarity. (#188) 2022-09-07 02:27:52 +02:00
Exzap
e5d7d5d173
Use utf8 aware string conversion for wxLaunchDefaultBrowser() (#185) 2022-09-05 18:42:24 +02:00
Exzap
5a69505d13
Fix double %% on shader compilation screen
It was a relic from previously using sprintf where % has to be escaped with %%
2022-09-05 15:53:50 +02:00
Exzap
391334d64e
Use ANSI encoding for cemu.rc (#184)
Clang has issues with utf16 and MSVC does not like utf8. So ANSI it is.
2022-09-05 15:36:06 +02:00
bitscher
917b80941e
Fix broken icon layout when loading Cemu on Gnome (#171)
The icon view was all broken from having entries inserted with non
loaded icons, resulting in a layout that had the wrong size and no
obvious way to trigger a resizing without incurring a costly window
redraw.

Solution: When the icon is not yet loaded insert a transparent
placeholder icon.
2022-09-05 14:51:24 +02:00
SSimco
0ed4fdcd78
Update fmt version to 9.1.0 (#177) 2022-09-05 14:48:44 +02:00
bitscher
f2ec0b4083
Fix the reloading of game cache from settings.xml (#169)
std::is_same_v<decltype(0LL), int64_t> does not evaluate the same on
Linux Clang and MSVC. MSVC returns true but Clang and GCC both returns
false resulting in failing to read the game id from the XML file and
therefore rebuilding the cache.

Solution: Don't rely on the type of 0LL and 0ULL literals but explicitly
provide the type of the field we are trying to read.
2022-09-05 14:42:15 +02:00
Jun Bo Bi
a54a3ec74e
Fix build using clang-cl on windows and improve driver detection (#129) 2022-09-04 23:15:40 +02:00
Exzap
4ed18a65c3
Name output binary Cemu_<CONFIG> and always place it in bin/ (#179) 2022-09-04 22:23:24 +02:00
bslhq
1373c76eb9
fix H264_IsBotW() return false while BotW's TitleRegion is JP (#174) 2022-09-04 18:19:27 +02:00
bitscher
f8297eeb44
Fix game list ordering & Favorite checkbox (#163) 2022-09-04 01:32:32 +02:00
Exzap
33167196d9
Wait for gfx pack init before loading shaders (#168)
2.0 introduced a race condition where the shader cache loading screen could load shaders before the graphic packs finished activating, potentially bypassing custom shaders.
Also removed legacy GraphicPack interface (GraphicPack.cpp/.h) since it was only kept around for Cemuhook and removed u8string variant of cemuLog_force since it's no longer used
2022-09-04 01:27:44 +02:00
Exzap
8dd1688ca7
coreinit: Make OSReport and OSConsoleWrite thread-safe 2022-09-03 23:53:45 +02:00
Francesco Saltori
d22901be1c
Miscellaneous translatable strings improvements and fixes (#159)
* Make PPC threads/texture cache info window columns untranslatable
* Make several window titles translatable
* Make About window text translatable
* Fix <profile name> placeholder not being recognized as translatable
* Miscellaneous improvements to GUI strings
* Add a few missing entries to gitignore
* Adjust Italian translation of Linux files
2022-09-03 22:55:58 +02:00
bitscher
1a1de370e4
Portable way of opening URLs and directories (#156)
Replaced every instance of ShellExecute with wxLaunchDefaultBrowser
2022-09-03 22:32:31 +02:00
Andrea Pappacoda
8c617a39b7
style: use std::enable_if & co instead of boost:: (#153) 2022-09-02 21:06:05 +02:00
Exzap
ef1ce59931
Update graphic pack url query request (#154)
Fixed bad request url and changed URL to separate post 2.0 releases.
Also updated .gitignore
2022-09-02 20:54:22 +02:00
Exzap
4ed38a28b9
Merge pull request #112 from Tachi107/build-minor-fixes
build: minor refactoring and fixes
2022-09-02 19:22:19 +02:00
Tom Lally
f5972dfbb0
Per-function target attribute on clang and GCC. (#152) 2022-09-02 19:10:41 +02:00
Tom Lally
68fa5b32a1
Linux cursor show and hide. (#149) 2022-09-02 15:16:35 +02:00
Andrea Pappacoda
719ee90b27
build: minor refactoring and fixes
- Fix target_precompile_headers() usage; the CemuCommon target exposes
  the src/Common/precompiled.h precompiled header as part of its public
  interface with
  target_precompile_headers(CemuCommon PUBLIC precompiled.h), so all the
  other targets wanting to use the precompiled header have to link to
  the CemuCommon target with
  target_precompile_headers(TargetName PRIVATE CemuCommon).
- Set the project version to 2.0
- Set RUNTIME_OUTPUT_DIRECTORY instead of only their _DEBUG and _RELEASE
  variants, fixing the compilation when neither build types are defined
- Use a consistent indentation style (tabs, like in the .cpp files)
- Use "modern" variants of some functions, e.g. add_definitions ->
  add_compile_definitions
2022-09-02 13:05:15 +02:00
bitscher
b1e92f1779
Fix more UI asserts (#146) 2022-09-02 11:01:17 +02:00
Crementif
86e1a2227c
nn_act: Fix account endianness (#141)
Also adds some code for enabling multi-user support inside apps maybe, but it's probably hardcoded in more places since Cemu currently only shows the active account.
2022-09-02 09:46:19 +02:00
bitscher
a3b1af4e3d
Add SIGINT handler on posix systems (#145) 2022-09-02 09:32:33 +02:00
Exzap
b1844a8753
Fix online for NA console logins (#147)
This is just a quick fix. In the future we can look into avoiding hardcoded firmware version numbers. On the console it gets read from some system file
2022-09-02 09:14:55 +02:00
Tom Lally
d3a7b3b5a6
Misc. Linux improvements and bug fixes. (#121)
Co-authored-by: Tom Lally <tomlally@protonmail.com>
2022-09-01 20:46:20 +02:00
bitscher
b8d4cf5b29
Fix asserts in TitleManager and DownloadManager (#134) 2022-09-01 18:24:07 +02:00
Exzap
d8da8a54a6
Infrastructure for shipping and auto-updating experimental releases (#131) 2022-08-31 12:04:09 +02:00
Exzap
e147c1b4a6
cmake workaround for CemuAsm failing to link on msbuild 2022-08-31 10:41:24 +02:00
Marcin Chojnacki
527ee3aea5
Initial implementation of macOS Vulkan renderer over MoltenVK (#124) 2022-08-30 19:02:56 +02:00
Marcin Chojnacki
15b71c57dd
Correct wxMenu ID to resolve macOS crash (#125) 2022-08-30 17:55:34 +02:00
niko1point0
584938d8f3
Renable Nvidia Multithreaded Pipeline compile after driver 515 (#91) 2022-08-30 15:58:43 +02:00
Krystian Booker
60074c440d
Bug #620 Fixed crash when no audio devices are present (#118) 2022-08-30 14:10:05 +02:00
bitscher
2d42c885da
Fix various compiler warnings and update OpenSSL hash functions (#119)
* Update OpenSSL hash functions to OpenSSL 3.0
* Fix invalid sscanf format in DownloadManager
* Fix unset return value warning
* Fix erroneous check on otpMem in iosu_crypto
2022-08-30 09:27:25 +02:00
Tom Lally
c065d22dda
Removed THREAD_LOCAL macro. (#101) 2022-08-30 06:10:33 +02:00
Andrea Pappacoda
f51a51df3b
build: improve the Linux aspect of things (#75)
Improved, fixed and streamlined cmake files. Optionally use system libraries instead of vcpkg (-DENABLE_VCPKG=OFF)
2022-08-29 07:19:48 +02:00
Crementif
0f24b0663e
Initialize glslang struct using consteval
Doesn't seem like there's a way to bypass the need for default values in their API, and since their versions doesn't seem to be reliable enough to know whether maxDualSourceDrawBuffersEXT exists. This way it's default initialized to 0 which is fine for Cemu.
2022-08-28 19:23:24 +02:00
Tom Lally
454b587e36
Fix compilation on GCC and other Linux fixes (#80) 2022-08-28 15:29:15 +02:00
IntriguingTiles
07ce5b0aa6
nn_act: Fix errors in Mii name (#95)
nn_act: Don't swap the Mii name again
Account: Zero out miiName before copying in data
2022-08-28 11:32:10 +02:00
ArtemisX64
01c58555f3
Fixes Path Issues (#70)
* Fix bad path
2022-08-27 09:57:30 +02:00
Arne Morten Kvarving
8459cd928c
fix some printf format specifiers (#76)
use the definition in cinttypes for portability
2022-08-27 09:33:01 +02:00
gurrgur
5cba1a1185
gui: keep shown graphic pack when clicking on preset dropdown (#77) 2022-08-27 05:33:30 +02:00
Crementif
ca78b92718
Remove cemuhook and fix exports (#73) 2022-08-26 19:41:42 +02:00
tastymeatball
e524a6c16d
Add Rudimentray Proxy Support (#68)
* Add Rudimentray Proxy Support to NAPI
2022-08-26 17:04:46 +02:00
ArtemisX64
1cb2d4e5ee
Proper fix for static asserts (#64)
Replace std::uniform_int_distribution with boost::random::uniform_int_distribution
2022-08-26 14:28:50 +02:00
Andrea Pappacoda
19a0a3a359
perf: optimize GenerateRandomString() (#66)
The previous implementation used an std::stringstream to concatenate
the generated random string.

The new one uses a simple preallocated std::string, as the size of the
output is already known - it is the length parameter.

It also uses std::generate_n() instead of an explicit loop, making the
code more concise and potentially faster, as no calls to
std::string::operator+= are needed.

Calling GenerateRandomString(1'000'000) with the std::stringstream-based
implementation allocated 16 times, for a total of 3'173'516 bytes.
The new one cuts this down to 4 allocs, for a total of 1'076'864 bytes.
2022-08-26 12:53:42 +02:00
Alexey Varfolomeev
ebcff2e319
fix unix path on IOSU/PDM (#60)
With PR #52 this path was missed
2022-08-26 06:21:07 +02:00
Marcin Chojnacki
974edaa649
Initial macOS port bringup (#52) 2022-08-26 04:03:26 +02:00
Exzap
a2abffd37b coreinit: Manual endian-swap is not required for MEMPTR 2022-08-25 16:59:54 +02:00
Marco Rubin
1d3f62a09c
Fix ImGui::Text() format strings (#41)
* Fix format string
2022-08-25 12:15:02 +02:00
ArtemisX64
3d6d9341f6
Update precompiled.h 2022-08-25 16:46:34 +09:00
ArtemisX64
8b7738f0ab Replace Vulkan-SDK with Vulkan Headers 2022-08-25 13:31:32 +09:00
Exzap
d60742f52b Add all the files 2022-08-22 22:21:23 +02:00