Commit Graph

6686 Commits

Author SHA1 Message Date
Stenzek 6dc2f0a60b
Host: Add 'Auxiliary Render Windows'
i.e. debugging windows
2024-10-18 20:48:30 +10:00
Stenzek eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek c6055affbf
OpenGLDevice: Fix invalidating pipeline cache on Windows 2024-10-18 20:48:29 +10:00
Stenzek 005d48a387
System: Don't display setting warnings without game 2024-10-18 20:48:29 +10:00
Stenzek e2cb54d233
Settings: Use uint getter/setter for more fields 2024-10-18 20:48:29 +10:00
Stenzek d4f3e004cf
Host: Add missing SetBaseUIntSettingValue() 2024-10-18 20:48:29 +10:00
Stenzek 972a0693b2
Memmap: Compatibility with old libc without MAP_FIXED_NOREPLACE 2024-10-18 20:48:29 +10:00
Stenzek 219e890da5
GPU/HW: Write through VRAM transfers
Reduces the chances of rendering nothing after device loss.
2024-10-14 18:20:48 +10:00
Anderson Cardoso afd36560c1
Atualização Português do Brasil (#3310)
* Atualização Português do Brasil

Confirmação de textos movidos;
Correções de consistência.

* Update 2

Adicionado e corrigido erro de digitação.

* Update 3

* Update 4
2024-10-14 12:47:46 +10:00
Stenzek 2604df5917
Qt: Fix crash when players column is visible 2024-10-14 12:47:09 +10:00
Stenzek 11c212260c
System: Only check controller changes when valid 2024-10-14 12:46:54 +10:00
Stenzek 4a57ccc3e8
Cheats: Strip leading * when importing old files 2024-10-14 12:44:23 +10:00
Stenzek a11ed649bf
Qt: Add keyboard navigation to memory view 2024-10-13 17:34:07 +10:00
Stenzek b3ae9cbe4a
Qt: Swap compatibility star image to SVG
Images originally provided by KamFretoZ, adjusted to better fit the
column width.
2024-10-13 17:08:56 +10:00
Stenzek e0b6f6f1b2
Cheats: Rewrite cheat management system 2024-10-13 16:43:22 +10:00
Stenzek 2079bac40b
StringUtil: Add FromCharsWithOptionalBase() 2024-10-13 16:43:22 +10:00
Stenzek 0d05548459
MinizipHelpers: Add ReadZipFileToString() 2024-10-13 16:43:22 +10:00
Stenzek d8fef6f22e
GameDatabase: Store strings as views
Saves duplicating everything in memory, and a ton of heap allocations.
2024-10-13 16:43:22 +10:00
Stenzek 86d66ddf82
StringUtil: Don't call data() on empty string_view 2024-10-13 15:33:38 +10:00
Stenzek 21ec3c1152
Qt: Fix automatic binding button in per-game controller settings 2024-10-13 11:56:20 +10:00
Stenzek 5ab65ff484
Qt: Remove now-duplicate flag icons 2024-10-12 16:51:17 +10:00
Stenzek 6e26ba3e9e
Qt: Display language flags instead of region 2024-10-12 16:49:07 +10:00
Stenzek ba0708a4ff
GameDatabase: Add parsing of Language field
Also speed up lookups through binary search.
2024-10-12 16:23:47 +10:00
Stenzek 2fc5856c44
StringUtil: Add CompareNoCase() 2024-10-12 16:21:34 +10:00
Stenzek 38a331fde4
ImGuiFullscreen: Support loading SVGs 2024-10-11 22:52:11 +10:00
Stenzek 3e26b7ab73
Image: Support rendering SVGs 2024-10-11 22:52:11 +10:00
Stenzek 3d5503612b
Image: Span and Error-ify 2024-10-11 22:52:11 +10:00
Stenzek 8680900788
ImGuiFullscreen: Fix horizontal menu items getting clipped 2024-10-11 22:52:11 +10:00
Stenzek 83a1386d0b
FullscreenUI: Collapse macro button settings by default 2024-10-11 21:40:35 +10:00
Stenzek 407dccb1db
Qt: Move GDB server enable to advanced options
And expose the port as a setting.
2024-10-11 21:26:06 +10:00
Stenzek 7ce4c34936
VulkanDevice: Scissor rect should never be negative 2024-10-11 21:19:16 +10:00
Stenzek 26b6c704f0
MemMap: Support dynamic page size selection
i.e. 4K to 16K on ARM64.
2024-10-05 19:25:23 +10:00
Stenzek 0c2ab82252
System: Fix no-disc startup in later versions 2024-10-11 16:54:46 +10:00
Stenzek 1778507995
Atualização Português do Brasil (#3306)
Atualizado para a última versão.
2024-10-08 19:41:03 +10:00
Stenzek 32e96b02ca
FullscreenUI: Various fixes
- Fix mismatched X/Y in landing page.
- Fix mismatched X/Y submenus.
- Fix window padding on save state submenu.
- Fix pressing back/close on save state submenu closing list.
2024-10-07 12:51:27 +10:00
Stenzek 9ff4fbd21c
StringUtil: Fix incorrect end_ptr computation 2024-10-07 01:42:19 +10:00
Stenzek 3fb5fb4c72
System: Fix saving of subimage index 2024-10-06 18:06:51 +10:00
Stenzek c9f7ef5f9a
System: Fix reset when booting EXE 2024-10-06 13:36:46 +10:00
Stenzek 80971dac5a
AnalogController: Allow negative vibration bias 2024-10-05 16:07:33 +10:00
Stenzek 08bdffac64
GPU/HW: Fix toggling texture replacement settings 2024-10-05 13:50:36 +10:00
Stenzek 71bb953253
GPU/HW: Handle redundant texture window updates
Significantly reduces draw count in THPS2.

~150 draw calls per frame to ~70.
2024-10-05 13:06:45 +10:00
Stenzek 52389f48a6
GPU/HW: Fix force-round-coords with texture cache 2024-10-05 13:06:43 +10:00
Stenzek 2f331540b1
BIOS: Fix OpenBIOS initializer 2024-10-05 12:18:46 +10:00
Stenzek a83b642a2d
Settings: Disable texture cache in safe mode 2024-10-04 14:49:42 +10:00
Stenzek c740fd9e11
GPU/TextureCache: Disable bilinear page upscaling by default
And fix it.
2024-10-04 14:48:10 +10:00
Stenzek 887d588029
System: Further improve fastboot behaviour
Use fastboot when slowboot will fail.
2024-10-04 14:48:05 +10:00
Stenzek 4d5e0b6c54
Settings: Don't create dumps/audio in userdir
Was replaced by media capture.
2024-10-01 23:06:34 +10:00
Anderson Cardoso 785692dbe1
Atualização Português do Brasil (#3304)
Atualizado para a última versão.
2024-10-01 23:04:11 +10:00
Stenzek 7e72b9fb7b
GPU/TextureCache: Fix palette reduction in C4 mode
It was only looking at the first row...
2024-10-01 23:01:19 +10:00
Stenzek 51fefb36a0
System: Fix crash when toggling SW with interpreter 2024-10-01 22:41:01 +10:00
Stenzek bd050ebb63
OpenGLDevice: Fix 16-bit texture uploads without PBOs 2024-10-01 22:02:27 +10:00
Stenzek 0730a361a3
GPU/HW: Fix batch shader compiling with GLSL ES 2024-10-01 21:14:58 +10:00
Stenzek 45c8f6ea56
BIOS: Make GetInfoForHash() public
And it should take a const span.
2024-10-01 21:14:43 +10:00
Stenzek 08fe20ad76
CMake: Add spirv-cross include path to util 2024-10-01 21:13:12 +10:00
Stenzek ccc3b114d4
FileSystem: Slight ifdef tidy-ups 2024-10-01 21:11:19 +10:00
Stenzek 07f410bc6a
Achievements: Mirror whacky rcheevos header handling 2024-09-29 20:38:46 +10:00
Stenzek 6dc4fa5c75
CDROM: Physical => SubQ in variables
Better describes what it actually is.
2024-09-29 18:01:44 +10:00
Stenzek 060146a37a
CDROM: Add SubQ Skew option
Fixes corrupted boss sprites in Captain Commando.

One day I'll refactor things to fix this properly.
2024-09-29 17:11:52 +10:00
Stenzek 3081c4f5cd
Qt: Fix disabling of some texture dumping options 2024-09-29 16:19:20 +10:00
Stenzek 73fd97e770
GPUTextureCache: Fix reload replacements hotkey/menu action 2024-09-29 16:13:31 +10:00
Stenzek d32143b319
ImGuiOverlays: Make escape close save state selector 2024-09-29 15:29:40 +10:00
Stenzek e06f1f1002
GPU: Add hardware texture cache 2024-09-29 13:37:47 +10:00
Stenzek 4132b5ef3d
Settings: Remove 'Increase Timer Resolution' option
It's no longer needed since I switched to high-resolution waitable
timers, which are supported on Win10 1803+.
2024-09-28 23:50:44 +10:00
Stenzek fee5f760ad
Qt: Put RAIntegration in root menu bar 2024-09-28 22:34:57 +10:00
Stenzek b51def8a99
Qt: Support update checking without installing
i.e. what I'm going to do with packages, just open the
download page and let the user install it.
2024-09-28 22:25:42 +10:00
Stenzek 7d8ae9aa11
Packaging: Add SPEC and PKGBUILD 2024-09-28 22:07:14 +10:00
Stenzek ca6b99401b
Common: Build fix when compiling with AVX2 march 2024-09-28 19:43:23 +10:00
Stenzek 036e11f7a8
Qt: Remove unused variable 2024-09-27 22:48:43 +10:00
Stenzek 615781be39
GPUBackend: Don't rely on g_settings 2024-09-27 20:59:04 +10:00
Stenzek 4e880280bd
Qt: Fix inconsistent multitap addressing
And remove multiple copies of the same variables while we're at it.
2024-09-27 20:59:04 +10:00
Anderson Cardoso 82ed6bb1f3
Atualização Português do Brasil (#3303)
Atualizado para a última versão.
2024-09-27 20:58:51 +10:00
Stenzek 5995471de6
FullscreenUI: Disable rewind options unless enabled 2024-09-26 21:54:51 +10:00
Stenzek df8e950e6e
Qt: Rename 'Disable All Enhancements' to 'Safe Mode'
And move it to the bottom of the dialog.
2024-09-26 21:54:51 +10:00
Stenzek 29da7f7211
System: Add 'Fast Forward Boot' option 2024-09-26 21:40:48 +10:00
Stenzek b36e2ce6be
CPU/CodeCache: Don't create a branch block with no delay slot
Can't compile that.
2024-09-26 20:55:13 +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 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 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
Anderson Cardoso c0ada65336
Atualização Português do Brasil (#3302)
Atualizado para a última versão.
2024-09-23 23:23:14 +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 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
PugsyMAME 88bc3a2278
Fixed typo in F4 Cheat Type code (#3300)
Typo in my code, this fix will make it work properly on multiple find & replaces.
2024-09-22 21:05:44 +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
Mrlinkwii a5cd3ee7a8
UI : remove issue tracker button 2024-09-19 21:35:21 +10:00
Marcin Mitura 64655818ed
feat: Polish localization updates 2024-09-18 22:35:54 +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
PugsyMAME b5768266bb
Quality of Life changes to breakpoints (#3297)
1. Made it so that breakpoints are checked for a match on 28 bits rather than the full 32 bits. It's much simpler to use 12345 rather than 80012345 and risk getting the number of zeros wrong and also handles the mirror code/memory accesses using 00??????, 80?????? & A0??????.
2. Added bp.hit_count update to execution breakpoints.
3. Changed the Hit breakpoint message at the bottom of the debugger screen to include the hit count [see notes later].
4. Added bp.enabled check to the execution breakpoint (it uses it in the r/w breakpoints code already) [see notes later].

Notes:
3. I've added the hit count to the message as it's quicker to spot but it's also a partial workaround as the Hit Count in the Breakpoints tab doesn't seem to get refreshed.
       4. I thought the checkbox in the Breakpoints tab would set the bp.enabled but it seems it has no affect on any type of breakpoint. The only way to stop a breakpoint is to delete it.
2024-09-15 07:17:08 +01: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
Anderson Cardoso fbb92e9225
Atualização Português do Brasil
Atualizado para a última versão.

PS: Refente a recente mudança na licença do emulador
Comentado aqui #3295 da minha parte fica liberado a alteração por parte do desenvolvedor de coisas que faço e/ou fiz: ícones, temas, traduções alguns ajustes antigos e afins para que fique de acordo com a modificação da licença atual.

PS: Regarding the recent change in the emulator license
Commented here #3295 on my part, the developer is allowed to change things that I do and/or have done:

Icons, themes, translations, some old adjustments and the like so that they are in accordance with the change in the current license.
2024-09-13 10:39:01 -03: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
KamFretoZ d7ce028a42
Qt: Make Virtual Controller List Word Wrapped 2024-09-10 20:13:01 +07:00
KamFretoZ 66b4391ab9
Qt: Tweak Grey Matter Theme 2024-09-10 20:12:29 +07:00
KamFretoZ b6414756e5
Qt: Expand Controller List Width 2024-09-10 20:02:35 +07:00
KamFretoZ 065beff2da
Qt: Rename NeGcon Rumble controller name 2024-09-10 19:59:41 +07:00
KamFretoZ 0abd7c0524
Qt: Expand Controller Profile Dropdown Width 2024-09-10 19:56:38 +07: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