Commit Graph

7242 Commits

Author SHA1 Message Date
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
Stenzek 5401dc8d52
Settings: Add EmuFolders::IsRunningInPortableMode() 2024-11-29 17:06:40 +10:00
Stenzek ff3214b8f7
SmallString: Add span helpers 2024-11-29 17:06:20 +10:00
Stenzek d3246deb77
ThirdParty: Add aes.cpp 2024-11-29 17:06:06 +10:00
Stenzek 83274c7e3b
ThirdParty/SmallVector: Compile fixes 2024-11-29 17:05:18 +10:00
Stenzek b39f1558ec
StringUtil: Add Base64 decode/encode functions 2024-11-29 17:05:02 +10:00
Stenzek c0b4627c11
StringUtil: Drop old MacOS workaround 2024-11-29 15:25:36 +10:00
Stenzek bbe6612b25
Common: Add SHA256Digest 2024-11-29 15:20:33 +10:00
Stenzek da501b9294
StringUtil: Add ParseFixedHexString() 2024-11-29 15:04:25 +10:00
Stenzek 2e31a40dda
Qt: Zero spacer size hints in Graphics Settings
Fixes the window size changing depending on which tab is selected.
2024-11-29 14:06:22 +10:00
Stenzek dac5dd562b
HTTPDownloader: Improve error reporting
Give something human-readable when an error occurs.
2024-11-29 14:00:55 +10:00
Stenzek 6d72a48708
Qt: Disable All Enhancements -> Safe Mode in Debug menu 2024-11-29 13:20:50 +10:00
Stenzek 3ed6cc2ba8
GameList: Fix crash loading custom language options 2024-11-29 13:17:07 +10:00
Stenzek 6be242449b
AnalogController: Simplify rumble config
And fix some variables not being saved to state, yay determinism issues.
2024-11-29 13:11:25 +10:00
Stenzek eeee1e691a
Cheats: Support importing native format
Compared to only replacing the .cht file.
2024-11-29 13:10:59 +10:00
Stenzek 208e6c4b35
Cheats: Strip whitespace from code names 2024-11-29 12:49:51 +10:00
Anderson Cardoso c4d4a7a774
Fix Missing Flag (#3338)
* Atualização Português do Brasil

Atualizado para a última versão.

* Flag fix

Added reference for the missing flag Spanish Latin America

* Update Flag

As discussed in discord with @Hipnosis183 told us that is better change to Mexico flag instead for his lang option.
2024-11-29 12:49:33 +10:00
Daniel Nylander 73dc52ac98
Adding Swedish flags to UI (#3337)
* Updated Swedish translation

* Updating Swedish translation

Now I feel happy with it for some time.

* Adding Swedish flags

* Adding Swedish flags from Wikipedia 

Source https://sv.wikipedia.org/wiki/Fil:Sweden_flag_orb_icon.svg

* Final update for Swedish translation
2024-11-29 12:49:16 +10:00
Stenzek cd216d91db
Qt: Re-enable download button on update failure 2024-11-28 01:07:40 +10:00
Anderson Cardoso 2e0825a363
Atualização Português do Brasil (#3336)
Atualizado para a última versão.
2024-11-28 01:05:37 +10:00
Daniel Nylander b81d6718f4
Updated Swedish translation (#3335)
* Updated Swedish translation

* Updating Swedish translation

Now I feel happy with it for some time.
2024-11-28 01:05:30 +10:00
dreamsyntax 4e43b1ec8c
Debugger/MemoryScanner: Add 'Freeze Selected' (#3334) 2024-11-27 18:30:02 +10:00
Stenzek a879c11c34
Qt: Prevent multiple update download button clicks 2024-11-27 18:28:29 +10:00
Stenzek 97700b85de
GPU/HW: Clear ROV depth on fill/copy/write
It wasn't being specified before, whoops.
2024-11-27 17:52:31 +10:00
Stenzek eb390a9b5d
GPU/TextureCache: Specify max hash cache size/memory in config 2024-11-27 17:52:31 +10:00
Stenzek b28ca2b78a
Qt: Improve updater error reporting
And swap from Qt file functions to our own.
2024-11-27 17:52:31 +10:00
Stenzek 57d3aa4850
FileSystem: Add Error parameter to StatFile() 2024-11-27 17:50:43 +10:00
Stenzek 1434507b41
FileSystem: Add span overload for WriteBinaryFile()
And normalize filename -> path parameter names.
2024-11-27 17:50:43 +10:00
Stenzek b97788a35a
PostProcessing/FX: Force native paths for includes 2024-11-27 13:18:11 +10:00
Stenzek 4edae3cdd0
GPU/HW: Depth buffer needs to be a RT in ROV mode 2024-11-27 12:56:01 +10:00
Stenzek d1b904a1da
Qt: Fix game properties crash opening non-DB game 2024-11-27 12:43:15 +10:00
Stenzek 0befbf8021
GPU: Add Uncorrected Borders crop mode
Should behave the same as the old "All Borders" mode.
The pixel aspect ratio WILL BE WRONG.

Also fixes the size of screenshots in internal resolution mode.
2024-11-26 18:00:19 +10:00
Stenzek be7a20fef2
GPU/TextureCache: Map replacement non-255 alpha to fully transparent
That way if during the scaling process you end up with interpolated
colours, the cutout alpha is preserved.

Ideally we'd blend it, but that tends to create more problems than it
solves on PSX.
2024-11-26 13:08:32 +10:00
Stenzek 5fd79254bd
GPU: Fix crash when toggling software renderer 2024-11-26 12:58:12 +10:00
Stenzek 57595c47af
GPU/TextureCache: Move replacement cache onto the GPU
And enforce a maximum. Should sort out the upload spam.
2024-11-25 19:37:28 +10:00
Stenzek 4a650fcce2
GPUDevice: Fix VRAM usage calculation for compressed textures 2024-11-25 18:44:35 +10:00
Stenzek 982dccb990
D3D12Device: Clang warning fixes 2024-11-25 16:30:23 +10:00
Stenzek b180b26728
GPU: Rework "All Borders" cropping to be aspect correct
The "All Borders" crop mode was previously creating an aspect ratio that
was completely incorrect when using modes outside of Auto/4:3. We now
scale the aspect ratio relative to the PAL/NTSC aspect ratio to account
for this, regardless of how much of a border the game configures.

Overscan cropping also produced an incorrect aspect ratio outside of 4:3
mode, resulting in minor horizontal stretching. It is now correct,
however, this results in black borders being added in 16:9 for most
games.

To remove these borders, you have two options:

 - Use the "Stretch to Fill" aspect ratio. This will scale the GTE
   aspect ratio to fill the screen.

 - Use the "Only Overscan Area (Aspect Uncorrected)" crop mode. This
   mode retains the "old" behaviour, resulting in a stretched image.
2024-11-25 16:26:16 +10:00
Stenzek dec468966c
GPU/HW: Fix sprite mode triggering on screen-aligned UVs
Some polygons just end up being perfect. For example, Croc 2
minecart level.
2024-11-25 15:39:45 +10:00
Stenzek a804801a1b
GPU/HW: Support filtering with texture cache 2024-11-25 13:23:39 +10:00
Stenzek 0ae8fcced3
GPU/HW: Fix incorrect sampling at 1x with TC 2024-11-25 13:15:07 +10:00
Stenzek 0076af6974
SPU: Zero out upper ADPCM filters
Also in CD-ROM.
2024-11-25 01:33:11 +10:00
Stenzek 40a1bee9ea
CDROM: Fix incorrect clmap in XA-ADPCM decoding
Fixes crunchy audio in GT2: A-Spec.
2024-11-25 01:05:10 +10:00
Stenzek 9fa8fee193
Achievements: Use rc_client for pause throttling 2024-11-24 23:56:16 +10:00
Stenzek 852239ec8a
Qt: Add game list language override option 2024-11-24 23:29:29 +10:00
Stenzek 70a4b5c9f2
GameDatabase: Add missing flags 2024-11-24 23:29:29 +10:00
Stenzek 7b230dc4c1
GPU/HW: MSAA samples change needs to recreate pipelines
Otherwise Metal/Vulkan go boom boom.
2024-11-24 23:29:29 +10:00
Stenzek ae14c8715d
Image: Support decompressing BC1-7 2024-11-24 23:29:29 +10:00
Stenzek 8567293103
Util: Add TextureDecompress 2024-11-24 23:29:29 +10:00
Stenzek 7eb1d4e092
GPUDevice: Support compressed textures 2024-11-24 23:29:29 +10:00
Stenzek 24dfd30839
Image: Refactor to a more generic class 2024-11-24 23:29:29 +10:00
Stenzek 3ff1b04576
GPUDevice: Support generating mipmaps 2024-11-24 23:29:28 +10:00
Stenzek e647192437
GPUDevice: Add compute shader support 2024-11-24 23:29:28 +10:00
Stenzek affbdfc350
Timer: Fix >1 second sleeps on MacOS 2024-11-24 23:29:28 +10:00
Daniel Nylander ff010686f8
Updated Swedish translation (#3333) 2024-11-24 21:55:06 +10:00
Stenzek c970740d12
InputManager: Workaround macro chord trigger issue 2024-11-24 21:54:43 +10:00
Stenzek e987b56aae
Log: Remove unused ISOReader channel 2024-11-23 18:59:10 +10:00
Stenzek 5bcf99fc11
CDImage: Merge bin/ecm handling into one class
Means that cuesheets with ECM tracks will now load as expected.
2024-11-23 18:52:46 +10:00
Stenzek 5261cfe8e4
CPU/Recompiler: Tidy up type names
And reduce global namespace pollution.
2024-11-23 18:52:46 +10:00
Stenzek f67eacc071
CPU: Default to new recompiler/remove old recompiler 2024-11-23 18:52:46 +10:00
Stenzek d2d06adeeb
CPU/NewRec/ARM32: Shifts need to be explicitly masked 2024-11-23 18:52:45 +10:00
Stenzek 5c03e1d940
Misc: Fix alignment errors on ARM32 2024-11-23 18:52:45 +10:00
Stenzek bb24d406f2
Pad: GCC compile fix 2024-11-23 18:52:45 +10:00
Stenzek 5d8519897d
Image: Fix uninitialized read without SIMD 2024-11-23 18:52:45 +10:00
Stenzek b984f343ae
System: Fix audio CD images not showing title 2024-11-23 18:52:45 +10:00
Stenzek 0079f7a285
CDImageCue: Support reading .wav files (WAVE cuesheet files) 2024-11-23 18:52:43 +10:00
Stenzek e6892e0a54
Common: Fix incorrect condition in PreviousPow2/NextPow2 2024-11-21 12:31:00 +10:00
Stenzek 378fd80e3d
CDROM: Defer subq read until needed
Should help with hitches on real disc reads until I refactor
in a proper sector cache...
2024-11-20 14:24:48 +10:00
Stenzek ca9af62f92
FullscreenUI: Add a BP achievements login dialog 2024-11-20 13:44:39 +10:00
Stenzek 2da7859143
Qt: Fix incorrect parent window for locks
e.g. achievements token expired
2024-11-20 13:44:08 +10:00
Stenzek b59f9a1270
ImGuiManager: Plumb through clipboard access 2024-11-20 13:38:52 +10:00
Stenzek 2791a9a890
Scripts: Move l10n glyph range script to scripts 2024-11-19 20:40:03 +10:00
Stenzek 81e2619e91
FullscreenUI: Add missing icon 2024-11-19 20:35:07 +10:00
Stenzek 5a948800b7
Achievements: Purge first-disc-from-playlist option
Unnecessary since all disc's hashes are registered.
2024-11-19 20:13:22 +10:00
Stenzek 4b71428846
GPU/TextureCache: Fix tracking getting enabled without TC 2024-11-18 23:34:24 +10:00
Stenzek 1451e968d5
GPU/TextureCache: Pack state in struct 2024-11-18 14:19:47 +10:00
Stenzek 9838dd9df2
GPU/TextureCache: Purge copy-target sources from hash cache
Saves some VRAM/hash cache usage by disacarding hash cache entries that
are discarded by a copy, but unfortunately cannot stop the uploads.
2024-11-18 14:19:47 +10:00
Stenzek 6c1b98e46a
GPU/SW: Fix 256-bit AVX2 path 2024-11-18 14:19:47 +10:00
Daniel Nylander 122fe3d52f
Updated Swedish translation (#3331)
* Update Swedish translation

* Update duckstation-qt_sv.ts
2024-11-17 13:24:00 +10:00
Stenzek ed78a20ea7
FullscreenUI: More icon replacements 2024-11-17 13:23:03 +10:00
Stenzek 574f12759c
FullscreenUI: Hide advanced settings by default 2024-11-17 13:12:45 +10:00
Stenzek 97d8a35108
GameDatabase: Fix compatibility rating localization 2024-11-17 13:04:20 +10:00
Stenzek 7a11b95490
Qt: Update Korean translation by Hack茶ん 2024-11-17 13:03:33 +10:00
Stenzek 725530984c
FullscreenUI: Move remaining OSD settings to main page 2024-11-16 22:03:58 +10:00
Stenzek 8747101648
FullscreenUI: Fix enable state of skip dupe frames 2024-11-16 22:01:09 +10:00
Stenzek 49a6ef7aca
FullscreenUI: Add icons to remaining options 2024-11-16 21:56:32 +10:00
Stenzek bb450d5e5f
FullscreenUI: Fix nav focus loss on input bind 2024-11-16 20:00:39 +10:00
Stenzek d56bcfa4c8
FullscreenUI: Fix activate button stuck on input bind 2024-11-16 20:00:20 +10:00
Stenzek 854319441c
ImGuiFullscreen: Fix position resetting to top of list on popup close 2024-11-16 19:36:12 +10:00
Stenzek d5e2db0dee
Misc: Fix new clang-cl warnings 2024-11-16 14:06:14 +10:00
Stenzek 854a8eb1bb
Qt: Fix non-cancellable progress dialog height 2024-11-16 14:01:44 +10:00
Stenzek 61dae0ed6f
Qt: Disable close for non-cancellable progress dialog 2024-11-16 14:01:44 +10:00
Stenzek 49b669c8be
Qt: Make image verification cancellable 2024-11-16 14:01:44 +10:00
Víctor "IlDucci 194e9bbbe5
Spanish (Spain) translation update (#3330)
Updated the Spanish (Spain) translation with the latest changes.
2024-11-16 00:22:08 +10:00
Stenzek 41a89123c9
VulkanDevice: Work around older NVIDIA driver present bug 2024-11-16 00:19:03 +10:00
Stenzek 3cf7a94d1e
GunCon: Allow empty/disabled crosshair 2024-11-14 00:35:45 +10:00
Stenzek 8ec9c90c82
Qt: Fix settings not applying immediately when editing profile 2024-11-14 00:35:25 +10:00
Stenzek 2da32d8e57
Qt: Allow saving empty string to config 2024-11-14 00:19:41 +10:00
Stenzek c2316dfdc8
InputManager: Fix relative mode engaging for gun controllers
It still needs to activate when using raw input.
2024-11-14 00:17:28 +10:00
Stenzek 350429466a
FileSystem: Move separator macro to path.h 2024-11-14 00:17:27 +10:00
Stenzek babaffcce9
GPU/HW: Don't enable no-color-perspective when unsupported
i.e. GLES
2024-11-13 21:07:02 +10:00
Stenzek 5219e4f987
CDROM: Simulate real pause timing 2024-11-12 16:03:36 +10:00
Stenzek a2af51b856
CDROM: Simulate backwards track jump after seek/pause 2024-11-12 16:03:36 +10:00
Stenzek 5f607d8c7a
CDROM: Avoid double seek on repeated Setloc+ReadS 2024-11-12 16:03:36 +10:00
Stenzek 97938a8b8c
CDROM: Improve command logging clarity 2024-11-12 16:03:36 +10:00
Stenzek 5cf2c86874
CDROM: More accurate approximation of sectors per track 2024-11-12 16:03:35 +10:00
Stenzek e69f0d3cce
OpenGLDevice: Support both XCB and Xlib
Required for NVIDIA+XWayland.
2024-11-11 20:12:26 +10:00
Stenzek 816ef45199
OpenGLDevice: Fix possible missing eglMakeCurrent() after FS 2024-11-11 20:12:23 +10:00
Stenzek 365e129792
CPU: Fix puts() hook incorrect arg 2024-11-11 16:27:11 +10:00
Stenzek 6ffa5bffab
CPU: Handle mirrors of BIOS syscalls 2024-11-11 16:26:51 +10:00
Stenzek 3f41dcc97d
Log: Add option coloured variants 2024-11-11 14:04:48 +10:00
PugsyMAME 5caadec34d
Cheat bugfix and new A8 cheat type (#3328)
* Bugfix for import and entering new cheats

Added needed g_emu_thread->reloadCheats calls after the reloadList() calls on entering a new code or importing new codes.

Without it I had to import new codes and then manually edit one of them for it to show up in the cheat counts and possibly even work

* Added Cheat Type A8

Added cheat type A8 which is the byte equivalent of the A7 cheat type as there will be a need of this type.

* Changed boolean parameters in last PR

Changed boolean parameters in last PR as per discord
2024-11-11 14:01:50 +10:00
Daniel Nylander 439e05bbf2
Update duckstation-qt_sv.ts (#3329) 2024-11-10 17:53:34 +10:00
Stenzek 92bcf64fe8
VulkanDevice: Refactor present failure handling
Shouldn't deadlock anymore...
2024-11-10 17:52:12 +10:00
Stenzek 0234137be4
VulkanDevice: Use VK_EXT_surface_maintenance1
NVIDIA drivers return a minImageCount of 3 with the base surface query
capability, but require 4 images for XWayland in immediate present mode.
2024-11-10 17:52:12 +10:00
Stenzek b70a8482bd
OpenGLDevice: More verbose logging of surface creation failure 2024-11-10 17:52:12 +10:00
Stenzek 8611f4f438
System: Handle GPU device loss in BP-only mode 2024-11-10 15:48:41 +10:00
Stenzek 5b600789d6
GPU: Page align VRAM storage on Apple Silicon 2024-11-10 14:02:09 +10:00
Stenzek 2bf0838634
MetalDevice: Fix import of non-page-aligned buffers 2024-11-10 14:01:54 +10:00
Stenzek e3e0fe6445
Log: Prepend timestamp to multi-line messages 2024-11-10 13:23:25 +10:00
Stenzek 3874df6888
Qt: Enforce minimum progress dialog height 2024-11-10 13:10:20 +10:00
Stenzek 3a271ffe9b
Qt: Enable Swedish translation 2024-11-10 13:06:05 +10:00
Daniel Nylander 160c27e106
Adding Swedish translation (#3327) 2024-11-10 13:03:03 +10:00
Stenzek e8bb6bab10
Qt: Don't allow doubleclick-to-fullscreen in relative mode 2024-11-08 21:01:21 +10:00
Stenzek 7ac7175da5
Qt: Right clicking while binding should not clear input 2024-11-08 20:38:37 +10:00
Stenzek a6c19cc90b
OpenGLContext: Compile fix on MacOS 2024-11-08 18:05:26 +10:00
Stenzek c461ad7b44
D3D11Device: Ensure we don't drop to feature level 10 on query failure 2024-11-07 22:24:33 +10:00
Stenzek 886ef4cc59
WAVWriter: Add matching reader class 2024-11-06 13:46:48 +10:00
Stenzek ead9e56c4d
System: Support loading ELF files 2024-11-05 17:54:12 +10:00
Stenzek 65f3dcbe9b
HeapArray: Fix assignment/move with aligned variant 2024-11-05 17:53:42 +10:00
Stenzek 2044e35377
GPUDump: Fix unknown compression type reported with Zstandard 2024-11-05 16:21:40 +10:00
Stenzek 3952661978
GPU: Write initial rendering attributes to GPU dump 2024-11-05 16:17:49 +10:00
Stenzek 7b7dd2bef1
AnalogController: Reset state on analog->digital switch
But only when the game does not support analog mode.

Tomb Raider's game selector menu puts the controller into
configuration mode, and we're supposed to respond with a
0x00 header byte if the user switches the pad to digital
mode.

Problem is, the game itself doesn't understand this mode
switch nor configuration mode. So the status byte gets
stuck at 0x00 if the user toggles analog mode, and the
game thinks no pad is connected.

Work around this by resetting the whole state if the game
does not support analog mode.
2024-11-05 16:07:31 +10:00
Stenzek 57ca5dd2c2
ImGuiFullscreen: Default input source to keyboard if none 2024-11-05 14:12:43 +10:00
Stenzek 88e14dd3ff
RegTest: Support using global data directory 2024-11-05 13:58:20 +10:00
Stenzek a854ed2da1
Qt: Use game start fullscreen flag for BP too 2024-11-05 13:29:58 +10:00
Stenzek f889136227
PostProcessing: Don't try other types after first failure 2024-11-05 13:26:32 +10:00
Stenzek bcd5cd0027
GPU/ShaderGen: Fix debug assert tripping with fbfetch 2024-11-05 13:13:29 +10:00