Commit Graph

7679 Commits

Author SHA1 Message Date
Stenzek c03b6f3d84
Misc: Replace isspace() usage with StringUtil::IsWhitespace()
Avoids the UB if the character is negative (e.g. reading from a binary
file), as well as locale-specific rubbish.
2025-01-19 21:29:14 +10:00
Stenzek 21b167d382
CDImage: Tidy up Open() method 2025-01-19 21:29:14 +10:00
Stenzek 7905793ae0
GPU: Use screen alignment for overlay instead of display rect 2025-01-19 21:13:16 +10:00
Stenzek 8c5c0e6114
Common: Fix Vector2->Vector4 zero-extend constructor
And add loadl(const GSVector2i&) as an easier-to-read overload.
2025-01-19 21:13:16 +10:00
Stenzek ade8bf7b3b
GPU: Fix overlay+postprocessing combination 2025-01-19 21:13:16 +10:00
Stenzek 9fdeeb3fb6
GPU: Add alpha blending support to overlay 2025-01-19 16:37:51 +10:00
Stenzek 9b8d2a88de
System: Required changes for Android 2025-01-19 15:31:58 +10:00
Stenzek e1cbb50c64
GPU: Fix various capture/screenshot issues
- Simplify functions for rendering display.

- Post-processing should only when the target size matches the window.
  Otherwise the shaders are constantly recompiled.

- Include border overlay in capture/screenshots when above condition
  is satisfied.

- Relax video alignment size when using screen resolution + auto.

- Fix "Internal Resolution (Uncorrected)" capture mode.
2025-01-19 13:42:38 +10:00
Stenzek 725dcea05a
GPU: Fix crash toggling border overlays 2025-01-19 12:25:19 +10:00
Stenzek 6131ddbefe
GPU: Fill in unused/padded area in overlays 2025-01-18 22:59:49 +10:00
Stenzek 88b43370dc
GPUDevice: Replace explicit GL_PUSH/GL_POP with nested GL_SCOPE 2025-01-18 22:59:49 +10:00
Stenzek d62261e7a4
GPUDevice: Allow nested GL_SCOPE macros 2025-01-18 22:59:49 +10:00
Stenzek e0a9bbe600
PostProcessing: Move into GPU presenter
Means that the renderer can be changed without reloading shaders,
and speeds up config change detection.
2025-01-18 22:59:48 +10:00
Stenzek d589696eff
PostProcessing: Get rid of GPU-dependent globals 2025-01-18 22:59:48 +10:00
Stenzek 338d29d271
GPUDevice: Move empty/null texture to base class 2025-01-18 22:59:48 +10:00
Stenzek 609fa5c7d7
GPUDevice: Add sampler cache to base class
Removes per-backend bookkeeping in D3D12 and Vulkan.
2025-01-18 22:59:48 +10:00
Stenzek da13579356
GPU: Align presenter/backends to cache line 2025-01-18 22:59:48 +10:00
Stenzek dd9788262e
GPU: Refactor display presentation workflow
Adds the ability to set overlays, and fixes postfx with prerotation.
2025-01-18 22:59:48 +10:00
Stenzek 6cba825bac
System: Add fatal error shutdown path
Switch to a null backend and shut down the system instead of crashing.
2025-01-18 22:59:48 +10:00
Stenzek d52bf795e4
GPU: Split backend into Backend+Presenter 2025-01-18 22:59:48 +10:00
Stenzek 8f19ac2dee
System: Set rapidyaml error handlers on startup
That way it can be used in multiple places.
2025-01-18 22:59:48 +10:00
Stenzek 08d2586a86
System: Allow host to set async worker count
For regtest.
2025-01-18 22:59:48 +10:00
Stenzek e41f179108
PostProcessing: Fix erroneous reload message 2025-01-18 22:59:48 +10:00
Stenzek 1481c1d231
System: Post-processing is shut down on GPU thread 2025-01-18 22:59:48 +10:00
Stenzek b9822602b2
FullscreenUI: Show game icons in game list 2025-01-18 22:59:48 +10:00
Stenzek f98b904c50
FullscreenUI: Add 'Set Cover Image' to game list 2025-01-18 22:59:48 +10:00
Stenzek 7cc47551a4
FullscreenUI: Fix parent scroll resetting on directory change 2025-01-18 22:59:48 +10:00
Stenzek e34d23c8e7
FullscreenUI: Implicitly close non-multichoice dialogs
Also fixes disc swap using a multichoice instead of single.
2025-01-18 22:59:47 +10:00
Stenzek a7ab53f02c
GPU: Fix GLSL ES compile error with weave deinterlacing 2025-01-18 22:59:47 +10:00
Stenzek 43e7be902c
Misc: Add missing error reporting to a couple of WriteBinaryFiles() 2025-01-18 22:59:47 +10:00
Stenzek 227c249d7f
FullscreenUI: Skip SVG prefix if image is not a SVG 2025-01-18 22:59:47 +10:00
Stenzek c34dda39b7
FullscreenUI: Fix invalidating images with size hints 2025-01-18 22:59:11 +10:00
Stenzek e8a4296fd6
FullscreenUI: Add missing settings lock acquire 2025-01-18 22:59:10 +10:00
Stenzek e94973cd28
FullscreenUI: Fix disc swap running on GPU thread 2025-01-18 13:48:05 +10:00
Stenzek d054d76a76
FileSystem: Add Error to CopyFilePath() 2025-01-18 13:48:05 +10:00
Stenzek fbb63a81a8
FullscreenUI: Change default background and add Strobe 2025-01-17 16:05:24 +10:00
Stenzek 7deaaa8b26
FullscreenUI: Use ImGui dialogs for boot failure 2025-01-17 14:30:22 +10:00
Stenzek e554456a00
System: Fix blank display on pause-on-start 2025-01-17 14:20:37 +10:00
Stenzek 3be4f1983d
GPU: Fix playback of VRAM updates during draws 2025-01-17 13:22:40 +10:00
Stenzek bf7ca1951e
Qt: Fix game list search box oversizing 2025-01-17 12:56:06 +10:00
Anderson Cardoso 2957f55450
Atualização Português do Brasil (#3356)
Atualizado para a última versão
2025-01-17 13:56:32 +10:00
Stenzek 092b2803c5
GPU/HW: Flipping the mask bit test should flush 2025-01-16 23:50:40 +10:00
Stenzek cd8a160d8d
GPU/HW: Clear alpha channel in opaque replacements
This is the value for bit15 in the framebuffer. Silent Hill
needs it to be zero, I'm not aware of anything that needs
specific values yet. If it did, we'd need a different dumping
technique.
2025-01-16 23:25:24 +10:00
Stenzek add76c267a
Achievements: Fix request spam downloading own badge icon 2025-01-16 22:13:02 +10:00
Stenzek c4a7456689
GPU/SW: Use no_unique_address for potentially-unused varyings 2025-01-16 22:13:02 +10:00
Stenzek 804b8ff777
CDROM: Remove redundant min() 2025-01-16 21:45:34 +10:00
Stenzek 10de915ae0
System: Remove 'sync_to_host_with_vsync'
Disabling the throttler with threaded rendering just leads to the CPU
thread pushing multiple frames, and getting backpressured from the GPU
thread. In other words, input lag.
2025-01-16 21:45:30 +10:00
Stenzek 074a8a2653
GPUThread: Fix input OSD with threaded rendering off 2025-01-16 21:38:45 +10:00
Stenzek f6f709bcc5
System: Fix vsync preventing fast forward/turbo 2025-01-16 21:14:21 +10:00
Stenzek 0507054675
Common: Add vector rsize() 2025-01-16 21:01:30 +10:00
Stenzek 93771981a6
FullscreenUI: Add sort alphabetically option to cheat page 2025-01-16 13:47:09 +10:00
Stenzek 79245b6cd6
FullscreenUI: Make footer text background semitransparent 2025-01-16 01:14:22 +10:00
Stenzek 57f3fee28c
Common: Further optimize alltrue()/allfalse() on ARM 2025-01-16 00:43:33 +10:00
Stenzek 0189e1ef81
Common: Fix vector allfalse() on ARM32 2025-01-15 23:53:48 +10:00
Stenzek 45b500bc2c
GPU/HW: Fix draw call count spiking in some scenarios 2025-01-15 22:50:29 +10:00
Stenzek 3687697d0e
CPU/CodeCache: Only reset used portion of buffer
Saves writing 48MB every reset.
2025-01-15 21:02:56 +10:00
Stenzek 1952869cdc
Cheats: Author field should be exported 2025-01-15 21:02:56 +10:00
Daniel Nylander 68d9971171
Updated Swedish translation (#3355) 2025-01-15 21:02:40 +10:00
Stenzek 050bda8cd2
FullscreenUI: Fix scroll reset on resume state popup 2025-01-14 21:07:00 +10:00
Stenzek 135d99ac17
FullscreenUI: Fix incorrect help text 2025-01-14 21:07:00 +10:00
Stenzek 7973a91438
FullscreenUI: Make menu item backgrounds slightly transparent
Blends with background.
2025-01-14 21:07:00 +10:00
Stenzek 2e95667ec2
Qt: Fix returning to desktop mode from Big Picture 2025-01-14 20:51:13 +10:00
Stenzek bbb1befa43
RegTest: Build fix 2025-01-14 20:51:13 +10:00
Stenzek 2fd89403f8
FullscreenUI: Name landing icon files after action 2025-01-14 19:05:18 +10:00
Stenzek 3130e16438
FullscreenUI: Add user-selectable backgrounds 2025-01-14 18:59:42 +10:00
Stenzek ccb2b61444
FullscreenUI: Fix incorrect back button 2025-01-14 16:33:24 +10:00
Stenzek 1aa1b5a7ec
Qt: Make main toolbar editable 2025-01-14 16:33:24 +10:00
Anderson Cardoso 6a6d36267d
Atualização Português do Brasil (#3354)
Atualizado para a última versão.
2025-01-14 13:53:37 +10:00
Stenzek 880c76da24
Qt: Fix columns being hidden after editing cheats 2025-01-14 13:53:09 +10:00
Stenzek 3a13806f73
Hotkeys: Fix Toggle OSD hotkey 2025-01-14 13:49:49 +10:00
Stenzek 88e18a8659
Image: Fix crash on loading corrupted JPEG file 2025-01-14 13:29:14 +10:00
Stenzek da1590ed5f
Qt: Fix cheats sort button tooltip 2025-01-13 23:49:59 +10:00
Stenzek 6db1dbbe02
GameList: Don't return nonexistant path on icon extract fail 2025-01-13 23:49:09 +10:00
Stenzek 33c0674a9f
Qt: Remove unused struct 2025-01-13 23:18:52 +10:00
Stenzek 991405ce06
Qt: Add search and sorting to cheat list 2025-01-13 22:45:59 +10:00
Stenzek 0dc257abe4
System: Set time constraints for GPU thread on MacOS
Fixes erratic frame times.
2025-01-13 19:51:35 +10:00
Stenzek d3854d095e
AnalogController: Use variant vibration icon for large motor 2025-01-13 19:49:56 +10:00
Stenzek f6c7681ef0
ImGuiOverlays: Double buffer input OSD and add vibration 2025-01-13 16:49:31 +10:00
Stenzek dd7fd32501
Controller: Add GetVibrationMotorState() 2025-01-13 16:49:14 +10:00
Stenzek aaf2a4b614
InputManager: Adjust scope of constants 2025-01-13 16:35:40 +10:00
Stenzek 3476140ba2
GPUThread: Add BeginASyncBufferCall() 2025-01-13 16:08:20 +10:00
Stenzek 462a4a3b50
Controller: Refactor so that GetControllerInfo() can't return null 2025-01-13 16:07:43 +10:00
Stenzek 062776c1c7
ImGuiManager: Map left stick to dpad 2025-01-13 14:28:39 +10:00
Stenzek c45e59fe22
SDLInputSource: Arrays to std::array and forward generic axis 2025-01-13 14:28:28 +10:00
Stenzek 21aef088ed
XInputSource: Arrays to std::array and forward generic axis 2025-01-13 14:25:51 +10:00
Stenzek 9d3c56fe6c
ImGuiManager: Fix data races in input forwarding 2025-01-13 13:52:07 +10:00
Stenzek 17e8930e94
ImGuiManager: Pack state based on thread access 2025-01-13 13:33:15 +10:00
Stenzek 3621705933
Achievements: Ensure loading old states behave the same as new 2025-01-13 13:13:15 +10:00
Stenzek 8f39dbb464
Achievements: Fix race condition invalidating images 2025-01-13 13:03:41 +10:00
Stenzek 2f854de9d0
Qt: Invalidate FSUI cover cache when cover changed 2025-01-13 12:54:18 +10:00
Stenzek 738c96ffb3
FullscreenUI: Fix slot disappearing after delete in save state menu 2025-01-13 12:44:11 +10:00
Stenzek ea82dacb0e
FullscreenUI: Fix a couple of GPU thread race conditions
State saving/loading, memory card state read on shutdown.
2025-01-13 12:44:06 +10:00
Stenzek a422e06628
Qt: Fix incorrect InitialSortOrderRole use 2025-01-12 21:44:05 +10:00
Stenzek d3ee12d358
Achievements: Login error notification should be translatable 2025-01-12 19:16:22 +10:00
Stenzek 19ee37cd10
FullscreenUI: Render notifications on top of OSD 2025-01-12 19:14:59 +10:00
Stenzek 035762af94
System: Fix subimage change OSD message 2025-01-12 19:03:53 +10:00
Stenzek be7cff5964
CDROM: Fix loading of subimage SBI files 2025-01-12 19:03:48 +10:00
Stenzek e4dea69713
System: Drop state load OSD duration to quick 2025-01-12 17:50:33 +10:00
Stenzek e43d7046ba
Achievements: Attempt relogin on system boot
And display an error notification if login fails, instead of
invalidating the token.
2025-01-12 17:50:33 +10:00
Stenzek 0f76543685
Achivements: Set rc_client log level from host log level 2025-01-12 16:54:58 +10:00
Stenzek ce0689687c
Qt: Fix editing first controller preset 2025-01-12 02:09:55 +10:00
Stenzek c43533f8d8
FullscreenUI: Extend achievement overlays to screen margins
Fixes overlays getting caught in rounded corners on Android.
2025-01-12 01:02:58 +10:00
Stenzek ab790ed54b
Common: Fix ARM32 build (again) 2025-01-12 00:25:48 +10:00
Stenzek ee1da343ab
GPU/HW: Use default initialization for BatchConfig
Reduce the risk of below...
2025-01-12 00:03:45 +10:00
Stenzek 9779cee934
GPU/HW: Ensure texture window bits are initialized
Fixes broken rendering after loading state or switching renderer in some
games, e.g. GTA2.
2025-01-12 00:03:18 +10:00
Stenzek 9c35b0e76d
FullscreenUI: Get rid of Timer global 2025-01-11 23:32:21 +10:00
Stenzek 36590f3c71
InputManager: Fix crash on controller connect on Windows 2025-01-11 23:29:55 +10:00
Stenzek 6785285f31
Qt: Fix game list toolbar/view menu desync 2025-01-11 23:29:40 +10:00
Stenzek 54780d4fbf
Qt: Fix fullscreen state stuck after exit 2025-01-11 21:37:39 +10:00
Stenzek 348e33562e
Qt: Fix BP start/stop menu item after first activation 2025-01-11 21:34:20 +10:00
Stenzek 234e1f721f
FullscreenUI: Improve controller settings page
- Add 'Clear Bindings' menu item.
- Show icons in controller types.
- Add confirmation to Reset Settings.
2025-01-11 21:29:04 +10:00
Stenzek d6ce322eba
Controller: Use additional icons 2025-01-11 20:51:16 +10:00
Stenzek e6c0725656
InputManager: Hold lock while manipulating devices/sources
Since we're enumerating on the GPU thread now, need to protect it.
2025-01-11 20:28:00 +10:00
Stenzek d3bee3ce67
Qt: Rename 'Input Profile' to 'Controller Preset'
Hopefully more noob-proof?
2025-01-11 20:25:12 +10:00
Stenzek e4c11aa905
Qt: Separate controller settings to global and profiles 2025-01-11 20:25:11 +10:00
Stenzek 2d63b34d48
Qt: Add icons/decorations to input devices 2025-01-11 20:25:11 +10:00
Stenzek 2298227054
FullscreenUI: Add binding of vibration motors 2025-01-11 20:25:11 +10:00
Stenzek 6f9caa6b12
InputManager: Add proper binds for vibration motors
Instead of the janky "vibration capabilities" flag.

Fixes the "Clear Mappings" button not applying to vibration motors.
2025-01-11 20:25:11 +10:00
Stenzek 13b85728a0
Qt: Refactor input device/motor tracking
Remove multiple sources of truth.
2025-01-11 20:25:11 +10:00
Stenzek 844287b722
FullscreenUI: Fix scrollbar on choice dialog at some screen sizes
e.g. game list right click
2025-01-11 20:25:11 +10:00
Stenzek 4b0bb9f70d
FullscreenUI: Increase input dialog padding
Way too small.
2025-01-11 20:13:53 +10:00
Stenzek 4af5e96ff6
Controller: Remove analog-mode-start OSD message
It's arguably not very useful, and the sticks are mapped to the
dpad in digital mode anyway.
2025-01-11 15:15:01 +10:00
Stenzek 440aaf2644
FullscreenUI: Modernize achievement popup a bit 2025-01-11 15:07:17 +10:00
Stenzek 05b0b03fd6
Cheats: Order special characters before alpha characters 2025-01-11 12:51:33 +10:00
Stenzek 93a7e7cef5
Cheats: Add bounds check to 5107/5147 2025-01-11 12:40:46 +10:00
Anderson Cardoso c98dbb9d9e
Atualização Português do Brasil (#3353)
Atualizado para a última versão.
2025-01-11 12:37:16 +10:00
PugsyMAME a26cac18e9
Cheats: Added register cheat types 5107 & 5147 (#3352)
This is new cheat type uses the general purpose cheat registers in a relative easy method to allow arrays of arrays cheats to be quickly created and will also cut down massively on cheats. For instance this method allows the following 15 cheats for Vandal Hearts II which would otherwise need 18886 separate cheats to replicate:

#Technique Slot Modifier\[MASTER] Select Slot Number for following cheats to act on (1 - 1349)
518500F1 001CF3C3
514500F2 0000000F
514500F3 0000????
514500F4 0000D0D0
OptionRange = 1:1349
#Technique Slot Modifier\Select Weapon
510700F1 000000??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 1 Learned
510700F1 00020001
#Technique Slot Modifier\Select Technique 1
510700F1 000300??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 2 Learned
510700F1 00040001
#Technique Slot Modifier\Select Technique 2
510700F1 000500??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 3 Learned
510700F1 00060001
#Technique Slot Modifier\Select Technique 3
510700F1 000700??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 4 Learned
510700F1 00080001
#Technique Slot Modifier\Select Technique 4
510700F1 000900??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 5 Learned
510700F1 000A0001
#Technique Slot Modifier\Select Technique 5
510700F1 000B00??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 6 Learned
510700F1 000C0001
#Technique Slot Modifier\Select Technique 6
510700F1 000D00??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\100% (Max) Technique Learned
510700F1 000E0064
2025-01-11 12:37:03 +10:00
Stenzek ee33044f3d
InputManager: Fix SDL sub-options not copying to profile 2025-01-10 20:42:17 +10:00
Stenzek 7ac4a85765
InputManager: Fix per-bind sensitivity/deadzone not copying to profile 2025-01-10 20:14:21 +10:00
Stenzek ccfc60ec94
GPU/HW: Remove extra barrier on VRAM download
Seems to work around download texture corruption on AMD/Vulkan/Windows.
2025-01-10 20:06:56 +10:00
Stenzek 18c90718c6
GPU/SW: Skip pixel load if none preserved
~12% performance improvement on Cortex-A35.
2025-01-10 18:46:05 +10:00
Stenzek 1320d9b456
Common: Use __builtin_shufflevector() for NEON blend() 2025-01-10 17:12:45 +10:00
Stenzek 29934d62c4
System: Improve rewind behaviour
- Fix crash when rewinding before first state is saved.
- Always save a rewind state immediately after normal save state load.
- Don't toss the last rewind state when rewinding, that way there is
  always at least one state to rewind to.
2025-01-09 23:46:06 +10:00
Stenzek d25cffebd5
GPU/HW: Disable depth testing with semitransparency
But provide an option to enable it.
2025-01-09 21:45:14 +10:00
Stenzek d9c9b3038d
GPU/HW: Fix ROV depth being written with semitransparency 2025-01-09 21:21:12 +10:00
Stenzek 7d2898b94c
GPU/HW: Exclude 2D polygons from depth buffer
Fixes UI getting obscured in Kingsley's Adventure.
2025-01-09 21:21:12 +10:00
Stenzek 1c9b9ca37a
GPUThread: Restore context after backend creation
Might help with random VRAM loss? I can't seem to reproduce it now..
2025-01-09 21:21:12 +10:00
Stenzek 40589dcd93
Settings: Add advanced option to set delay for max CD speedup
Affects both seeks and reads.
2025-01-09 21:21:12 +10:00
Stenzek 4449ae7904
Settings: Rearrange fields to avoid padding 2025-01-09 21:21:12 +10:00
Stenzek 9b339d4bff
PostProcessing: Remove StageCount key for game settings
Potentially removes the ini file if it's otherwise empty.
2025-01-09 21:21:12 +10:00
Stenzek 2b4e60a5bf
FullscreenUI: Fix loading screen font 2025-01-09 21:21:12 +10:00
Stenzek bed3dd6950
FullscreenUI: Use span for DrawIntListSetting() 2025-01-09 17:54:12 +10:00
Stenzek b76ebd2a7b
FullscreenUI: Fix scrollbar rounding in choice dialogs 2025-01-09 17:53:52 +10:00
Stenzek 561397a53c
CDROM: Add 'maximum' read speedup option
"Instant" seek is now renamed to Maximum as well, for consistency.
2025-01-09 15:23:47 +10:00
Anderson Cardoso 0ad0859e9d
Atualização Português do Brasil (#3351)
Atualizado para a última versão
2025-01-09 15:23:25 +10:00
Stenzek fc8fbd8f08
Qt: Disable shared memcard settings outside of shared mode 2025-01-08 16:36:05 +10:00
Stenzek 08a3c31bff
CMake: Fix scmversion PRE_BUILD warning 2025-01-08 15:34:21 +10:00
Stenzek 87743c776d
FullscreenUI: Fix crash reloading postfx shaders 2025-01-08 15:29:56 +10:00
Stenzek 45afc8f7b1
OpenGLDevice: Add map-based stream buffer paths
MapAndSync ends up around 25% faster on ancient Mali drivers without
ARB_buffer_storage support.
2025-01-08 14:14:06 +10:00
Stenzek 1daa60c64d
GPU: Use tristrips for presentation as well 2025-01-08 00:14:15 +10:00
Stenzek 670dc461c1
GPU/HW: Slight re-shuffling of field offsets
Free up some bits in the middle.
2025-01-07 23:20:26 +10:00
Stenzek 0030bc2699
GPUDevice: Ensure 16 byte minimum UBO alignment 2025-01-07 23:20:25 +10:00
Stenzek 4c801c3ff3
GPUDevice: Move size-matches check into ResizeTexture() 2025-01-07 23:20:25 +10:00
Stenzek b9186139d0
GPU/HW: Use sized tristrips instead of fullscreen quads 2025-01-07 23:20:25 +10:00
Stenzek 9bc5ffe091
Common: Add Vector4i xyxy(Vector2i) 2025-01-07 23:20:25 +10:00
Stenzek 1063c3da7f
Qt: Add 'Enable Touchpad' to Controller Settings
Have to shuffle a few other things around to fit in 768p.
2025-01-07 13:42:45 +10:00
Stenzek 0a124ee839
SDLInputSource: Support forwarding touchpad to pointer 2025-01-07 13:40:42 +10:00
Stenzek 2b7b3d8729
SDLInputSource: Allow inverting pad axes
Not really sure where this would happen, but whatever.
2025-01-07 13:01:37 +10:00
Stenzek dacbb7c718
Qt: Behaviour -> Behavior
US English is used everywhere else, consistency > *.
2025-01-07 12:50:48 +10:00
Stenzek 6318223f58
Qt: Remove Apperance/Update settings from Game Properties 2025-01-07 12:48:27 +10:00
Stenzek 092e819a07
ImGuiFullscreen: Move texture loading to async tasks
Two threads instead of one, speeds things up a bit.
2025-01-07 12:40:08 +10:00
Stenzek cae1ddc971
GPU: Ensure batches are flushed before presenting frame
Fixes occasional assertion failing when using the debugger.
2025-01-07 12:28:15 +10:00
Stenzek dc9cdddd4c
Qt: Add zst/xz GPU dumps to file filter 2025-01-06 21:18:13 +10:00
Stenzek 0960160589
System: Don't check for subchannel with GPU dump 2025-01-06 21:17:27 +10:00
Stenzek 1765590a6f
Qt: Add 'Disable Window Rounded Corners' option 2025-01-05 16:39:57 +10:00
Stenzek 5ee069fc63
FullscreenUI: Add option to display PS buttons instead of Xbox 2025-01-05 16:00:15 +10:00
Stenzek 4d6124d41b
Platform: Fix AppImage dbus library mismatch 2025-01-05 14:08:22 +10:00
Stenzek 6043b2331f
Platform: Fix incorrect dbus shared library name
Fixes screensaver inhibit on Linux.
2025-01-04 21:14:46 +10:00
Stenzek 886040b257
Qt: Display 'No Image' instead of 0x0 in status 2025-01-04 19:21:47 +10:00
Stenzek 8353a33e89
X11Tools: Fix refresh rate query failing with XLib handle 2025-01-04 18:35:15 +10:00
Stenzek 076f4a6293
Qt: Fix delay in progress dialog opening
Applies to updater, verify, etc.
2025-01-04 16:59:33 +10:00
Stenzek 920f25427e
Qt: Simplify Fullscreen UI state tracking
Fixes application closing if the system was shut down while fullscreen.
2025-01-04 16:09:35 +10:00
Stenzek 78ccbc710c
Cheats: Fix error while exporting 2025-01-04 12:52:26 +10:00
Anderson Cardoso 548f1da5af
Atualização Português do Brasil (#3350) 2025-01-04 12:51:08 +10:00
Stenzek 9054801341
ImGuiManager: Update viewport and display size
Fixes the single frame of incorrect draw size when resizing
the window with the Big Picture UI.
2025-01-03 20:16:38 +10:00
Stenzek 80855090d5
Qt: Rewrite cover loading/generation
This was always wrong, QPixmaps shouldn't be manipulated outside of
the UI thread, and it used to crash in debug builds.

Also uses a placeholder image instead of a black image while covers
are loading/generating.
2025-01-03 20:16:38 +10:00
Stenzek db14824d61
System: Use task queue for saving states/screenshots/gpudumps
System shutdown no longer needs to block. Gets rid of the slight
hitch when shutting down and saving state with the Big Picture UI.
2025-01-03 20:16:38 +10:00
Stenzek 547601559c
Common: Add TaskQueue class 2025-01-03 20:16:37 +10:00
Stenzek 52e6e8ff1e
PostProcessing: Compile warning fix 2025-01-03 18:19:12 +10:00
Stenzek f9bb413a40
Qt: Enable clear button on hotkey search 2025-01-03 15:28:43 +10:00
Stenzek dda10d3576
Qt: Add search box to hotkey settings 2025-01-03 14:58:50 +10:00
Stenzek b2c8d25638
GPUBackend: Only display CPU thread blocked messages if queueing 2025-01-03 14:49:53 +10:00
Stenzek 88cd086633
Cheats: Eliminate extra newlines during code editing 2025-01-03 13:36:58 +10:00
Daniel Nylander e096827df8
Updated Swedish translation (#3349) 2025-01-03 13:36:40 +10:00
Stenzek e08dda0a0a
CPU: Declare state with constinit 2025-01-02 21:42:41 +10:00
Stenzek 87e367076d
PostProcessing: Get rid of Timer global 2025-01-02 21:40:01 +10:00
Stenzek ba15a76d7b
ImGuiManager: Pack state in struct 2025-01-02 21:33:53 +10:00
Stenzek d3fe1dfc2c
ImGuiManager: Separate debug and OSD fonts
Don't need to rasterize the former if it's not used, and saves blowing
up the debug window font size if the OSD scale is not 100%.
2025-01-02 21:25:25 +10:00
Stenzek fc5553a8c7
GTE: Improve reverse transform freecam
Transform the move direction, that way it behaves more FPS-camera like.
2025-01-02 20:56:22 +10:00
Stenzek 90cb266886
Common: Small tidy-up and constexpr-ify GSMatrix4x4 2025-01-02 20:52:19 +10:00
Stenzek 83b4757788
Qt: Controller Test should be disabled while running 2025-01-02 02:11:50 +10:00
Stenzek 08cd649187
InputManager: Fix pointer-bound bind movement
i.e. psmouse

Regression from c4e0e7fade
2025-01-02 02:10:31 +10:00
Stenzek cd873eb6c1
GTE: Add 'Reverse Transform Order' option to freecam 2025-01-02 02:09:02 +10:00
Stenzek 3a64c5e4b3
FullscreenUI: Improve field alignment in achievements login 2025-01-02 01:07:18 +10:00
Stenzek b21312867b
FullscreenUI: Fix popup sizes for postfx settings 2025-01-02 01:07:11 +10:00
Stenzek 179e2f1999
FullscrenUI: Fix field spacing scaling in game list view 2025-01-02 00:52:40 +10:00
Stenzek 0fdf984b71
GTE: Disable freecam on Android
Freecam is disabled on Android because there's no windowed UI for it.
And because users can't be trusted to not crash games and complain.
2025-01-02 00:38:29 +10:00
Stenzek e036318559
Qt: Add 'Controller Test' to tools menu 2025-01-02 00:31:15 +10:00
Stenzek c11468b9f1
Qt: Drop log messages if rate is too high
Prevents the application locking up and memory usage going bananas
if log messages do end up spammed at crazy rates.
2025-01-02 00:14:11 +10:00
Stenzek 37e5e64ddc
System: Move state display updates to call sites
Fixes black frames when changing settings with runahead/rewind enabled.
2025-01-01 23:05:08 +10:00
Stenzek f3b7686457
System: Fix crash with memory save states + renderer switch 2025-01-01 22:55:31 +10:00
Stenzek 5ac5a1d246
Hotkeys: Fix resolution scale with memory save states 2025-01-01 22:02:55 +10:00
Stenzek 1d63648d68
Qt: Forward text input to aux render windows
Fixes text input in freecam window.
2025-01-01 22:02:55 +10:00
Stenzek dcd439e7d8
GTE: Add 'Free Camera' feature 2025-01-01 22:02:55 +10:00
Stenzek 22202f1607
Common: Fix vector blend32() and dot() on SSE2 2025-01-01 22:02:55 +10:00
Stenzek d0e1efb1fd
Common: Add more GSMatrix ops 2025-01-01 21:28:16 +10:00
Stenzek f51dda3e66
GPUDevice: Allow this-frame pooled textures when not uploading data
It won't break the render pass.
2025-01-01 19:38:48 +10:00
Stenzek a08acdb93a
System: Improve texture recycling when changing rewind/runahead settings
Fix suprious failures when changing rewind settings when low on VRAM.
2025-01-01 19:33:01 +10:00
Stenzek 57be62ffd1
FullscreenUI: Remove a couple of untranslated titles 2025-01-01 14:28:05 +10:00
Stenzek 884459d1cf
FullscreenUI: Fade alpha change when switching to postfx settings 2025-01-01 14:25:56 +10:00
Stenzek ffef0c2e38
CPU/CodeCache: Don't compile invalid jumps via block links 2025-01-01 14:10:55 +10:00
Stenzek d69d25431e
VulkanDevice: Hopefully fix init under Vulkan 1.0 drivers 2024-12-31 23:43:38 +10:00
Stenzek f25302c847
CPU/Recompiler: Actually use fetch ticks for uncached EXP1 2024-12-31 17:29:40 +10:00
Stenzek 34f2600f99
CPU/Recompiler: Fix ICache update codegen on RISCV64 2024-12-31 16:12:19 +10:00
Stenzek 4c08c716c4
CPU/Recompiler: Fix dispatcher crash on RISCV64 2024-12-31 15:33:34 +10:00
Stenzek a4b359672c
Common: Switch fastjmp.cpp asm to tabs
Consistency.
2024-12-31 15:33:17 +10:00
Stenzek 79b0533df2
Common: Fix RISC-V/64 fastjmp buffer size 2024-12-31 15:30:26 +10:00
Stenzek b76618fdf4
System: Should call PGXP Reset not Initialize() in InternalReset() 2024-12-31 15:24:36 +10:00
Stenzek 1bf076c74f
VulkanDevice: Fix crash on shutdown if swapchain creation fails 2024-12-31 15:10:55 +10:00
Stenzek e0877c1922
System: Add IsUsingPS2BIOS() 2024-12-31 14:58:31 +10:00
Stenzek 69826f2101
FullscreenUI: Fix incorrect section for Deinterlacing Mode 2024-12-31 14:15:42 +10:00
Stenzek 7228f6f1cf
System: Don't fail startup if cpuinfo init fails 2024-12-30 18:11:56 +10:00
Stenzek 3c5db39ee4
GPU/SW: Remove polygon size checks from backend
It's already checked before the draw is handed off.
2024-12-30 18:11:52 +10:00
Stenzek 4d4523dc04
GPU: Use same early culling rules for lines as polygons 2024-12-30 18:11:52 +10:00
Stenzek c5bd4101b3
GPU: Refactor and simplify deinterlacing
Both HW and SW deal with half-height buffers coming in now.
2024-12-30 14:36:17 +10:00
Stenzek 4e928d7ce1
Common: Work around LLVM LTO inline asm issue
LLVM bug 61991.
2024-12-30 02:57:22 +10:00
Stenzek 401582bb2b
PlatformMisc: Load libdbus at runtime
The static library can't link to the ARM binary when cross-compiling.
2024-12-30 01:57:08 +10:00
Stenzek 9cba1decad
GPU/HW: Compiler warning fix 2024-12-29 22:34:39 +10:00
Stenzek 468c907fd6
Cheats: Compiler warning fix 2024-12-29 22:34:31 +10:00
Stenzek d4e393f1a8
Common: Fix write overflow with nosimd vector 2024-12-29 22:34:14 +10:00
Stenzek 242561debf
CPU/Recompiler: Align dispatchers and JIT blocks
A couple of percent difference if we're lucky. Practically probably <1%.
2024-12-29 18:11:58 +10:00
Stenzek 82a843c121
RegTest: Log state and RAM hashes on exit
Useful for checking determinism.
2024-12-29 17:25:55 +10:00
Stenzek 1ed9e609a5
RegTest: Support replaying GPU dumps 2024-12-29 17:25:55 +10:00
Stenzek b7832e609f
GPU/HW: Vectorize flipped sprite handling 2024-12-29 17:25:55 +10:00
Stenzek 1a211e0a21
GPU/HW: Fix mask bit regression from FF8 fix
Fixes overbright polygons appearing in Silent Hill.
2024-12-29 17:25:54 +10:00
Stenzek 0e6ade067c
FileSystem: Add error reporting to DeleteDirectory() 2024-12-29 17:25:54 +10:00
Stenzek 5c3abb490d
Common: Fix vector sse2_max_u16()
Fixes UV clamping in SSE2 build, e.g. Jumping Flash.
2024-12-29 13:56:10 +10:00
Stenzek 799f5bdf97
GPU: Assume vertex commands are 8-byte aligned 2024-12-28 20:24:22 +10:00
Stenzek 8c807118c0
GPUDevice: End timer on command flush
Fixes incorrect GPU usage readings in OpenGL, D3D11 is still
problematic, at least on AMD.
2024-12-28 20:24:21 +10:00
Stenzek 7bb0c7d1fb
InputManager: Fix pointer scale loading 2024-12-28 20:24:21 +10:00
Stenzek c2589461e9
GPU/HW: Remove extra debug group pop 2024-12-28 20:24:21 +10:00
Stenzek 74fd217afb
GPU/HW: Always update/load/save CLUT
We have the headroom with multithreading now, and it prevents issues
saving/loading state in loading screens in some games.
2024-12-28 20:24:21 +10:00
Stenzek 25b0bb752a
GPU/HW: Try truncating culled vertices
What is this monstrosity? Final Fantasy VIII relies on X coordinates
being truncated during scanline drawing, with negative coordinates
becoming positive and vice versa. Fortunately the bits that we need
are consistent across the entire polygon, so we can get away with
truncating the vertices. However, we can't do this to all vertices,
because other game's vertices break in various ways. For example,
+1024 becomes -1024, which is a valid vertex position as the ending
coordinate is exclusive. Therefore, 1024 is never truncated, only
1023. Luckily, FF8's vertices get culled as they do not intersect
with the clip rectangle, so we can do this fixup only when culled,
and everything seems happy.
2024-12-28 20:24:21 +10:00
Stenzek c99625e4c3
GPU: Move vertex culling to GPU thread
i.e. push all primitives through unless they are oversized, which the
GPU will definitely skip.

Needed because of coordinate truncation in Final Fantasy VIII, these
scenes will now render correctly with the software renderer again.
2024-12-28 20:24:09 +10:00
Stenzek 58b0ccf3fc
Common: Add 2D vector formatters 2024-12-28 19:59:25 +10:00
Stenzek 69ed6e5e58
Hotkeys: Screenshot should not be present on Android
Since it saves to app-private, users would complain that the app is
using too much data.
2024-12-27 19:39:23 +10:00
Stenzek 2da692b341
CPU/Recompiler: Swap bl{x,r} for b{x,r} on ARM
Not a subroutine call.
2024-12-27 15:02:40 +10:00
Stenzek 2a8cfc7922
CPU/CodeCache: Simplify code LUT addressing
One more instruction on x86/ARM32, no additional instructions on ARM64.

Worth it so that the application doesn't crash if the game jumps to an
invalid PC. Note that the lower 2 bits are truncated, so an unaligned
jump will round down to the closest instruction. Obviously not correct,
but if a game ends up doing this, it's a lost cause anyway.
2024-12-27 15:02:40 +10:00
Stenzek 4e5b4ba071
CPU: Fix AdEL/IBE on instruction fetch
CAUSE and EPC were swapped for the latter.
2024-12-27 15:02:40 +10:00
Stenzek 4b34825afd
CPU/CodeCache: Remove InstructionInfo pc field
No longer needed since oldrecs are gone.
2024-12-27 15:02:40 +10:00
Stenzek ce71b168c3
CPU/CodeCache: Add static to a couple of missing functions 2024-12-27 15:02:40 +10:00
Stenzek a44dd1882f
RegTest: Update CLI help 2024-12-27 15:02:40 +10:00
Anderson Cardoso 7b9664d6f2
Atualização Português do Brasil (#3348)
Atualizado para a última versão.
2024-12-27 15:02:31 +10:00
Stenzek 9921d2074c
Achievements: Fix serialization on Linux 2024-12-26 18:00:29 +10:00
Stenzek 5c83bbe5c5
FullscreenUI: Slight tidy-up to achievements login dialog 2024-12-26 18:00:29 +10:00
Stenzek 272aa4f933
ImGuiManager: Add Begin/EndTextInput() 2024-12-26 18:00:29 +10:00
Stenzek fa993849f7
Qt: Update English/Plural strings 2024-12-26 01:58:24 +10:00
Stenzek 6903abba55
CDROM: Adjust missed INT1 sector behaviour
Max Power Racing and C3 Racing are slow with their DMAs out,
and get confused when an additional INT1 comes inbetween reading
the sector header and data.

Fixes these games crashing during loading. 5000 cycles is more in
line with what the real mech would do anyway, it's pretty slow.
2024-12-26 01:55:55 +10:00
Stenzek 0528ce567c
Achievement: Fix glitchy fade indicator animation 2024-12-25 23:01:58 +10:00
Stenzek 00eb54cd15
Achievements: Refactor state serialization
Fix load failures, and eliminate the buffer copy.
2024-12-25 22:23:09 +10:00
Stenzek d360564cef
GameList: Fix lock not re-acquired on failure 2024-12-25 21:55:19 +10:00
Stenzek 8c2fe430d8
GPU/TextureCache: Apply 'Dump Replaced Textures' option to backgrounds too 2024-12-25 15:53:53 +10:00
Stenzek b03127b206
GPU: Move background dumping to HW+GPU thread
And only dump when the mask bit check is not enabled.

The replacements are gated by the mask bit check anyway, so there's
no point dumping anything that can't be replaced.
2024-12-25 15:53:53 +10:00
Stenzek 6f3e9913f5
GPU/HW: Fix VRAM write dumping only first row
Still has race conditions.
2024-12-25 15:53:53 +10:00
Stenzek dd180f2fd6
System: Fix dump VRAM writes not updating on GPU thread 2024-12-25 15:53:53 +10:00
Stenzek b33aa31db8
FullscreenUI: Update translation strings
I always forget to do this...
2024-12-25 15:53:46 +10:00
Stenzek 8f6db2c8fa
Qt: Add missing icon to System Display 2024-12-25 15:13:50 +10:00
Stenzek b81c87958f
Qt: Fix F3 getting intercepted when game/FSUI active 2024-12-25 15:11:40 +10:00
Stenzek d010f768c4
FullscreenUI: Fix smooth scrolling in game/state/etc lists 2024-12-25 15:02:09 +10:00
Stenzek ad7318f5f9
FullscreenUI: Fix spacing in game list 2024-12-25 14:37:26 +10:00
Stenzek 0565320036
ImGuiFullscreen: Enable smooth scrolling for file/choice selectors 2024-12-24 13:54:23 +10:00
Stenzek c4e0e7fade
InputManager: Fix mouse-mapped axes getting stuck
Regression from f0deab2.
2024-12-24 13:52:04 +10:00
Stenzek dc18ce2c2a
System: Warn if fastmem mode is not optimal 2024-12-24 13:16:37 +10:00
Stenzek f4265edb2d
SmallString: Add append_vformat() 2024-12-24 13:16:12 +10:00
Stenzek 86d78e5eca
GPU/TextureCache: Only use shader bilinear for initial pagefill
Make bilinear replacements behave the same as nearest.
2024-12-24 13:05:38 +10:00
Stenzek 33083cfae1
Settings: Add missing bitfield width 2024-12-24 01:21:07 +10:00
Stenzek 00278fa905
PIO: Fix failure to load state with different cart type 2024-12-24 00:24:37 +10:00
Stenzek b8fa97e1a7
GPU: Fix sprite texture filtering with TC enabled 2024-12-24 00:24:37 +10:00
Stenzek 89f11095bc
CPU: GTE completion cycle should be reset/serialized
Yay more determinism breakage...
2024-12-24 00:24:37 +10:00
Stenzek 9f73e690ad
CPU: Debug mode flag should be updated on state load 2024-12-24 00:24:36 +10:00
Stenzek ac05c35292
CPU: Fix DCIC not being cleared on reset
Stops interpreter mode being unintentionally forced after
restarting some games.
2024-12-24 00:24:36 +10:00
Stenzek 18c509a679
CPU/Recompiler: Exit block early on DCIC/BPCM change
Fixes booting Xplorer cartridge with recompiler.
2024-12-24 00:24:36 +10:00
Stenzek 307bd86b72
SPU: Fix determinism loss when loading state where IRQs differ 2024-12-24 00:24:36 +10:00
Anderson Cardoso 2aa466d1c6
Atualização Português do Brasil (#3347)
Atualizado para a última versão.
2024-12-24 00:24:23 +10:00
Stenzek 9a22ac3c70
GPU/HW: Download VRAM when enabling sw-for-readbacks 2024-12-23 17:55:47 +10:00
Stenzek 8e254c4baf
GPUBackend: Fix VRAM loss with runahead/rewind 2024-12-23 17:55:33 +10:00
Stenzek f3f99f7eac
FullscreenUI: Support renderer swapping without restart 2024-12-23 14:37:38 +10:00
Stenzek 406cd1b6a1
Qt: Shuffle a couple of graphics options
Save a tiny bit of vertical space.
2024-12-23 14:24:17 +10:00
Stenzek 9e04b0bf55
GPU/TextureCache: Add 'Always Track Uploads' option 2024-12-23 13:52:23 +10:00
Stenzek a8361f985e
GPU: CLUT should not be saved on CPU thread memory state 2024-12-22 16:48:45 +10:00
Stenzek 7f1ebd3767
PageFaultHandler: Warning fix 2024-12-22 16:48:45 +10:00
Stenzek 448009f4ef
CPU/CodeCache: Fastmem RAM faults are always writes 2024-12-22 16:48:45 +10:00
Stenzek 515a4d07fb
System: Fix pre-frame sleep getting stuck 2024-12-22 16:48:45 +10:00
Stenzek 0b4e302c22
GPU: Implement PGXP for lines 2024-12-22 16:48:45 +10:00
Stenzek b81287efd2
GPUBackend: Remove duplicate num_vertices 2024-12-22 16:48:45 +10:00
Stenzek 9b62632951
Achievements: Re-add NeedsIdleUpdate()
Forgot I needed this on Android..
2024-12-22 16:48:24 +10:00
Anderson Cardoso 556a53e564
Fix Typo in Russian tr (#3346) 2024-12-22 16:48:00 +10:00
Stenzek 080d30bf0c
GPU: Slightly adjust PAL active range
Gets the PAR closer to the expected value of 59/94 with a divider of 4.
2024-12-21 23:05:30 +10:00
Stenzek ad980a7004
GPU: Fix 480i resolution display in OSD 2024-12-21 22:20:41 +10:00
Stenzek 0aa89ec7b0
System: Fix some GPU settings not updating 2024-12-21 18:29:56 +10:00
Stenzek e1bd5690ac
Misc: Slightly reduce include pollution from settings.h 2024-12-21 15:28:27 +10:00
Stenzek 62285dcf33
Settings: Split into GPU and main settings
That way the GPU thread copy doesn't need fields it never touches.
2024-12-21 14:53:15 +10:00
Stenzek 6b754e6759
FullscreenUI: Fix CPU/GPU thread race on achievements toggle 2024-12-21 14:40:24 +10:00
Stenzek 26db661a05
GPU: Remove global indirection 2024-12-21 14:35:12 +10:00
Stenzek c4b0430d5e
System: Remove unused SetExpansionROM() 2024-12-19 23:32:15 +10:00
Stenzek 7826c258b0
System: Frame step after runahead
Makes it behave as expected.
2024-12-19 23:32:15 +10:00
Stenzek 2d659fc3eb
GPU: Move backend work off CPU thread 2024-12-19 23:32:15 +10:00
Stenzek 831c982f3b
System: Rewrite memory save state handling
Makes it more friendly to GPU thread.
2024-12-19 22:42:28 +10:00
Stenzek 6993e6c31f
GPU/SW: Fix double draws of polyline vertices 2024-12-19 22:42:02 +10:00
Stenzek 10e2079ee4
CPU/Recompiler: Don't use far code for mtc0 cache check
Redundant for a few instructions.
2024-12-19 18:44:08 +10:00
Stenzek fe1fa765f7
CPU/Recompiler: Don't back up value to stack in mtc0
Fixes misaligned stack that could crash in log messages.
2024-12-19 18:44:08 +10:00
Stenzek 568667753d
CPU/CodeCache: Avoid log calls in faults outside of JIT code
Could be in other functions that are unsafe to call log functions from.
2024-12-19 18:44:08 +10:00
Stenzek 7116a80435
Common: Add RESTRICT macro
Gotta coerce the compiler into generating better code.
2024-12-19 16:50:03 +10:00
Stenzek 31c1cfa650
Achievements: Remove unused NeedsIdleUpdate() 2024-12-19 12:46:59 +10:00
Stenzek 7442ec2f19
JogCon: Implement command 0x44 2024-12-19 12:42:01 +10:00
Daniel Nylander fa2442deaf
Updating Swedish translation (#3345)
* Updated Swedish translation
2024-12-19 12:06:06 +10:00
Anderson Cardoso 8df2a2c446
Atualização Português do Brasil (#3344)
Atualizado para última versão
2024-12-17 14:28:15 +10:00
Stenzek f010d81652
ISOReader: Add XA and raw extraction modes 2024-12-17 14:19:41 +10:00
Stenzek b68370dff7
Mouse: Move s8 clamp to after subtraction
Stops the mouse from accumulating long distances which are applied
over several frames. Seems to "feel" slightly better.
2024-12-16 01:53:03 +10:00
Stenzek cc52320dfe
FullscreenUI: Update translation string list 2024-12-16 01:30:20 +10:00
Daniel Nylander 4216eef420
Updated Swedish translation (#3343) 2024-12-16 01:29:24 +10:00
Stenzek b634eecd21
System: Allow separate configuration for multi-disc games 2024-12-16 01:22:48 +10:00
Stenzek fda10a6978
FullscreenUI: Remove legacy 'Enable Cheats' option
It did nothing.
2024-12-16 01:02:04 +10:00
Stenzek 43af57d735
System: Fix UpdateGTEAspectRatio() during initialization 2024-12-15 22:12:43 +10:00
Stenzek 1f1a664908
InputManager: Add missing call to UpdateHostMouseMode() 2024-12-15 22:12:43 +10:00
Stenzek 6e2223b517
OpenGLDevice: Fix surfaceless context switch 2024-12-15 22:09:21 +10:00
Stenzek fbb411a946
OpenGLDevice: Blacklist fbfetch on PowerVR as well
Apparently it's broken, and I don't have any devices with this chip
so I can't find a potential workaround anyway.
2024-12-15 22:07:47 +10:00
Stenzek 4e1e07a93c
Qt: Shrink BIOS settings page height
Move open/refresh buttons.
2024-12-15 16:09:02 +10:00
Stenzek 9d52e27e16
CPU/Recompiler: Use condition select for ICache updates
Tidy ~4% perf boost.
2024-12-15 16:00:25 +10:00
Stenzek 03e24637af
Qt: Simplify Host::CommitBaseSettingChanges() 2024-12-15 13:00:08 +10:00
Stenzek 5e21234966
Qt: Fix deadlock in Game Properties -> Post-Processing 2024-12-15 12:59:30 +10:00
Stenzek 90e9634c19
FullscreenUI: Enable DrawStringListSetting() 2024-12-14 18:07:33 +10:00
Stenzek c0c2e69b59
CPU/Recompiler: Document ARM32 code size
Yikes, it's huge..
2024-12-14 16:43:29 +10:00
Stenzek 5cbb6b6163
Qt: Purge unused {start,stop}dumpingAudio 2024-12-14 16:00:13 +10:00
Stenzek e91ae5f1b9
GPU/HW: Only compile page texture shaders if TC is enabled
Knocks about 1/4 off the total pipelines with the default config.
2024-12-14 15:56:46 +10:00
Stenzek dcaee9b87e
Qt: Add ISO Browser to Tools menu 2024-12-14 14:10:07 +10:00
Stenzek 726aa67d1b
CPU/CodeCache: Only cache EXP1 blocks up to 0x1F060000
Neither cart type has code mapped above this address.

Saves ~91MB of memory.
2024-12-14 14:10:06 +10:00
Anderson Cardoso b99fb22522
Atualização Português do Brasil (#3342)
atualizado para a última versão
2024-12-14 13:47:46 +10:00
Stenzek b832dfbb3a
CDROM: Zero out seek start/end after read 2024-12-14 13:47:20 +10:00
Stenzek c25c0067af
CDROM: Handle repeated SeekL to same target
Fixes more lockups in Resident Evil 3.
2024-12-14 13:36:20 +10:00
Stenzek e683c89770
CPU/Recompiler: Fix ICache updates on ARM32 2024-12-14 01:05:42 +10:00
Stenzek 5687dd22bd
PIO: Add basic flash cartridge support 2024-12-13 23:22:57 +10:00
Stenzek 2f6eaa1d43
CPU/Interpreter: Address ICache lines in words
Might help on ARM32, because no unaligned access.

Otherwise, ~23% perf boost in debug builds. But this is pretty
meaningless.
2024-12-13 23:22:57 +10:00
Stenzek 25ffc5a248
GameDatabase: Warn if multitap enabled on unsupported game
Fear Effect sends a multitap read command, but doesn't know how to
handle it. There's probably others.

Also add a DisableMultitap trait for these games to force it off.
2024-12-13 18:41:00 +10:00
Stenzek 50fbaf90e6
Qt: Add debug menu options for log sinks/timestamps 2024-12-13 18:08:44 +10:00
Stenzek 8f19912c64
GPU/ShaderGen: Use sample instead of load at 1x as well
Consistency. Mali ends up ever-so-slightly faster with sample versus
texel loads, apparently.

Also fixes compile errors when using texture filtering on GLSL ES.
2024-12-13 14:36:21 +10:00
Stenzek db848d1381
System: Remove redundant GameDB lookup 2024-12-12 17:43:00 +10:00
Stenzek 5577328f35
Controller: Allow !compatsettings to always start in analog mode 2024-12-12 17:42:37 +10:00
Stenzek 99f133223c
CPU/Recompiler: Create block links for self-looping blocks
This way invalidation will rewrite the jump back to the compiler.
Otherwise a SMC block can end up looping itself indefinitely.

Might help with Spyro 2/3. I can't seem to make them crash anymore.
2024-12-12 16:28:51 +10:00
Stenzek 2e805d56dd
CPU/CodeCache: Always backpatch KSEG2 writes 2024-12-12 16:24:54 +10:00
Stenzek c3a2156c79
CPU/CodeCache: Fix event kicking for Cached Interpreter 2024-12-12 16:24:19 +10:00
Stenzek cdcf05a878
CPU/Recompiler: Only truncate block for future writes
If we overwrite an instruction that has already executed, it
should invalidate the block next time.
2024-12-12 16:23:32 +10:00
Stenzek e507fdcb1f
System: Load state before calling OnSystemStarted()
Needed for transitent state cleanup on Android.
2024-12-11 22:04:21 +10:00
Stenzek d8af8e4a60
GPU/HW: Fix possibly-stale display with MSAA+Show VRAM 2024-12-11 22:04:21 +10:00
Stenzek 9743ce01a0
OpenGLDevice: Support GLES 3.0
Android emulator still doesn't have GLES 3.1...
2024-12-11 22:04:21 +10:00
Stenzek 69947fb907
GPU/TextureCache: Look for replacements outside of subdirectory
i.e. old setups that do not have the `replacements` subdirectory.
2024-12-11 15:02:55 +10:00
Stenzek d871c17f3f
Settings: Set sprite texture filter on reset 2024-12-11 14:54:26 +10:00
Stenzek 5eac1e4800
VulkanDevice: Blacklist FSI on AMD Windows
Yay for random GPU resets, it's fine on NVIDIA.
2024-12-11 12:46:25 +10:00
Stenzek 1edcc8c0ac
System: Merge system taints with state taints on load 2024-12-10 20:19:27 +10:00
Stenzek cc567d9498
Cheats: Fix hash-suffixed files incorrectly loading 2024-12-10 20:19:26 +10:00
Stenzek e137d3b5c7
Common: Fix rectangle rempty() on ARM32 2024-12-10 16:49:45 +10:00
Stenzek 5767397231
Qt: Remove 'Enable Cheats' from Console Settings
This was moved to Game Properties ages ago.
2024-12-10 13:19:08 +10:00
Stenzek 0bb83f6fd7
OpenGLDevice: Fix inverted cache file lock 2024-12-10 13:17:06 +10:00
Stenzek 1e839224e8
CDROM: Fix physical disc reading without SubQ on Linux 2024-12-10 02:28:02 +10:00
Stenzek 2e6deca76f
FileSystem: Don't use POSIX locks on Android
Requires SDK 24, and it's pointless anyway.
2024-12-10 02:26:54 +10:00
Stenzek b814666134
CPU/Recompiler: Fix ARM32 build (again) 2024-12-10 02:26:45 +10:00
Stenzek 1bea8817f1
Host: Add ConfirmMessageAsync() 2024-12-10 02:26:45 +10:00
Stenzek 42535591bc
HTTPDownloader: Log errors on request failure 2024-12-10 02:26:45 +10:00
Stenzek a1928de4d0
ImGuiOverlays: Pack SaveStateSelectorUI state 2024-12-09 15:35:07 +10:00
Stenzek 765a46fc88
FullscreenUI: Pack state in struct 2024-12-09 15:02:05 +10:00
Stenzek 53c08c52ed
ImGuiFullscreen: Pack state in struct 2024-12-09 15:01:57 +10:00
Stenzek 5d7cb6c5dc
System: Move state compression/writing to worker thread
Reduce hitches when saving.
2024-12-09 14:16:55 +10:00
Stenzek 31d953dac2
System: Prevent memcard blocking resume state save
Because otherwise you end up with a stale/old resume state, which is
arguably worse.
2024-12-09 13:42:41 +10:00
Stenzek 5bf7227790
CPU/CodeCache: Use code buffer section on Android 2024-12-08 19:44:27 +10:00
Stenzek 1adf36ccb2
Build: Fix out-of-tree CMake scmversion extraction on Windows 2024-12-08 19:44:27 +10:00
Stenzek b6eb41e2cf
Qt: Improve binding widget tooltip 2024-12-08 19:44:27 +10:00
Stenzek 2999f15d7a
StringUtil: Add UTF-16 encoding/decoding functions 2024-12-08 19:44:27 +10:00
Stenzek 7f3687de81
Common: Report assertion failure/panic message for Android 2024-12-08 14:19:25 +10:00
Stenzek 3a661a1c3d
Cheats: Move file clearing into core
Needed for Android.
2024-12-08 02:58:50 +10:00
Stenzek d5432da082
Settings: Disable runahead/rewind in Safe Mode 2024-12-08 02:58:50 +10:00
Stenzek f9155e5ce7
Settings: Fix incorrect data type for rewind slots 2024-12-08 02:58:50 +10:00
Stenzek 5725a0360b
GPU: Use A1BGR5 format for SW/HashCache if available 2024-12-06 18:28:09 +10:00
Stenzek 8c5fadafba
GPUTexture: Add A1BGR5 format
Needed for GLES, since RGB5A1 + BGRA + REV isn't listed as
a valid format.
2024-12-06 18:28:09 +10:00
Anderson Cardoso c3a9ab3cc8
Atualização Português do Brasil (#3341)
Atualizado para a última versão
2024-12-06 18:27:58 +10:00
Stenzek f0c456893c
GPUDevice: Support pre-rotating swap chains 2024-12-06 15:38:51 +10:00
Stenzek acf04ed67a
GPUDevice: Use row-major matrix packing
With column vectors. mul() turns into dot products instead of madds.
2024-12-06 15:10:15 +10:00
Stenzek e22d67f4aa
GSVector: Add 4x4 matrix class 2024-12-06 15:10:15 +10:00
Stenzek 9c327af280
GPUDevice: Typedef auto-recycled texture 2024-12-06 15:10:15 +10:00
Stenzek 52feb1a37d
PostProcessing: Improve compile error reporting 2024-12-06 15:10:15 +10:00
Stenzek c9c4307871
FileSystem: Android build fix 2024-12-06 15:10:15 +10:00
Stenzek 042a2d72f7
Threading: Add IsCallingThread() to ThreadHandle 2024-12-06 15:10:15 +10:00
Stenzek 5c4d95fd51
Settings: Add missing GPU feature disables 2024-12-06 15:07:56 +10:00
Stenzek 6d080c1a3f
GPU: Fix additional GL_POP() causing validation errors 2024-12-06 14:51:57 +10:00
Stenzek 3670c131e3
Qt: Hook up extract button in ISO browser 2024-12-05 18:59:32 +10:00
Stenzek ea632665c1
Qt: Fix possible game settings save error with sliders 2024-12-05 18:57:35 +10:00
Stenzek 0c7636b3c3
System: Add missing safe mode disable messages 2024-12-05 17:04:09 +10:00
Stenzek 541985fb70
Qt: Add ISO Browser 2024-12-05 16:30:21 +10:00
Stenzek 58f5d7e1ba
Qt: Fix missing status message on delayed progress show 2024-12-05 16:30:21 +10:00
Stenzek e9644c7eeb
ISOReader: Add file extraction helpers 2024-12-05 16:30:21 +10:00
Víctor "IlDucci 20df4ec14e
Spanish (Spain) update 2024/12/03 (#3340)
Translation of latest changes.
2024-12-05 16:30:09 +10:00
Stenzek fe3b4154b7
PostProcessing: Fix crash on UI open with OpenGL 2024-12-03 22:35:49 +10:00
Stenzek 3ca2579882
Qt: Add additional early SSE4.1 check on Windows
reshadefx uses roundss in std::unordered_map initializers, no other way
to stop this. If it's not reshade, it'll probably be something else.
2024-12-03 19:13:35 +10:00
Stenzek 84a1e209ea
OpenGLDevice: Lock pipeline cache on Linux
Prevents multiple processes from trampling on one another.
2024-12-03 17:35:07 +10:00
Stenzek 04e472d088
FileSystem: Add non-blocking option to POSIXLock 2024-12-03 17:29:47 +10:00
Stenzek d93c713fb7
FileSystem: Make POSIXLock moveable 2024-12-03 17:29:47 +10:00
Stenzek 5b6e3a952c
System: Reset code cache on fastmem mode change
Fixes excess backpatching and potential crashes when changing mode.
2024-12-03 17:29:47 +10:00
Stenzek 0a2facfaeb
Settings: Don't enable fastmem without recompiler
Don't need to bother allocating memory otherwise.
2024-12-03 16:54:42 +10:00
Stenzek d3ceda0c5b
CPU/CodeCache: Improve block host size heuristics
Codegen is much better these days, especially with NewRec.
2024-12-03 16:54:28 +10:00
Stenzek 9a5ee3aae6
Qt: Fix horizontal scrollbar showing in summary track list 2024-12-03 16:16:38 +10:00
Anderson Cardoso 03eb4a6bf9
Atualização Português do Brasil (#3339) 2024-12-03 14:45:36 +10:00
Stenzek 25063d4018
Achievements: Fix overlay stacking 2024-12-03 14:13:04 +10:00
Stenzek 14ff89d0c0
MetalDevice: Fix incorrect pixel format for RGB5A1 2024-12-03 13:28:19 +10:00
Stenzek cbc22a89f7
GPU/HW: Fix TC + SW-For-Readbacks combo 2024-12-02 20:45:02 +10:00
Stenzek 3959c83bd4
GPU/TextureCache: Fix split writes not dumping 2024-12-02 20:12:40 +10:00
Stenzek 22edf23269
GPU: Fix parameter logging of some commands 2024-12-02 17:24:18 +10:00
Stenzek 6756c96fa2
CDROM: Improve SeekL -> ReadN timing
See comments - Mech stops at target Data - 2, or SubQ target.
2024-12-02 17:24:16 +10:00
Stenzek 2f70d1bd9c
CPU: Write trace log to data directory 2024-12-01 23:21:33 +10:00
Stenzek e9848a6182
Misc: Collapse more niche log channels 2024-12-01 23:21:33 +10:00
Stenzek 9df59713da
GPUDevice: Put debug messages/scopes behind conditions
And completely compile them out in Release builds.

Gets Devel close to Release in terms of performance.
2024-12-01 23:21:33 +10:00
Stenzek 0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2024-12-01 23:21:33 +10:00
Stenzek 4aa9857c53
Qt: Fix fallback binding layout not including motors 2024-12-01 21:17:54 +10:00
Stenzek 7c627a8c83
Controller: Add JogCon
This is probably wrong, but I have no way of testing it with an actual
force feedback wheel.

PRs welcome to improve it further.
2024-12-01 21:17:54 +10:00
Stenzek f9c125c1a1
InputManager: Add ForceFeedbackDevice interface 2024-12-01 21:08:52 +10:00
Stenzek b87c6dde6c
CDROM: More logging tidy-up 2024-12-01 18:15:42 +10:00
Stenzek 4fe3e1147d
Controller: Add GetPortDisplayName() that takes pad index 2024-12-01 17:47:55 +10:00
Stenzek 9fc9f4b9e9
Settings: Fix hash cache fields not being compared 2024-12-01 16:53:29 +10:00
Stenzek 00132c6070
AnalogController: Fix more log spam 2024-12-01 14:49:38 +10:00
Stenzek 9c2244f40e
Qt: CustomizeWindowHint should be set for no-close-button 2024-12-01 14:39:26 +10:00
Stenzek c6746e76f1
CPU/Intepreter: Raise #RI on invalid COP0 move 2024-12-01 14:27:24 +10:00
Stenzek 62414b0c4c
CPU/Interpreter: IBE should not set BD/BT
Apparently. Nothing relies on this. :P
2024-12-01 14:27:24 +10:00
Stenzek 67041d217b
Qt: Improve shortcuts
- CTRL/+, CTRL/- no longer show in menu for zooming, but still activate.
- CTRL+O will open a new disc/game from file.
- F5 will refresh the game list (i.e. scan for new games).
- F3/CTRL+F will send focus to the game list search box.
- Pressing Enter in the search box will send focus to the first game
  list row.
- ALT+ENTER in the game list will open Game Properties.
2024-12-01 14:27:24 +10:00
Stenzek 145ad2db27
GameList: Fix scanning of ELF files 2024-12-01 13:10:20 +10:00
Stenzek 9dec34c8c0
Settings: Disable texture replacements if TC disabled
Stops replacements being enumerated in the software renderer as well.
2024-11-30 14:42:51 +10:00
Stenzek f1435dcf67
Settings: Bump maximum hash cache size
Hopefully mobile will be okay with it.. I know Adreno GL
craps out around 8,000 texture objects.
2024-11-30 14:36:07 +10:00
Stenzek 53008eb34a
GPU/HW: Allow use of RGB5A1 for texture cache
Reduces bandwidth and storage requirements by 50%.
2024-11-30 14:36:07 +10:00
Stenzek c6e2235ee2
GPU/HW: Vectorize texture conversion routines
~100% speed up for RGBA8, ~50% for RGB5A1.
2024-11-30 14:36:07 +10:00
Stenzek fa4dc381ed
GPUDevice: Rename RGBA5551 to RGB5A1
And fix the incorrect format for Vulkan.
2024-11-30 14:36:07 +10:00
Stenzek dfacf9e8db
VulkanDevice: Only create swap chain framebuffer without dynamic rendering 2024-11-30 01:09:41 +10:00
Stenzek ee750b44e3
Settings: Normalize texture replacment option titles 2024-11-30 01:09:41 +10:00
Stenzek 0f51472d64
Misc: Android build fix 2024-11-30 01:09:41 +10:00
Stenzek b7fff840c8
System: Move thread name init to host
Prevents funky thread names for regtest on Linux.
2024-11-29 21:21:27 +10:00
Stenzek cbc16bee9e
GPU: Display scanout resolution regardless of crop mode 2024-11-29 21:05:01 +10:00
Stenzek b059cda8d5
Achievements: Pack state in struct 2024-11-29 20:13:37 +10:00
Stenzek aafc029682
Misc: Un-namespace Timer 2024-11-29 20:13:37 +10:00
Stenzek ae18db9271
RegTest: Use filename instead of database title 2024-11-29 19:10:21 +10:00
Stenzek 682ba71319
GPU: Fix aspect ratio with Show VRAM enabled 2024-11-29 18:36:32 +10:00
Stenzek d5b9b54a69
GPU/SW: Vectorize VRAM writes/copies 2024-11-29 18:05:52 +10:00
Stenzek 19eee76aec
AnalogController: Reduce log spam 2024-11-29 17:30:53 +10:00
Stenzek 6cbfab6eca
MetalDevice: Warning fix 2024-11-29 17:13:21 +10:00
Stenzek 9970944da2
Achievements: Add encryption of login tokens in ini
Super simple key derived from the machine's UUID.

The idea isn't to provide a ton of security, but prevent users from
accidentially exposing their tokens when sharing their ini for debugging
purposes.

The use of the machine UUID is disabled in portable mode for those who
actually move it between computers. Instead, the key is derived from the
username alone, which is trivially computable.
2024-11-29 17:13:21 +10:00