Commit Graph
100 Commits
Author SHA1 Message Date
Stenzek e3a84af1aa GameDB: PGXP-CPU for Firebugs
Fixes gaps in geometry.
2024-09-26 20:49:04 +10:00
Stenzek c46ec398dc GPU: Move software fill/write/copy into rasterizer namespace 2024-09-26 18:30:46 +10:00
Stenzek 495a0da8d4 Pad: Pack state in struct 2024-09-26 17:54:46 +10:00
Stenzek 58dc24cb0d CDROM: Pack state in struct
Ensures locality, as with other subsystems.
2024-09-26 17:49:35 +10:00
Stenzek a26c3e5620 System: Add new 'Type 1B' fast boot
This saves approximately 2 seconds of boot time, as it no longer copies
the shell from ROM to RAM. The actual byte reads only take in the order
of 75ms, but because the BIOS executes the memcpy() out of uncached ROM,
the repeated instruction fetches take it up to almost 2 seconds...

It would be faster to read it from the CD-ROM...
2024-09-26 16:28:47 +10:00
Stenzek d1eed89292 GameDB: PGXP-CPU for Roswell Conspiracies 2024-09-26 14:05:43 +10:00
Stenzek 0e4ca9cd93 CDROM: Fix CDDA playback in some obscure edge cases
e.g. Roswell Conspiracies
2024-09-26 14:05:34 +10:00
Stenzek 4d74b203af System: Don't try to read SYSTEM.CNF from Audio CD 2024-09-26 13:39:01 +10:00
Stenzek 991927151c ImGuiOverlays: Fix scrolling offscreen with no-serial 2024-09-26 13:38:57 +10:00
Stenzek fd8f97f4d3 GPU/HW: Fix adaptive downsampling
Also rewrite shaders to improve blurring around edges of 3D objects
(e.g. FF7).

As a trade-off, the background does blur slightly less, but (imo)
it looks better overall, since you'll notice the foreground being
blurred much more than the background.
2024-09-26 13:25:53 +10:00
Stenzek 5ed96fcfe4 GameDB: ICache for Nightmare Creatures
Janky ass disc code...
2024-09-25 01:37:07 +10:00
Stenzek 50cfbf1629 GameDB: PGXP-CPU for Valkyrie Profile
Fixes wobble during screen transitions and battle stages.

Hopefully nothing else breaks, if it does, please let me know.
2024-09-25 01:37:07 +10:00
Stenzek 114effd9a1 CDROM: Simulate backwards 1T jump on short seeks
Fixes hangs in LMA Manager, Nightmare Creatures PAL with Interpreter.
2024-09-25 01:37:07 +10:00
Stenzek 3808217298 SPU: Handle ignore loop address with IRQs on
This was actually the issue with World Cup 98, not anything to do with
disc timing. Which makes more sense.

Game has IRQs enabled, but because it wasn't keyed on, the condition
never held true, therefore the new repeat address was immediately
overwritten.
2024-09-25 01:37:07 +10:00
Stenzek 2cfad2126d Common: Missed another SSE4 instruction 2024-09-25 01:37:07 +10:00
Stenzek 71cf206dc8 CI: Add Windows SSE2 builds 2024-09-23 21:42:48 +10:00
Stenzek b971125469 MSBuild: Support creating legacy SSE2 builds 2024-09-23 21:19:28 +10:00
Stenzek ed7a9e2f8c CI: Refactoring and add Linux SSE2 builds
Windows will follow at some point.
2024-09-23 20:27:58 +10:00
Stenzek bfc914aaa9 CMake: Add DISABLE_SSE4 option
NOT recommended. Only if you ABSOLUTELY need it.

The SSE2/legacy build will be a separate download option, and
warn you if you try to run it on a CPU that supports SSE4.
2024-09-23 20:27:58 +10:00
Stenzek d67b826033 CI/Flatpak: Improve install behaviour
Use "standard" install path.
2024-09-23 19:21:14 +10:00
Stenzek dae38cb309 Qt: Fix gap in advanced graphics settings on Linux 2024-09-23 19:18:29 +10:00
Stenzek bb3d27f153 GPU/SW: Drop dithering function specialization
Reduces the code size by roughly half, which may be beneficial on
icache-starved processors.

Also fixes too-bright values being fed into the blending equation.
2024-09-23 01:01:07 +10:00
Stenzek 2768d27c05 Qt: Make log window legible in light theme 2024-09-23 00:50:51 +10:00
Stenzek 23ec40d032 Settings: Set log level to none if no sinks enabled 2024-09-23 00:26:48 +10:00
Stenzek cf32774b24 RegTest: Check size before hash 2024-09-22 21:06:05 +10:00
Stenzek 206f32e511 Qt: Fix early console debug output 2024-09-22 21:06:05 +10:00
Stenzek c439de6364 Common: SSE2 backsupport for vector classes
shuffle8() sucks, the rest aren't _too_ bad.
2024-09-22 21:06:05 +10:00
Stenzek e1c876671a Misc: More iNN => sNN 2024-09-22 21:06:05 +10:00
Stenzek 986e207cff GPU/HW: Make batch shaders independent on resolution
Almost a 6x reduction in *compressed* shader cache size.
2024-09-22 21:06:05 +10:00
Stenzek f9941c3f68 GPU/HW: Reduce shader dependence on global constants
Step 1 of making resolution-independent shaders.
2024-09-22 21:06:05 +10:00
Stenzek f169b892c1 GPU: Defer frame done if not running events
Prevents interruption/execution exiting if the frame was ticked over
by a MMIO access, e.g. reading GPUSTAT.
2024-09-22 21:06:05 +10:00
Stenzek 3dca598063 Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek 88381209b3 System: Fix crash when disabling runahead 2024-09-21 22:26:06 +10:00
Stenzek 1754ecf4f9 SPU: Get rid of second output stream 2024-09-21 22:26:05 +10:00
Stenzek df17528b18 Qt: Move threaded rendering toggle to Debug tab
Frees up some space.
2024-09-21 22:26:05 +10:00
Stenzek 54e5d93165 GPU/SW: Enable SIMD path and make default 2024-09-21 22:26:05 +10:00
Stenzek 19698559c3 System: Drop IPC server
The one group using it switched to shared memory exports anyway.
2024-09-21 22:26:05 +10:00
Stenzek ac8461a28b System: Fix bogus SW thread CPU in OSD 2024-09-21 22:26:05 +10:00
Stenzek e617f17294 System: Set GPU timing enable on init/destroy
It's really unrelated to the guest GPU.
2024-09-21 22:26:05 +10:00
Stenzek e7aa0495ab System: Not all setting changes need to interrupt 2024-09-21 22:26:05 +10:00
Stenzek 40670726b4 GPU/SW: Fix SSE4 path and add 256-bit AVX2 path 2024-09-21 22:26:05 +10:00
Stenzek a7747c5be3 Common: Add 256-bit integer vector wrapper 2024-09-21 22:26:05 +10:00
Stenzek d07c7e4b68 Qt: Fix 100% CPU usage while downloading files
The wonders of having fast internet, you never realize when this happens
because it completes too quickly...
2024-09-21 22:26:05 +10:00
Stenzek 5f80cb1188 GPU/HW: Fix inaccurate shader progress counter 2024-09-21 22:26:05 +10:00
Stenzek b5df06a54a GPU/HW: Rewrite automatic internal resolution selection
Make it aspect ratio aware, as well as updating when/if the game changes
resolution. Also include the padding area in the OSD/status resolution.
2024-09-21 22:26:05 +10:00
Stenzek e056bcb5ff AudioStream: Fix incorrect padding 2024-09-21 22:26:05 +10:00
Stenzek 96ece5de1c SmallString: MSVC warning fix 2024-09-19 22:25:35 +10:00
Stenzek 0538b95d9b GPU/HW: Reduce number of shaders/pipelines in default config
~3x speedup in shader compile time on a cold cache.
2024-09-19 22:18:58 +10:00
Stenzek 292c1e0f06 Misc: Normalize OSD message keys 2024-09-18 22:35:50 +10:00
Stenzek 369599202c StringUtil: Speed up EncodeHex()/append_hex() 2024-09-18 21:42:46 +10:00
Stenzek 401295ebdb Common: Allow PRINTFLIKE to work on Clang
And thus clang-cl.
2024-09-18 21:31:06 +10:00
Stenzek 8ba85d62dc Pad: Fix stuck inputs after loading mismatched state pad type 2024-09-18 21:21:57 +10:00
Stenzek 8b67ed8536 CPU: Display loadstore offsets in hex
Also add 0x prefix to logical immediate operands, since it is printed
in hex, and normalize arithmetic operands.
2024-09-15 17:29:33 +10:00
Stenzek b96e6d1425 Qt/Debugger: Connect breakpoint checkbox 2024-09-15 17:15:47 +10:00
Stenzek 8fa406061a CPU: Add SetBreakpointEnabled() 2024-09-15 17:15:38 +10:00
Stenzek 1ffd2f4149 Qt/Debugger: Improve row scrolling
Don't center the current PC unless we're going off screen, or requested
a specific address.
2024-09-14 02:07:08 +10:00
Stenzek 6d637127f2 Qt: Fix memory view colours in light themes 2024-09-14 00:44:44 +10:00
Stenzek 350cf7ee32 GPUDevice: Use suffixed shaderc libname
Avoids conflicts with other installations of shaderc, e.g. the Vulkan
SDK, which might be in the user's LD_LIBRARY_PATH.
2024-09-13 23:05:01 +10:00
Stenzek d28f0fa4e6 Qt: Enable word wrap in Settings window list 2024-09-13 21:22:48 +10:00
Stenzek e17eaf77dd ImGuiFullscreen: Disable border animation when smooth scrolling is off 2024-09-13 21:14:07 +10:00
Stenzek e03deb4928 System: Set realtime constraints on MacOS
Significantly improves frame timing/pacing, now it is a
flat line on my 2023 MBP like other platforms.
2024-09-13 20:23:57 +10:00
Stenzek d330dca38a MetalDevice: Use CocoaTools methods 2024-09-13 19:52:09 +10:00
Stenzek d981dc7471 MetalDevice: Implement pipeline cache 2024-09-13 19:26:44 +10:00
Stenzek ad67ab7ec3 MetalDevice: Use TranspileAndCreateShaderFromSource() 2024-09-13 17:31:59 +10:00
Stenzek 6f31e562a0 MetalDevice: Implement timed present 2024-09-13 15:19:29 +10:00
Stenzek f2720b98dd System: Reduce force-displayed-warning scope
Please don't make me regret this.
2024-09-10 23:53:39 +10:00
Stenzek ddcb0cb541 Misc: Warning fixes 2024-09-10 23:53:27 +10:00
Stenzek 20b4581bbe Settings: Remove second source of truth for OSD notifications
And split it into warnings/messages. Warnings are always displayed
regardless of the "Show OSD Messages" setting, because they're critical
and users forget they disable messages.
2024-09-10 22:10:42 +10:00
Stenzek 2813b4bece Achievements: Open profile on leaderboard selection 2024-09-09 22:10:06 +10:00
Stenzek 6c3f33804f ImGuiFullscreen: Fix whole menu being unscrollable
If the first/last menu items were not enabled, e.g. settings pages
2024-09-09 21:37:52 +10:00
Stenzek 891d5cefbe ImGuiFullscreen: Allow smooth scrolling 2024-09-09 21:57:08 +10:00
Stenzek e93dea5ad8 SPU: Connect 0x1F801DB8/0x1F801DBA writes
But I'm not aware of any games that actually use this, and if there is a
sweep active, it will be soon overwritten anyway.
2024-09-09 21:04:47 +10:00
Stenzek d1770b616f Settings: Default console logging to running from TTY 2024-09-09 20:55:15 +10:00
Stenzek fe9d06a194 Qt/Debugger: Snap code view to center on goto address 2024-09-09 20:41:10 +10:00
Stenzek 936c945e73 Qt/Debugger: Highlight selection on dump address 2024-09-09 20:37:04 +10:00
Stenzek c633a6bacc Qt/Debugger: Invalidate blocks on manual memory edit
Ensures recompiler isn't executing stale code.
2024-09-09 20:19:26 +10:00
Stenzek 128d5254ca MSBuild: Disable RTTI on Windows builds
It's not used.
2024-09-09 19:22:41 +10:00
Stenzek e2a3fe14f0 Cheats: Prevent inlining of memory functions
Clang is way too eager here and inlines the whole thing hundreds of
times within CheatList::Apply().
2024-09-09 18:53:51 +10:00
Stenzek 7bcdf11240 MediaCapture: Fix audio timestamp drift
Fixes capture lag after approximately 10 minutes.
2024-09-09 17:27:22 +10:00
Stenzek de551c1836 D3D12Device: Fix crash when using media capture 2024-09-09 17:27:10 +10:00
Stenzek 559aff0ad5 D3D12Device: Use DXC and 12.0 feature level 2024-09-09 00:23:30 +10:00
Stenzek a22acfc8a7 Deps: Include DXC and DirectX Agility SDK 2024-09-09 00:00:35 +10:00
Stenzek 4c31218d2b GPUDevice: Add API version field
Also tie shader caches to API version and device LUID. That way we don't
have tons of cache files, and they're regenerated if the GPU/driver
changes.
2024-09-08 23:33:05 +10:00
Stenzek c42fb7c16e GPUDevice: Support ingesting SPIR-V
Will be transpiled to HLSL -> DXBC for DirectX backends.
2024-09-08 22:11:58 +10:00
Stenzek 6a5f16d89a VulkanDevice: Handle rare case of unaligned SPIR-V 2024-09-08 21:55:51 +10:00
Stenzek 432fd80f3d PostProcessing/FX: Use SPIR-V instead of GLSL for Vulkan 2024-09-08 19:43:18 +10:00
Stenzek 86bff869bc dep/reshadefx: Update to 7bdfb03 2024-09-08 19:19:58 +10:00
Stenzek 3078339f64 Common: Extract out ryml helpers 2024-09-09 00:35:31 +10:00
Stenzek b10f043350 StringUtil: Fix typo 2024-09-09 00:35:12 +10:00
Stenzek 1d83e72887 Achievements: Fix incorrect plural string 2024-09-08 11:51:31 +10:00
Stenzek 1956575710 Cheats: Fix detection of ungrouped cheat import 2024-09-08 11:49:59 +10:00
Stenzek 32a3311208 System: Add option to automatically resize window 2024-09-07 22:05:54 +10:00
Stenzek 9d6ec23dc4 Common: Fix GSVector natvis 2024-09-07 21:53:32 +10:00
Stenzek 940cc636d6 GPU: Fix internal res screenshot AR with None cropping 2024-09-07 20:19:28 +10:00
Stenzek af777c16ff MediaCapture: Log video size 2024-09-07 20:19:07 +10:00
Stenzek 47a3cd44f3 CDROM: Support reading MODE1 sectors 2024-09-07 16:05:53 +10:00
Stenzek 1b2ff7e0e8 CDImage: Support reading MODE1 sectors 2024-09-07 16:05:43 +10:00
Stenzek 6ea2bb1810 Qt/Debugger: Auto refresh memory every 100ms 2024-09-07 13:39:14 +10:00
Stenzek 71ec59be06 Qt/Debugger: Highlight changed bytes in memory view 2024-09-07 13:19:01 +10:00
Stenzek ac5a2a153a GPUDevice: Remove BeginPresent() skip parameter
It wasn't used - System does its own present skipping.
2024-09-07 12:53:55 +10:00