Commit graph

2036 commits

Author SHA1 Message Date
Connor McLaughlin aa675163e2 CDROM: Fix second response event not being cleaned up 2021-06-14 13:47:04 +10:00
Connor McLaughlin 2113405c7a CPU/Recompiler: Elide tick flush completely where possible 2021-06-13 18:26:12 +10:00
Connor McLaughlin e8ac1fca80 CPU/Recompiler: Optimize bgez zero, addr to unconditional 2021-06-13 18:26:12 +10:00
Connor McLaughlin d3d92226a5 PGXP: Further optimizations
Up to an 8% speed improvement in Racing Lagoon with CPU mode enabled.
2021-06-12 22:02:33 +10:00
Connor McLaughlin a47686a313 PGXP: Don't abort() on vertex cache alloc fail 2021-06-12 20:50:48 +10:00
Connor McLaughlin 74013a0853 CDROM: Use physical position for seek time calculations 2021-06-12 18:09:28 +10:00
Connor McLaughlin 36bfc461f9 CDROM: Refactor start/stop/second response 2021-06-12 18:09:28 +10:00
Connor McLaughlin 9d36ce757d CDROM: Simulate motor spin-up time
Fixes disc changing in Tales of Destiny II.
2021-06-11 20:47:46 +10:00
Connor McLaughlin 95247b0b5e CDROM: Don't set motor on before calc read/play time 2021-06-11 20:47:46 +10:00
Connor McLaughlin 8407610e42 GPU/Vulkan: Invalidate display framebuffer where possible 2021-06-11 20:47:46 +10:00
Connor McLaughlin 51fb23c850 GPU/OpenGL: Invalidate display framebuffer where possible 2021-06-11 20:47:46 +10:00
Connor McLaughlin aae0fb3f2b System: Support loading libps.exe (for Net Yaroze) 2021-06-11 20:47:46 +10:00
Silent e21f2644d0
Refactor SystemBootParameters ownership 2021-06-08 18:38:12 +02:00
Connor McLaughlin 350049826f Fix a bunch of compiler warnings 2021-06-04 13:14:30 +10:00
Connor McLaughlin 3cb01bf23d CDImage: Fix compilation on Linux 2021-06-01 22:04:25 +10:00
Connor McLaughlin 9aa386e96c System: Add option to load/apply image patches 2021-06-01 21:55:37 +10:00
Connor McLaughlin 179a7aea89 GPU/HW: Assume 240/288p for auto scale on start with all borders 2021-05-31 03:48:38 +10:00
Connor McLaughlin 56c08254c9 CDImage: Fix incorrect index returned for track-relative 00:02:00
Fixes some voice lines being very briefly cut off in Tomb Raider.
2021-05-27 03:48:02 +10:00
Connor McLaughlin 28b8cb5bc6 Settings: Fix mismatches between default and fallback values 2021-05-27 03:48:01 +10:00
Connor McLaughlin 7c43f5c13e CPU/CodeCache: Fix compilation on 32-bit x86 2021-05-26 02:48:46 +10:00
Connor McLaughlin baad1a4b23 CPU/Recompiler: Optimize away nops completely
35% performance improvement for PGXP CPU mode in Racing Lagoon.
2021-05-25 20:01:59 +10:00
Connor McLaughlin f4242f390b GPU/HW: Use a larger epsilon for PowerVR 2021-05-25 20:01:37 +10:00
Connor McLaughlin df26792c19 PGXP: Small optimization in memory lookup 2021-05-25 20:01:00 +10:00
Connor McLaughlin eaab0cc033 GPU/ShaderGen: Use smaller position epsilon on PowerVR 2021-05-25 18:42:21 +10:00
Connor McLaughlin 08876d132f GPU/HW: Don't generate always/never-discarding discard shaders
Might fix the PowerVR driver...
2021-05-25 13:38:33 +10:00
Connor McLaughlin 6a2b2ac7f8 System: Don't wipe out nonpersistent memory cards during game change 2021-05-24 21:24:22 +10:00
Connor McLaughlin d9a655fb41 System: Add non-persistent memory card type 2021-05-23 17:12:01 +10:00
Connor McLaughlin 98e4c181ca CDROM: Add seek speedup enhancement 2021-05-23 16:18:34 +10:00
Connor McLaughlin ff0bd7abc4 System: Add file title memory card type 2021-05-21 13:19:25 +10:00
Connor McLaughlin 245dd5b27a GPU/HW: Fix crash with oversized writes and sw readback 2021-05-20 14:14:26 +10:00
Connor McLaughlin 5d877250e9 GPU/HW: Add an option to use software renderer for readbacks 2021-05-20 13:28:36 +10:00
Connor McLaughlin 67f352339c CommonHostInterface: Add swap memory cards hotkey 2021-05-20 12:19:28 +10:00
Connor McLaughlin bced237034 MemoryCard: Sanitize game titles for file names 2021-05-20 12:19:28 +10:00
Connor McLaughlin f4fb627428 System: Increase maximum save state size (for 8MB RAM) 2021-05-20 12:19:27 +10:00
Connor McLaughlin 21d6af287e System: Fix a possible crash with runahead 2021-05-20 12:19:27 +10:00
Connor McLaughlin 437d3fbb4b GPU/SW: Set display parameters before data 2021-05-20 12:19:27 +10:00
Connor McLaughlin 08a815ad7b FullscreenUI: Make show status indicator setting local 2021-05-20 12:19:26 +10:00
ValadAmoleo 1fa4460590 Added a toggle for persistent message. (#2106)
* Added a toggle for persistent message.

Added a toggle to display settings to disable persistent messages (ff, pause) in the fullscreen UI.

* Moved toggle for the icons to advanced settings.

Moved the toggle to the advanced settings as suggested.  Renamed the option from "show persistent messages" to "show speed icons", so that it's much more specific.
2021-05-20 12:19:26 +10:00
Connor McLaughlin 8c7282046b CPU/CodeCache: Re-enable interpreter fallback heuristic 2021-05-20 12:19:25 +10:00
Connor McLaughlin acda42be16 CPU/Recompiler: Get rid of non-constant offsetofs 2021-05-20 12:19:24 +10:00
Connor McLaughlin 1ed1d641a6 CPU/Recompiler: Don't use intepreter icache when falling back
Fixes broken rendering in TOCA 2.

It has self-modifying code every frame, which gets falled back to the
interpreter, and using the interpreter's icache, which resulted in
stale code executing.
2021-05-20 12:19:23 +10:00
Connor McLaughlin 6eb0496d77 AnalogController: Don't panic on unknown configuration mode command 2021-05-20 12:19:23 +10:00
Connor McLaughlin 1e7e52718e NamcoGuncon: Only update trigger for offscreen on change 2021-05-20 12:19:21 +10:00
Connor McLaughlin d38a1c9430 AnalogJoystick: Make setter methods public 2021-05-10 13:35:58 +10:00
Connor McLaughlin 729675f497 Bus: Fix memory reserving when 8MB RAM is enabled 2021-05-08 20:36:34 +10:00
Connor McLaughlin 8ace5ff6b8 CPU/Recompiler: Fix assertion tripping in debug builds 2021-05-05 03:26:40 +10:00
Connor McLaughlin e382df0d41 Support expanding RAM to 8MB (dev console) 2021-05-03 12:43:33 +10:00
Connor McLaughlin 806fc3e918 Settings: Fix default value for VSync on Android 2021-05-01 14:49:45 +10:00
Connor McLaughlin f39a5dcf5d Settings: Fix new display aspect ratios being untranslatable 2021-05-01 13:32:37 +10:00
Connor McLaughlin 052721fffc HostInterface: Fix toggling widescreen hack while running 2021-05-01 02:56:29 +10:00
Connor McLaughlin 17a4712a3e Settings: Remove less-frequently used AR options
You can easily set this via custom ratios, or match window now.
2021-04-30 02:53:03 +10:00
Connor McLaughlin 256f272768 Support custom and match display aspect ratios 2021-04-30 02:53:03 +10:00
Connor McLaughlin f1310bf93a System: Don't discard PGXP state when runahead-rollbacking
You'll still see some glitches if you have the frame count set too high,
since you'll get imprecise values for any vertices which have moved, but
that's going to happen anyway because of the runahead in the first
place.
2021-04-28 02:51:44 +10:00
Connor McLaughlin c2916e0719 System: Render save state screenshots at fixed resolution
Fixes delays when saving state at high internal resolution.
2021-04-28 02:51:44 +10:00
Connor McLaughlin f34a048009 CPU/CodeCache: Fall back constantly-modified blocks to interpreter
Partial fix for slowdown in Colin McRae Rally 2.0.
2021-04-27 02:56:57 +10:00
Connor McLaughlin b84827b315 Pad: Don't remove card when loading state without card in slot
... unless load-devices-from-state is enabled.
2021-04-27 02:24:28 +10:00
Connor McLaughlin e842abfa8a CPU/Recompiler: Fix corrupted constant address byte/halfword writes
Fixes broken rendering in Dino Crisis.
2021-04-27 02:11:33 +10:00
Connor McLaughlin 40731b49fc Bus: Handle CPU-internal narrow writes
The full 32-bits of the GPR are used.

Fixes SoundScope in the BIOS Shell.
2021-04-26 22:08:18 +10:00
Connor McLaughlin 7fb5d6908f AnalogController: Use device state instead of save state for mode 2021-04-26 21:25:43 +10:00
Connor McLaughlin 46d19eeb1f Android: Allow opening/getting files relative to downloads directory 2021-04-24 16:19:13 +10:00
Connor McLaughlin cfb4b058d1 CPU/Recompiler: Gate debug exceptions behind memory exception flag
Libcrypt games seem to leave exceptions enabled, and it forces
interpreter for them when it's unnecessary.
2021-04-22 15:43:35 +10:00
Connor McLaughlin fe1a582909 System: Disallow booting when SBI files are missing 2021-04-22 13:40:48 +10:00
Connor McLaughlin 0a50ca3f18 CDROM: Improve CDDA report logging 2021-04-22 13:40:48 +10:00
Connor McLaughlin 2d8806c13f CPU/Recompiler: Emit DCIC exit path in far code
Fixes PS3 BIOS booting.
2021-04-22 02:58:13 +10:00
Connor McLaughlin e64f8cc2c5 CDROM: Jump to seek target on pause while seeking
Fixes music in No Fear Downhill Mountain Biking, but needs more hardware
tests to confirm the behavior here.
2021-04-21 01:44:33 +10:00
Lioncash 113b4b71de core/types: Convert GPUDownsampleMode into an enum class
Prevents some generic-sounding identifiers from being put into the
global namespace.
2021-04-19 11:16:40 -04:00
Connor McLaughlin 5af6424324 CDROM: More conservative handling of INT1-while-pending-INT3 case 2021-04-19 15:39:44 +10:00
Connor McLaughlin 3106c797d9 CPU: Reduce severity of some log statements 2021-04-19 15:19:08 +10:00
Connor McLaughlin 62360d088a CDROM: Send IRQ1 for triple buffered sectors
Fixes hangs in loading in Eliminator and Colony Wars - Vengeance.
2021-04-19 15:19:08 +10:00
Connor McLaughlin e4d5d9f049 GPU/SW: Spin for 1ms rather than immediately sleeping 2021-04-17 22:17:02 +10:00
Connor McLaughlin 03f3f0369c GameList: Reduce number of system calls when scanning 2021-04-17 21:52:26 +10:00
Connor McLaughlin e1578be20f Common/FileSystem: Add BuildRelativePath() function 2021-04-17 21:52:26 +10:00
Connor McLaughlin 1b16662f17 System: Remove unused ParseM3UFile function 2021-04-17 21:52:26 +10:00
Connor McLaughlin 2985c395df GameList: Fix uninitialized fields of PSF/EXE 2021-04-17 21:52:26 +10:00
Connor McLaughlin ff14e8aede Add JSON game database to replace dat parsing 2021-04-17 17:04:23 +10:00
Connor McLaughlin 6868ad4326 Bus: Don't reserve entire fastmem region on Android 2021-04-17 16:33:25 +10:00
Connor McLaughlin 88618bde1c GPU: Correct value of ODE bit in vblank
Fixes line streaks in Dead or Alive.
2021-04-15 01:32:08 +10:00
Connor McLaughlin 442b801d39 CPU: Implement cop0 execution and data breakpoints 2021-04-14 19:06:52 +10:00
Connor McLaughlin 22fdd80cc3 CPU/Interpreter: Out of range cop0 reads should be nops 2021-04-14 19:06:52 +10:00
Connor McLaughlin dd5277321b CPU/CachedInterpreter: Fix infinite loop when block compile fails 2021-04-14 19:06:52 +10:00
Connor McLaughlin 58f5c99100 Bus: Fix incorrect EPC for IBE exceptions 2021-04-14 19:01:43 +10:00
Connor McLaughlin 13b398ac46 GPU: Treat 0xFF commands as nops
Fixes slowdown in Soviet Strike and 40 Winks.
2021-04-13 13:18:51 +10:00
Connor McLaughlin e087e6f3a2 CPU/Recompiler: Prevent using fastmem when cache is isolated
No point even trying since it's just going to fault.
2021-04-12 02:08:56 +10:00
Connor McLaughlin 922d320523 CPU/Recompiler: Reserve whole fastmem region to avoid clashes 2021-04-11 12:42:51 +10:00
Connor McLaughlin 8df0496dc1 CDROM: Store last subq even when auto-pausing
Fixes track looping in Fighting Force PAL.
2021-04-11 12:36:52 +10:00
Connor McLaughlin 6a0bd7ee64 CDROM: Clear setloc pending on redundant read
Fixes palette corruption in Joshikousei no Houkago... Pukunpa.
2021-04-10 14:52:15 +10:00
Connor McLaughlin 327e8f3f59 GPU/OpenGL: Switch back to framebuffer blits over shader copy
Ends up being slower on Mali.
2021-04-10 14:52:15 +10:00
Connor McLaughlin 0644faa635 System: Disable memory cards when running PSFs 2021-04-08 11:34:15 +10:00
Connor McLaughlin fc9d276435 Android: Fix fast boot by default not applying without opening settings 2021-04-08 03:20:25 +10:00
Connor McLaughlin 22d664b210 GPU/ShaderGen: Move discard to end of shader
Possible workaround for this PowerVR driver issue.
2021-04-08 03:07:10 +10:00
Connor McLaughlin 4ed12bcb52 GPU/OpenGL: Support MSAA without texel/SSBO buffers 2021-04-06 02:55:00 +10:00
Connor McLaughlin 2ed482132d GPU/OpenGL: Use shader instead of framebuffer blit 2021-04-06 02:19:56 +10:00
Connor McLaughlin 2ac6f60bbb Rename cpu_detect.h to platform.h and add OS 2021-04-04 13:01:43 +10:00
Connor McLaughlin 251043f11a OSD: Add controller input display overlay 2021-04-04 04:08:42 +10:00
Connor McLaughlin bb21a062d8 Android: Add support for GunCon 2021-04-03 14:59:51 +10:00
Connor McLaughlin 924756860e HostDisplay: Support refresh rate queries on all platforms except Mac 2021-04-03 02:53:28 +10:00
Connor McLaughlin 9bf805c2af Pad: Fix crash with mismatched cards in save state 2021-04-01 02:29:59 +10:00
Connor McLaughlin c825292a93
Merge pull request #1886 from MaddTheSane/morePrintfLike
More printflike macros
2021-04-01 02:29:05 +10:00
C.W. Betts e4735bcf7a Fix string formatting warnings. 2021-03-29 13:59:22 -06:00
C.W. Betts fb7a8886f1 Add more printflike macros. 2021-03-29 13:56:19 -06:00
Connor McLaughlin df5de7730c GPU/HW: Disable depth buffering on transparent polygons
These are the most likely to be coplanar and cause issues.
2021-03-30 01:40:05 +10:00
Connor McLaughlin 1973419021 Settings: Disable region check by default 2021-03-29 00:53:15 +10:00
Connor McLaughlin ddea2818d9 Qt: Add renderer/resolution to status bar 2021-03-28 13:47:53 +10:00
Connor McLaughlin dec2d48bfe System: Fix crash when launching exe/psf 2021-03-28 13:47:53 +10:00
Connor McLaughlin 85c5b99b7a CDROM: GetID should return error when no disc 2021-03-28 13:47:52 +10:00
Connor McLaughlin 5df28eff9d System: Fix failing to load new single disc save states 2021-03-27 15:43:42 +10:00
Connor McLaughlin 5aa70cf797 Settings: Add memory card directory option 2021-03-27 15:18:29 +10:00
Connor McLaughlin 50d712c3fe CDImage: Support sub-images, use subimages for m3u 2021-03-27 15:18:29 +10:00
Connor McLaughlin 97682e09ab Pad: Don't apply input state when load-from-devices is off 2021-03-27 13:42:32 +10:00
Connor McLaughlin ff411dac2e DigitalController: Fix buttons getting broken when load-from-state on 2021-03-27 13:42:06 +10:00
Connor McLaughlin 781e8f1867
Merge pull request #1659 from piepacker/jake/multitap_8x_devices_in_state
pad: improve messaging when UI config doesn't match savestate config, and document some edge cases
2021-03-27 12:49:31 +10:00
Connor McLaughlin c502f8b0a6 GPU/Vulkan: Fix box downsampling using incorrect texture 2021-03-25 13:33:48 +10:00
Albert Liu d10365c60e System: Fix message crash for missing CD image 2021-03-22 19:17:04 -07:00
Jake Stine 96344799a0 pad: improve UI messaging when UI config doesn't match savestate config, and document some edge cases. 2021-03-21 13:25:46 -07:00
Jake Stine 6449207e04 pad: remove unreachable code block in DoState
The block in question was introduced by changesets:
  47f0720b93
  125d104df4
2021-03-21 12:31:58 -07:00
Connor McLaughlin 4dec0dee2f MemoryCardImage: Support passing import buffers in 2021-03-21 02:55:48 +10:00
Connor McLaughlin 5bbbb8d3d5 CPU/Recompiler: Use MAP_JIT for code space on Apple Silicon 2021-03-19 18:47:31 +10:00
Connor McLaughlin 663dc496bf CPU/Recompiler: Tiny optimization for div on x64 2021-03-19 18:06:25 +10:00
Connor McLaughlin 25d4060bce CDROM: Hold position at end of track, not start of next 2021-03-19 01:58:43 +10:00
Connor McLaughlin 11dcba1b68 CDImage: Use Error class for complex errors 2021-03-19 01:58:00 +10:00
Connor McLaughlin b13c51a2e2 GPU/SW: Use new 5-to-8 converters for RGBA8 display 2021-03-18 13:00:58 +10:00
Connor McLaughlin 6c05413220 GPU: Improve precision of 5-to-8 bit conversion for HW renderers
Fixes VRAM transfers being corrupted in fallback OpenGL path.
2021-03-18 13:00:58 +10:00
Connor McLaughlin 391114ccae GPU/OpenGL: Only use one upload path and clamp to max SSBO size 2021-03-18 13:00:58 +10:00
Connor McLaughlin 703715724e GPU/SW: Remove unused 5-to-8 conversion functions 2021-03-18 13:00:58 +10:00
Connor McLaughlin 4441bb1a91 CDROM: Apply volume on output not sector read
Fixes audio starting too late in Mega Man Legends.
2021-03-18 13:00:58 +10:00
Connor McLaughlin 1911a25a9f System: Add warning if CD-ROM read speedup is enabled on startup 2021-03-17 00:58:09 +10:00
Albert Liu 46ff2b553d CDImage: Add support for loading PBP images 2021-03-15 20:06:39 -07:00
Albert Liu 49c65cf5dd AnalogController: Only panic on unknown config mode commands 2021-03-14 00:40:36 -08:00
Connor McLaughlin c062cc2c26 GPU/Vulkan: Fix UBO hazard across cmdbuffers 2021-03-14 02:01:48 +10:00
Connor McLaughlin 0feb817130 ShaderGen: Disable interface blocks when using AMD OpenGL
SSAA/per sample shading is broken otherwise.
2021-03-14 02:01:48 +10:00
Connor McLaughlin d20d616823
Merge pull request #1799 from PugsyMAME/master
Updated chtdb.txt and added new types F5, 52 & 53. Cleaned up type 51
2021-03-14 02:01:20 +10:00
Connor McLaughlin 4d2747fe74
Merge pull request #1792 from CookiePLMonster/plurality-pass
Plurality for non-Qt messages
2021-03-14 01:58:14 +10:00
PugsyMAME 0fd593eb42
Updated chtdb.txt and added new types F5, 52 & 53. Cleaned up type 51
Chtdb.txt
=========
Updated the header to document all the new cheat types, added some more cheats
and cleaned up others.

New Cheat Types:-
=================
F5 - 16-Bit toggle cheat, predominatly used with the D7 cheat to enable/disable
      ASM cheats with the same key presses. See chtdb.txt for more information.

52 - Register Block Conditionals for use with the type 51 cheats. There are 128 
      sub types. See chtdb.txt for more information.
      
53 - Improved Slide Code cheat type, with support for 65536 addresses and a 16
      bit step and easily configurable step direction for value and address.
      See chtdb.txt for more information.      

Other Changes:-
===============
51 - Cleaned up - renumbered/renamed, Tested & Bugfixed. See chtdb.txt for more 
      information.
2021-03-13 15:21:40 +00:00
Silent 948a6b530b
Make TranslateString and TranslateStdString support numbers 2021-03-12 20:03:25 +01:00
Connor McLaughlin 6fa245ed61 Cheats: Fix parsing database when game has one code 2021-03-13 03:06:56 +10:00
Connor McLaughlin 82749d1ba3 GPU/HW: Increase streaming buffer sizes to 4MB/2MB 2021-03-13 03:06:56 +10:00
Connor McLaughlin 36ff345e60 Revert "GL/Context: Disable GLES3.2 on PowerVR Rogue"
Broken driver is just broken. Not much I can do when I don't have one of
these phones and the shader compiler simply says "failure" without any
line information.
2021-03-09 17:25:58 +10:00
Connor McLaughlin 4e2ee86c1a GPU/Vulkan: Fix incorrect layout in ClearDepthBuffer() 2021-03-08 17:44:10 +10:00
Connor McLaughlin fdc7066ead
Merge pull request #1717 from stenzek/ram-reads
Bus: Increase the number of ticks for RAM reads
2021-03-08 17:27:46 +10:00
Connor McLaughlin a559139105 GPU/OpenGL: Also check number of fragment storage blocks 2021-03-08 11:40:34 +10:00
Connor McLaughlin 9eae20128d GPU/OpenGL: Remove now-unnecessary geometry shader check 2021-03-08 11:37:03 +10:00
Connor McLaughlin ad7e0d48c6 ShaderGen: Try disabling GLSL ES 3.2 on PowerVR 2021-03-08 11:34:17 +10:00
Connor McLaughlin 627f147a90 Support compiling for FreeBSD 2021-03-07 19:35:02 +10:00
Connor McLaughlin ee190ef561 CDROM: Fix typo in ResetPhysicalPosition() 2021-03-07 17:34:16 +10:00
Connor McLaughlin 753dd0480f CDImage: Add support for loading mds/mdf images 2021-03-07 16:26:15 +10:00
Connor McLaughlin 320394fbd1 ShaderGen: Fix GLSL emitting location = 00 2021-03-07 02:55:37 +10:00
Connor McLaughlin 6bbb1128b6 System: Hash executable for game code when system.cnf missing 2021-03-07 02:47:00 +10:00
Connor McLaughlin ac4dd11fa0 CDImage: Add support for ECM images 2021-03-07 02:47:00 +10:00
Connor McLaughlin fd7d77bc70
Merge pull request #1736 from PugsyMAME/master
Added new cheat cheat types: C3, C4, C5, C6, D7&52
2021-03-07 02:46:50 +10:00
Connor McLaughlin 2aea58d056 HostDisplay: Add method to render screenshots at window size 2021-03-06 02:21:27 +10:00
Connor McLaughlin 757bef7b6d Common/D3D11: Stride should be byte width 2021-03-06 02:21:27 +10:00
Connor McLaughlin bf5f53e1d1 CPU/CodeCache: Don't choke on indirect -> direct branch in delay slot 2021-03-06 02:21:27 +10:00
Albert Liu 50a78489f2 MemoryCardImage: Implement save file importing and exporting 2021-03-04 20:50:20 -08:00
Connor McLaughlin 521ade025c System: Make hardware renderer init failure an OSD message 2021-03-05 01:05:16 +10:00
Connor McLaughlin c8387cb038 Cheats: Fix master enable not having any effect 2021-03-05 00:53:30 +10:00
Connor McLaughlin 0cbba59e88 GPU/ShaderGen: Add readonly/restrict qualifier to VRAM write SSBO 2021-03-04 13:08:32 +10:00
PugsyMAME 74b2b2ddfe
Added new cheat cheat types: C3, C4, C5, C6, D7&52
C3-C7 are variants of C0
D7 is a BIT based joker to rule them all. It includes the analog sticks (@ggrtk thanks for adding the analog reading capability). Also added the facility of making dual single key joker by varying the amount of time a button is held down.
51 is a complicated beast that I still need to document

* C3XXXXXX 00YY - 8-Bit Master Code, if ($XXXXXX) is less than 0xYY poke all
  00000000 FFFF       following codes for rest of the cheat or until it reaches the
                      00000000 FFFF line.
* C4XXXXXX 00YY - 8-Bit Master Code, if ($XXXXXX) is greater than 0xYY poke all
  00000000 FFFF       following codes for rest of the cheat or until it reaches the
                      00000000 FFFF line.
* C5XXXXXX YYYY - 16-Bit Master Code, if ($XXXXXX) is less than 0xYYYY poke all
  00000000 FFFF       following codes for rest of the cheat or until it reaches the
                      00000000 FFFF line.
* C6XXXXXX YYYY - 16-Bit Master Code, if ($XXXXXX) is greater than 0xYYYY poke all
  00000000 FFFF       following codes for rest of the cheat or until it reaches the
                      00000000 FFFF line.
* D7PQRRRR TTYYYYYY - 24-Bit Universal BIT Joker, OR the hex values to
                     combine into a multi-button joker. Because it is BIT
                     based it is better than D4, D5, D6 or using a D0 joker as you
                     do not need to worry about any other buttons being
                     pressed at the same time and you get both analog
                     sticks for extra functionality. Note if you want to use it
                     just as a enhanced joker just use D7000000 00YYYYYY when
                     the buttons/directions are pressed or D7100000 00YYYYYY
                     when you want to ensure they are not all pressed.
                     QRRRR TT provides the capability of only activating the
                     following codes after the keys have been held in for a set
                     amount of frames. 003C = 60 Frames = 1 Second at 100% Speed
                        YYYYYY = 000001 L2 Button
                        YYYYYY = 000002 R2 Button
                        YYYYYY = 000004 L1 Button
                        YYYYYY = 000008 R1 Button
                        YYYYYY = 000010 Triangle Button
                        YYYYYY = 000020 Circle Button
                        YYYYYY = 000040 X Button
                        YYYYYY = 000080 Square Button
                        YYYYYY = 000100 Select Button
                        YYYYYY = 000200 L3 Button
                        YYYYYY = 000400 R3 Button
                        YYYYYY = 000800 Start Button
                        YYYYYY = 001000 Up (Digital)
                        YYYYYY = 002000 Right (Digital)
                        YYYYYY = 004000 Down (Digital)
                        YYYYYY = 008000 Left (Digital)
                        YYYYYY = 010000 Up (Right Thumb)
                        YYYYYY = 020000 Right (Right Thumb)
                        YYYYYY = 040000 Down (Right Thumb)
                        YYYYYY = 080000 Left (Right Thumb)
                        YYYYYY = 100000 Up (Left Thumb)
                        YYYYYY = 200000 Right (Left Thumb)
                        YYYYYY = 400000 Down (Left Thumb)
                        YYYYYY = 800000 Left (Left Thumb)
                      NOTE: The 0s in the code are reserved for possible
                            future use.
                       TT=Temp Internal Variable 00-FF, 00 will mean it wont be
                            used, if it's not 00 do not use the same value for
                            jokers using different keypress combinations for
                            the same game.
                       P = 0 or 1. 0 = Check ALL YYYYYY Bits are ON
                                   1 = Check ALL YYYYYY Bits are OFF
                       Q = Frame Comparison 0 = Dont do any comparison
                                            1 = Check that the button combination
                                                has been held down for exactly
                                                RRRR frames.
                                            2 = Check that the button combination
                                                has been held down for more than
                                                RRRR frames.
                                            3 = Check that the button combination
                                                has been held down for less than
                                                RRRR frames.
                                            4 = Check that the button combination
                                                has been held down for anything
                                                but RRRR frames.
                       RRRR = 0000 to FFFF, Frame Comparison Value
                      It will then poke all following codes for rest of cheat
  00000000 FFFF       or until it reaches the 00000000 FFFF line.
2021-03-03 23:06:08 +00:00
Connor McLaughlin 21e53016d7 GPU/Vulkan: Fix possible misalignment in VRAM writes 2021-03-04 01:36:43 +10:00
Connor McLaughlin 05ac272c3f GameSettings: Add multitap mode 2021-03-03 21:45:03 +10:00
Connor McLaughlin c58227752d CommonHostInterface: Move save state on exit logic to base class 2021-03-03 01:14:05 +10:00
Connor McLaughlin 910d3cdbb4 GPU/OpenGL: Make GL4.3 a prereq for binding layout
This was incorrectly checking for GL4.2, but explicit uniform/attribute
location isn't supported until GL4.3 without the extension.
2021-03-02 15:18:02 +10:00
Albert Liu 3482313e2f Multitap: Add option to enable only on port 2 2021-03-01 14:59:59 -08:00
Connor McLaughlin c7a4efc395 System: Don't strip subdirectories when reading exe
Fixes getting hashes for cheevos in games such as Metal Gear Solid -
Integral.
2021-03-02 01:48:31 +10:00
Connor McLaughlin 475f7ccd1f Bus: Increase the number of ticks for RAM reads 2021-03-02 00:46:29 +10:00
Connor McLaughlin 520b64e711 CPU/Recompiler: Don't zero read-only bits in mtc0
Fixes memory card error in Digimon Digital Card Battle.
2021-02-28 15:06:24 +10:00
Connor McLaughlin 97cf3f770e GPU: Fix previous frame adaptive downsample leaking in 2021-02-28 04:03:48 +10:00
Connor McLaughlin 49345a300c Settings: Fix display stretch disabled by linear filtering 2021-02-27 21:58:47 +10:00
Connor McLaughlin 5a0e4f85dd Settings: Enable cheat loading by default 2021-02-27 16:21:36 +10:00
Connor McLaughlin e17d37b8bc HostDisplay: Add stretch option 2021-02-27 16:21:36 +10:00
Connor McLaughlin f18babb97e Settings: Remove redundant break in IsMultitapEnabledOnPort 2021-02-27 16:21:36 +10:00
Albert Liu f9dc1a7e80 Core: Add Multitap support 2021-02-26 21:04:12 -08:00
Albert Liu b6301e1a43 Settings: Always save controller type to settings interface
Fixes Controller1 defaulting to DigitalController type on startup in
FullscreenUI when user had previously shut down the program with
Controller1 set to None.
2021-02-26 09:37:53 -08:00
Connor McLaughlin 0ec2c87a0e Implement RetroAchivements 2021-02-27 00:44:53 +10:00
Albert Liu 3ca3a78b58 Controller: Fix invalid SettingInfos causing crash in FullscreenUI 2021-02-24 17:23:07 -08:00
Connor McLaughlin f023c1bcde FullscreenUI: Add 'Pause on Menu' option 2021-02-25 02:20:33 +10:00
Connor McLaughlin 8318cdb3c1 Move ImGui setup to common, and enable fullscreen UI in Qt 2021-02-24 01:22:03 +10:00
Connor McLaughlin 1fc53ff622 CommonHostInterface: Move settings interface pointer to base class 2021-02-24 01:21:43 +10:00
Connor McLaughlin 229ed5a852 System: Add helpers for reading executables off discs 2021-02-24 01:21:43 +10:00
Connor McLaughlin 7501e89b7a System: Add path/image to game change notification 2021-02-24 01:21:43 +10:00
Connor McLaughlin 91a7775d68 BIOS: Fix size validation for PSExe 2021-02-22 12:22:28 +10:00
Connor McLaughlin ae49215251 Timers: Better predict next event time
Significantly improves performance in Fromage.
2021-02-22 12:21:44 +10:00
Albert Liu 71d748ef04 AnalogController: Fix regression in analog mode toggling 2021-02-21 16:12:41 -08:00
Albert Liu 329e8317b4 Controller: Always check for access byte 2021-02-21 15:20:31 -08:00
Connor McLaughlin 30bcf280d4 Revert "CPU/Recompiler: Use fastmem for constant loads from RAM mirrors in LUT mode"
This reverts commit 67fe97a17c.

Misread the logic here - it's masked anyway, so it's fine.
2021-02-19 02:25:27 +10:00
Connor McLaughlin 24c2165bb3 GPU: Allow closing window/app to interrupt shader compilation 2021-02-19 01:48:44 +10:00
Connor McLaughlin 1b544ae350 GameList: Slight optimization to scanning 2021-02-19 01:37:56 +10:00
Connor McLaughlin cacf12c209 FileSystem: Migrate component extractors to std::string_view 2021-02-19 01:37:56 +10:00
Connor McLaughlin d3717e66c3 CPU/Recompiler: Handle self-modifying code within same block
Fixes Spyro 2 and 3 PAL with recompiler.
2021-02-19 01:37:56 +10:00
Connor McLaughlin 67fe97a17c CPU/Recompiler: Use fastmem for constant loads from RAM mirrors in LUT mode 2021-02-19 01:37:56 +10:00
Connor McLaughlin db4f521d92 System: Make some boot error messages translatable 2021-02-18 02:08:48 +10:00
Connor McLaughlin 209827b67c PGXP: Compute PSX values on demand for CPU instructions
Generates shorter code for the recompiler.
2021-02-18 02:08:48 +10:00
Connor McLaughlin 54f5c737ce PGXP: Inline some more functions 2021-02-18 02:08:48 +10:00
Connor McLaughlin 46dbea509a GPU: Fix adaptive downsampling regression 2021-02-18 02:08:47 +10:00
Connor McLaughlin 1b881fc60b PGXP: Combine instr and rtVal parameters for CPU_LUI 2021-02-18 02:08:47 +10:00
Connor McLaughlin bc021ddfd9 CPU/Recompiler: Implement PGXP CPU mode 2021-02-18 02:08:47 +10:00
Connor McLaughlin 0bfa1bf873 PGXP: Fix MFC0/MTC0
Doubt it'll change anything.
2021-02-18 02:08:47 +10:00
Connor McLaughlin a722fd6b53 PGXP: Make mult/div compute results instead of parameters
Lets us call it from the recompiler.
2021-02-18 02:08:47 +10:00
Connor McLaughlin 33a5617ea3 PGXP: Remove some unused parameter from M{F,T}{HI,LO} 2021-02-18 02:08:47 +10:00
Connor McLaughlin efecb44344 PGXP: Combine a couple of instructions 2021-02-18 02:08:47 +10:00
Connor McLaughlin 09805c1f80 FullscreenUI: Fix controller navigation in disc change 2021-02-18 02:08:47 +10:00
Connor McLaughlin d8ce98a1e2 Bump shader cache version 2021-02-14 19:25:14 +10:00
Connor McLaughlin 2c1999e622 CDROM: Simulate holding position for GetlocP
Fixes lockups in Tomb Raider.
2021-02-14 18:36:21 +10:00
Connor McLaughlin 0d13e1013d GPU: Fix incorrect dither offset [3][0]
Fixes dots in sky in Silent Hill.
2021-02-14 18:36:21 +10:00
Connor McLaughlin 5a66639d78 HostDisplay: Add virtual method for getting resolutions 2021-02-14 18:36:21 +10:00
Connor McLaughlin c6c67b7b27 ImGui: Remove close button from debug windows
They can be closed by unchecking the setting instead, and it stays in
sync with the config this way.
2021-02-12 01:01:30 +10:00
Connor McLaughlin de688615ff Qt: Add Clear and Reset buttons to cheat manager 2021-02-12 01:01:30 +10:00
Connor McLaughlin bfa2b72e08 Fix a couple of name typos 2021-02-11 02:17:25 +10:00
Connor McLaughlin 6ab926ab28 System: Make the SBI check a confirm dialog instead of message 2021-02-11 02:04:47 +10:00
Connor McLaughlin ef97131c9d Timers: Handle target = 0 case
Fixes Super Gals! Kotobuki Ran Special - Ikemen Get You Gals Party
hanging at boot.
2021-02-09 01:01:36 +10:00
Connor McLaughlin c043643c4d GPU/HW: Fix typo in –IncludeVRAMDirtyRectangle() name 2021-02-07 20:00:16 +10:00
Connor McLaughlin 4a240958ff GPU/HW: Work around VRAM copy glBlitFramebuffer broken in Mali 2021-02-07 19:59:50 +10:00
Connor McLaughlin a77edc6436 Settings: Default console logging on Android to on 2021-02-07 03:27:37 +10:00
Connor McLaughlin 837fb6128b GPU/HW: Fix mask bit when rendering with transparency and no DSB
Fixes some sprites in Bloody Roar on Mali GPUs.
2021-02-06 20:14:28 +10:00
Connor McLaughlin c03c4cb95a GPU: Elide VRAM copies when they will have no effect
Can provide a performance boost in most games because of the redundant
copy they issue once a frame.
2021-02-06 19:20:14 +10:00
Connor McLaughlin 701edb335a Various warning fixes 2021-02-06 19:19:55 +10:00
Connor McLaughlin f943aa0489
Merge pull request #1582 from MaddTheSane/printfFixes
Logging fixes
2021-02-05 11:47:38 +10:00
C.W. Betts 662d6e9711 Fix possible log formatting errors. 2021-02-04 17:54:51 -07:00
C.W. Betts 2c2af6c751
Update shadergen.cpp
Quiets a warning in Clang about copying variables.

Actual warning text: Loop variable '[qualifiers, name]' of type 'const std::__1::pair<const char *, const char *>' creates a copy from type 'const std::__1::pair<const char *, const char *>'
2021-02-04 13:05:59 -07:00
Connor McLaughlin 626b2ecec1 GPU/Vulkan: Fix a possible layout violation when displaying
Happened in some games, e.g. Driver.
2021-02-02 00:52:23 +10:00
Connor McLaughlin 43bb69fb6b GPU/SW: Fix 576-line scanout of PAL games 2021-02-01 18:39:36 +10:00
Connor McLaughlin 904680f0df Settings: Make integer and linear upscaling mutually exclusive 2021-02-01 18:39:15 +10:00
Connor McLaughlin 23e102b90a GPU: Make display texture 720x576 instead of 1024x512
Some PAL games render in the full permissable 576 height, not 512.
2021-02-01 01:10:32 +10:00
Connor McLaughlin 85b4a02f20 Fix Android build 2021-01-31 17:28:37 +10:00
Connor McLaughlin 55a1d0437d System: Display message on media change 2021-01-31 17:10:27 +10:00
Connor McLaughlin 98b4101cd7 Settings: Expose Save() method to interface 2021-01-31 17:10:27 +10:00
Connor McLaughlin 9d08f2e277 Settings: Fix show resolution not correctly saving to file 2021-01-31 17:10:27 +10:00
Connor McLaughlin e697d9aa33 HostDisplay: Move imgui context creation to base class 2021-01-31 17:10:27 +10:00
Connor McLaughlin ef7d135492 GPU: Fix missing sync when hblank is pending 2021-01-31 16:39:51 +10:00
Connor McLaughlin 9d80c48d6f CPU: Fix icache missing from save state 2021-01-31 16:39:51 +10:00
Albert Liu 2938c946f9 AnalogController: Improve accuracy of rumble configuration 2021-01-30 00:53:43 -08:00
Albert Liu c9c2f1bd21 AnalogController: Handle more config mode 0x46 and 0x47 cases 2021-01-29 23:50:45 -08:00
Connor McLaughlin 3c2b11fccb System: Don't log rewind pending flag when disabled 2021-01-29 01:27:32 +10:00
Connor McLaughlin 84c30703b2 Settings: Disable interlacing by default
The games which require it are auto-disabled by gameini.
2021-01-28 23:52:25 +10:00
Connor McLaughlin 4bb3fb48f9 System: Add a new throttler/pacer which can catch up on lost time
This can result in worse frame pacing, so if you have a decent machine
you'll probably want to turn on "display all frames" in display
settings.

But, it's sadly needed for Android.
2021-01-28 21:04:23 +10:00
Connor McLaughlin 16a32bf696 Qt: Simplify runahead settings 2021-01-26 03:38:31 +10:00
Connor McLaughlin 1b16ba3d98 Warning fixes 2021-01-26 03:38:31 +10:00
Connor McLaughlin e79dff1731 System: Use hybrid sleep on Android 2021-01-26 03:38:31 +10:00
Connor McLaughlin 24dd49e05d GPU: Fix runahead with MSAA enabled in D3D11/Vulkan 2021-01-26 03:22:23 +10:00
Connor McLaughlin b7752ff30b CDROM: Update position when pausing while seeking instead of erroring
This was causing freezes in FF7 - needs more research.
2021-01-25 01:49:35 +10:00
Connor McLaughlin b3ce2b21c0 System: Prevent using both runahead and rewind concurrently 2021-01-25 01:15:46 +10:00
Connor McLaughlin 3f96473fb5 System: Reuse existing texture/buffers for runahead/rewind 2021-01-25 01:15:46 +10:00
Connor McLaughlin e01d66d18e System: Implement runahead 2021-01-25 01:15:46 +10:00
Connor McLaughlin 516d685dd0 System: Add memory-only save states and rewind 2021-01-25 01:15:45 +10:00
Connor McLaughlin 6c6fdeb15e HostDisplay: Make textures have levels/layers/samples attributes 2021-01-24 20:41:40 +10:00
Connor McLaughlin b62f31fd96 System: Use region from exe/psf when booting 2021-01-24 17:37:09 +10:00
Connor McLaughlin 253b115b11 PSFLoader: Detect region from exe 2021-01-24 17:37:09 +10:00
Connor McLaughlin 10135e08a2 PSFLoader: Support loading minipsfs/libraries 2021-01-24 17:37:09 +10:00
Connor McLaughlin 4433197665 CPU/Recompiler: Fix hang in AArch32/armv7 2021-01-21 13:20:02 +10:00
Connor McLaughlin 4e802e90ca SPU: Move voice key off/on outside sample loop
Should be a very tiny performance boost with no difference in behaviour.
2021-01-20 12:32:37 +10:00
Connor McLaughlin 8c8f29c047 CDROM: Double audio FIFO low watermark size
Gives a better chance to catch up in case of desyncs.
2021-01-20 12:09:44 +10:00
Connor McLaughlin 3c012ec6ef SPU: Consider partial ticks when generating pending samples
Fixes hitches in opening FMV in Soul Blade (Europe).
2021-01-20 12:05:06 +10:00
Connor McLaughlin a927bfbe50 GPU/HW: Flush after each primitive for B-F transparency
Slow, but necessary for some games such as Suikoden II, where it draws
multiple polygons to the same area on screen with different transparency
modes.
2021-01-20 01:08:36 +10:00
Connor McLaughlin d4f52f1ec7 GTE: Force inline a few of the helper functions
Tiny performance improvement.
2021-01-19 00:07:26 +10:00
Connor McLaughlin 914b9bf738 SPU: Drain transfer FIFO when cancelling transfer
The busy bit got stuck on otherwise, which broke the Spanish translation
of Vagrant Story.
2021-01-18 20:43:10 +10:00
Connor McLaughlin 699d599d00 GPU: Clear display when disabling DAC and interlaced
Fixes old output showing up briefly when it's re-enabled.
2021-01-18 03:28:14 +10:00
Connor McLaughlin 29690c4635 GPU/SW: Fix interlaced output getting corrupted when size changes
Fixes glitches in screen when tilting table in Pro Pinball.
2021-01-17 02:45:13 +10:00
Connor McLaughlin e81df6bddd Settings: Disable host refresh rate sync by default 2021-01-16 02:56:04 +10:00
Connor McLaughlin 02948f988d CDROM: Return 0x00 on response FIFO overread
Fixes CyberSled hanging on boot.
2021-01-14 01:51:01 +10:00
Connor McLaughlin ffa3744b3b Settings: Add 20:9 display aspect ratio 2021-01-14 00:45:46 +10:00
Connor McLaughlin d44de3a9dc System: Use SetWaitableTimer() for throttling on Windows 2021-01-14 00:40:25 +10:00
Connor McLaughlin 93959a9d88 CPU: Fix crash with some block cycle counts on ARM
Fixes crash in Capcom vs SNK Pro.
2021-01-13 20:19:24 +10:00
Connor McLaughlin 2b5cfb272c Qt: Add dump VRAM and SPU RAM actions 2021-01-13 19:24:41 +10:00
Connor McLaughlin b5ffbfe826 Qt: Fix audio sliders not applying correctly 2021-01-13 02:37:04 +10:00
Connor McLaughlin a0a24c7752 GPU/Vulkan: Only update sample texture when render area dirty
Fixes crash when using Show VRAM in some games with Vulkan.
2021-01-12 02:19:23 +10:00
Connor McLaughlin 13cba122ef HostDisplay: Move Windows fallback for refresh rate query to HostInterface 2021-01-11 15:24:38 +10:00
Connor McLaughlin fd166a4485 ShaderCache: Add a data version field
We can increment this to prevent people's shader caches from growing too
large with shader changes.
2021-01-11 15:24:38 +10:00
Connor McLaughlin 97971464d1 GPU/ShaderGen: Remove texcoord offset
Doesn't seem to be needed anymore, and causes issues in some games (e.g.
flickering polygons in Evil Dead)
2021-01-11 15:12:16 +10:00
Connor McLaughlin 43d01776dc HostInterface: Add "Sync To Host Refresh Rate" option 2021-01-11 03:50:44 +10:00
Connor McLaughlin bb572741ae HostDisplay: Add GetHostRefreshRate() function
Only implemented in Windows for now.
2021-01-11 03:50:13 +10:00
Connor McLaughlin ce965e89ca Qt/Android: Add help text for resampling, turn on by default 2021-01-11 02:27:14 +10:00
Connor McLaughlin 54f5563321 Qt: Add turbo speed setting 2021-01-11 01:57:10 +10:00
Connor McLaughlin a5f9aa11e1 Settings: Add audio resampling when running at non-standard speed 2021-01-11 01:14:32 +10:00
Connor McLaughlin 54c7fc6b08 AudioStream: Support resampling input 2021-01-11 01:14:32 +10:00
Connor McLaughlin 19032750b4 CDROM: Don't treat no-region discs as audio CDs
Fixes some homebrew games not booting.
2021-01-11 01:05:21 +10:00
Connor McLaughlin 11992bde4e TimingEvents: Use function pointers instead of std::function 2021-01-10 01:45:07 +10:00
Connor McLaughlin 15652b4c1f SPU: Fix a few cases where SPU interrupts weren't firing 2021-01-10 01:39:21 +10:00
Connor McLaughlin df98a0b04e CPU/Recompiler: Fix incorrect speculative byte/halfword reads
Fixes crash on boot in Monkey Magic.
2021-01-10 01:38:35 +10:00
Albert Liu 5ff3299384 Controller: Add method for reading analog input bytes 2021-01-07 15:04:23 -08:00
Connor McLaughlin 419726f4cc Remove libretro core - core will now be maintained by libretro
libretro have agreed to take over maintenance of the core.

Please see their fork at https://github.com/libretro/duckstation if you
wish to continue to use it.
2021-01-08 01:37:59 +10:00
Connor McLaughlin 24c373245e MemoryCard: Make formatting OSD message translatable 2021-01-07 12:15:57 +10:00
Connor McLaughlin f832dca975 Bus: Don't force inline EXP1/EXP2 access 2021-01-06 01:02:30 +10:00
Connor McLaughlin f3cdfe97a7 Bus/EXP2: Support openbios putc address 2021-01-06 00:56:35 +10:00
Connor McLaughlin 845cd37835 DMA: Determine slice size based on whether pad is transmitting
Plenty of games seem to suffer from this issue where they have
a linked list DMA going while polling the controller. Using a
too-large slice size will result in the serial timing being off,
and the game thinking the controller is disconnected. So we
don't hurt performance too much for the general case, we reduce
this to equal CPU and DMA time when the controller is
transferring, but otherwise leave it at the higher size.
2021-01-06 00:15:42 +10:00
Connor McLaughlin 98a4e59f52 Qt: Fix some strings not being translatable 2021-01-06 00:15:42 +10:00
Connor McLaughlin a6e1b3c4ad
Merge pull request #1389 from ggrtk/ps3-bios-size
BIOS: Add check for older BIOS from PS3
2021-01-05 17:59:57 +10:00
Connor McLaughlin cdefcf7359 HostInterface: Log when all enhancements are disabled by config 2021-01-05 17:58:55 +10:00
Albert Liu 79012d5288 BIOS: Add check for older BIOS from PS3
Same revision number as newer PS3, but different file size and 512KB
hash.
2021-01-04 23:54:42 -08:00
Connor McLaughlin 8f5c20bdf5 BIOS: Improve robustness of BIOS searching
Always prefer a known BIOS image over an unknown image. Hopefully this
will stop people getting crashes on startup due to other files in the
BIOS directory confusing it.
2021-01-05 12:22:18 +10:00
Connor McLaughlin 5cd261a5b2 BIOS: Only match PS1 and PS2 BIOS images exactly 2021-01-05 12:22:13 +10:00
Connor McLaughlin 73f6521452 SPU: Check voice addresses on IRQ re-enable
NASCAR 2001 music depends on the IRQ firing multiple times, when the
voice address is still set to the IRQ address.
2021-01-05 00:46:41 +10:00
Connor McLaughlin e3262fc0a4 CPU: Compile fix for debug builds 2021-01-05 00:46:41 +10:00
Connor McLaughlin 35fdae0d95
Merge pull request #1372 from ggrtk/analog-controller-refactor
AnalogController: Refactor data transfer implementation
2021-01-05 00:45:37 +10:00
Connor McLaughlin affffca3da GPU/HW: Set max resolution scale to 32
The UI is intentionally left at 16x. Going too high **will** make you
run out VRAM and your system will start acting strangely. But for those
people who really want to do it, you can go 32x in Vulkan with the SDL
frontend, or by setting it in the ini.
2021-01-04 03:11:14 +10:00
Connor McLaughlin 9ff8130e40 fixup! CPU: Make trace-to-file toggleable at runtime and in release builds 2021-01-04 03:11:14 +10:00
Connor McLaughlin bf1d51b5d8 CPU: Make trace-to-file toggleable at runtime and in release builds 2021-01-04 03:11:14 +10:00
Albert Liu 04884257d6 AnalogController: Refactor data transfer implementation 2021-01-03 09:09:49 -08:00
Connor McLaughlin 0de34d7bf7 DMA: Increase precision for large transfers
Also gets rid of the delay on the GPU side for writing to VRAM (doesn't
make sense), and it's not needed since we slice the block transfers now.

Fixes palette corruption in Vigilante 8, and missing rider in
Championship Motocross 2001 featuring Ricky Carmichael.
2021-01-03 16:11:42 +10:00
Connor McLaughlin c9ef3ec1a3 DMA: Clear state on shutdown
Fix a rare crash where the GPU starting after a second boot accesses
uninitalized DMA fields.
2021-01-03 14:48:02 +10:00
Connor McLaughlin 2ec26e54b7 GPU/HW: Disable downsampling when using 24-bit display
It's dropped to 1x first anyway.
2021-01-03 12:18:21 +10:00
Connor McLaughlin 40257e5b20 GPU/HW: Don't set m_pgxp_depth_buffer when PGXP is disabled
Fixes text corruption in Castlevania when PGXP is disabled and depth
buffer is enabled.
2021-01-01 17:49:20 +10:00
Connor McLaughlin c9240eea72 CPU/Recompiler: Use PGXP interpreter for fallback
Fixes holes in geometry with PGXP enabled in Threads of Fate.
2021-01-01 17:16:55 +10:00
Connor McLaughlin 4e87b30b40 System: Skip throttler phase reset when running at <100% 2021-01-01 14:08:09 +10:00
Connor McLaughlin 04a187afb2 CDROM: Fix read error/unlicensed flag getting set on all discs
Regression from 75aa52ab06.
2021-01-01 03:00:16 +10:00
Connor McLaughlin 75aa52ab06 CDROM: Fail reads immediately for audio/unlicensed CDs
Fixes first track being unavailable on audio CDs in Vib-Ribbon.
2021-01-01 01:38:14 +10:00
Connor McLaughlin 9294bf6be3 CDROM: Keep target location even after failed seeks 2021-01-01 01:37:51 +10:00
Connor McLaughlin 187de65f50 CDROM: Reset disc position to start after switching discs 2021-01-01 00:01:13 +10:00
Connor McLaughlin 5690aef057 CDROM: Send seek error when read+seeking to audio sector
Fixes hang in Vib-Ribbon when using an audio CD.
2020-12-31 03:19:51 +10:00
Connor McLaughlin f911e90e17 CDROM: Hopefully fix crash in debug window when reading lead-out 2020-12-31 02:10:49 +10:00
Connor McLaughlin 02377b1a92 CPU/CodeCache: Fix possible crash on invalidate->recompile->overflow 2020-12-31 02:10:49 +10:00
Connor McLaughlin 3cb2cd8235 GPU: Add adaptive and box downsampling modes 2020-12-30 17:41:39 +10:00
Connor McLaughlin 59e8363075 D3D11: Support mipmaps in wrapper textures 2020-12-30 17:39:40 +10:00
Connor McLaughlin 68ce959d70 Settings: Add option to temporarily disable all enhancements 2020-12-30 17:39:29 +10:00
Connor McLaughlin 40f241dde3 PlaystationMouse: Fix incorrect translation context for help 2020-12-30 17:03:59 +10:00
PugsyMAME 3284a18ad3
Add new Cheat Type F4, Find & Replace Bytes (#1345)
* Add new Cheat Type F4, Find & Replace Bytes

Also knows as 'AOB' apparently. Information about how it works will be in the next chtdb.txt header or you can read/ask about it on the discord channel.

* Add new Cheat Type F4, Find & Replace Bytes 

Also knows as 'AOB' apparently. Information about how it works will be in the next chtdb.txt header or you can read/ask about it on the discord channel.

* Added error trapping for cheat type F4

As suggested
2020-12-30 00:55:49 +10:00
Connor McLaughlin a894b295b6 CPU/CodeCache: Fix assertion failure when patching in double branch 2020-12-29 22:49:52 +10:00
Albert Liu 11fbf26045 HostDisplay: Use floats internally for draw rectangle calculation 2020-12-29 01:33:41 -08:00
Albert Liu e0f3a4f17b HostDisplay: Calculate draw rectangle in terms of horizontal scale 2020-12-29 01:33:40 -08:00
Albert Liu b824844043 HostDisplay: Fix framebuffer screenshot scaling 2020-12-29 01:33:40 -08:00
Albert Liu d9096ca12d BIOS: Prevent patching incompatible BIOSes 2020-12-27 16:14:28 -08:00
Albert Liu 0e2276fc7a BIOS: Add support for loading PS2 BIOSes 2020-12-27 15:32:41 -08:00
Albert Liu 4db29f9399 HostInterface: Check all console regions when looking for any BIOS 2020-12-27 15:32:41 -08:00
Connor McLaughlin f9ac25f2b8 CDROM: Actually fix playing tracks 10+ 2020-12-28 01:40:38 +10:00
Connor McLaughlin c04d6f9ef8 CDROM: Play command track should be BCD
Fixes tracks >= 10 in BIOS CD player, maybe games?
2020-12-28 01:17:41 +10:00
Connor McLaughlin 8bb5ff47eb PlaystationMouse: Add option to use relative mode 2020-12-28 00:37:04 +10:00
Connor McLaughlin ca42d027ac Qt: Implement relative mouse mode 2020-12-28 00:37:04 +10:00
Albert Liu 2a1bf9925a Qt: Make Auto (Game Native) aspect ratio string translatable 2020-12-27 00:57:55 -08:00
Connor McLaughlin cbcbb675d6 System: Fix pause on start 2020-12-27 00:54:53 +10:00
Connor McLaughlin 3cd3d1c09d Qt: Fix opening debugger when system already paused 2020-12-27 00:54:53 +10:00
Connor McLaughlin 702ed21207 HostDisplay: Add threaded presentation for Vulkan renderer
Can add a significant speedup for fast forward. Automatically disabled
when vsync is enabled.
2020-12-27 00:54:53 +10:00
Connor McLaughlin 68dc052432 Bus: Don't leak shared memory when starting->stopping->starting 2020-12-27 00:50:08 +10:00
Connor McLaughlin e71f6aa80a GPU/HW: Improve round-trip accuracy of RGBA5551->RGBA8
Fixes smudging in some games with true colour rendering enabled.
2020-12-27 00:50:08 +10:00
Connor McLaughlin 84181e2a1d CheatS: Support importing/parsing EPSXe cheat files 2020-12-27 00:45:34 +10:00
Connor McLaughlin cc9c3ea41f Cheats: Fix assertions tripping on unicode characters 2020-12-27 00:45:34 +10:00
Albert Liu 12bc7a7805 MemoryCardImage: Fix multi-block file reads 2020-12-25 20:01:21 -08:00
Connor McLaughlin a69474ea97 TextureReplacements: Use x86 dispatch for xxhash 2020-12-26 00:47:24 +10:00
Connor McLaughlin af3b2b0e15 Build: Fix xxhash on non-Windows 2020-12-26 00:47:24 +10:00
Connor McLaughlin d187c8b08d GPU/HW: Fix a potential case where depth isn't cleared on viewport change 2020-12-26 00:47:03 +10:00
Connor McLaughlin a385573672 Qt: Add texture replacement options to advanced settings 2020-12-26 00:47:03 +10:00
Connor McLaughlin 8db961042a GPU: Support replacing VRAM writes with new textures 2020-12-26 00:47:03 +10:00
Connor McLaughlin ecbfff3c60 HostDisplay: Fix incorrect extension check for other formats 2020-12-26 00:47:03 +10:00
Michael Forney 64c0ca14a3 System: Fix some bugs in GetTitleForPath
The previous implementation had a few issues in certain edge cases:
- If the path contained no '/' or '\', then the string_view constructor
  is called with a count that exceeds the length of the string
  (effectively `title_end - (char *)0`, which is undefined behavior,
  at least in C).
- If the only '/' was the filesystem root, the last character of
  the title was truncated, and the '/' remained. For example,
  "/title.bin" resulted in "/titl".
- At least in C, it is undefined behavior to use the the < operator
  with a null pointer, which is done in std::max if the path did
  not have both '/' and '\'.

The first issue results in a std::bad_alloc exception on my machine.
2020-12-26 00:47:02 +10:00
Connor McLaughlin 3f410ebbac Cheats: Add additional code types from @PugsyMAME 2020-12-26 00:47:02 +10:00
Jean-Baptiste Boric abd2399aaf Core: Implement GDB protocol 2020-12-26 00:47:02 +10:00
Jean-Baptiste Boric 9b40c8ffa6 Settings: Add GDB server settings 2020-12-26 00:47:02 +10:00
PugsyMAME c0cc0a371b Fixed Slide Code cheat type
Address increment is a u8 and value increment is a u16. The changes will make this work correctly:-

50000AA4 FFFF
801CC760 0400
which is a example slide code representing:-
801CC760 0400
801CC804 03FF
801CC8A8 03FE
801CC94C 03FD
801CC9F0 03FC
801CCA94 03FB
801CCB38 03FA
801CCBDC 03F9
801CCC80 03F8
801CCD24 03F7
2020-12-25 13:53:28 +10:00
Connor McLaughlin aa1543271e GPU: Support emulating a depth buffer from PGXP depth values 2020-12-23 01:39:49 +10:00
Connor McLaughlin ca84925ff8 HostDisplay: Support screenshotting 16-bit display formats 2020-12-22 03:24:51 +10:00
Albert Liu 189656cbc4 CommonHostInterface: Fully clear controller section before loading profile 2020-12-22 03:24:51 +10:00
Connor McLaughlin d5d9cb623d GPU/Vulkan: Fix possible framebuffer destroy-while-in-use 2020-12-22 00:56:55 +10:00
Margen67 b7534015e0 Use proper 21:9 aspect ratio, add 32:9 2020-12-20 19:57:15 -08:00
Connor McLaughlin e804fdfdba GPU: Use floating point coordinates for lightgun 2020-12-19 17:02:01 +10:00
Connor McLaughlin 4860313bef NamcoGuncon: Add an option to scale X coordinates
Fixes what appears to be curvature correction at the edges of the
screen.
2020-12-19 17:02:01 +10:00
Connor McLaughlin fad3d79895 NamcoGuncon: Add button to shoot offscreen 2020-12-19 17:02:01 +10:00
Connor McLaughlin 076a2ca307 Qt/CheatManager: Default to unsigned/hex/halfword 2020-12-19 02:44:46 +10:00
Connor McLaughlin ca61f989fc DMA: Don't panic on invalid device read/write 2020-12-19 02:44:46 +10:00
Connor McLaughlin 7c7145d1c5 MDEC: Handle invalid commands
Fixes panic in Formula 1.
2020-12-19 02:44:46 +10:00
Connor McLaughlin 9e1987063d System: Add a libcrypt game list, and check serials
Nag the user if they're missing a sbi file.
2020-12-18 03:03:22 +10:00
Connor McLaughlin b3edcc5841 CDROM: Don't reset audio decoder state on file/channel change
Star Wars Jedi Power Battles sends constant Setfilter commands, while
playing.
2020-12-18 03:03:21 +10:00
Connor McLaughlin d2c98639a8 Cheats: Add extension 32-bit instructions variants 2020-12-18 03:03:21 +10:00
Connor McLaughlin 3b23542ec9 CPU: Provide debugger/breakpoint/step functionality 2020-12-17 11:57:47 +10:00
Connor McLaughlin a8af0f7ecb HostInterface: Add debugger message callbacks 2020-12-17 11:57:47 +10:00
Connor McLaughlin fa0f177e51 HostInterface: Move PauseSystem from common to base 2020-12-17 11:57:47 +10:00
Connor McLaughlin e044858953 CPU: Add additional instruction decoder helpers 2020-12-17 11:57:46 +10:00
Connor McLaughlin 9fd1d606d7 Bus: Add memory region access helpers 2020-12-17 11:57:46 +10:00
Connor McLaughlin a4b6df3e7d
Merge pull request #1239 from ggrtk/analog-controller
AnalogController: Fix config mode 0x4C response
2020-12-17 11:36:58 +10:00
Connor McLaughlin 9d7b63923a
Merge pull request #1235 from valadaa48/CRTCTicksToSystemTicks_optimization
Small optimization to GPU::SystemTicksToCRTCTicks
2020-12-17 11:36:21 +10:00
Connor McLaughlin bd8613b120
Merge pull request #1227 from ggrtk/auto-aspect-ratio
GPU: Add auto aspect ratio and various fixes
2020-12-17 11:35:48 +10:00
Albert Liu b7bccac71d AnalogController: Fix config mode 0x4C response 2020-12-16 15:11:53 -08:00
Connor McLaughlin 47f0720b93 Controller: Always preserve internal state when loading/resuming
Fixes analog mode getting disabled when loading state.
2020-12-17 01:20:06 +10:00
Connor McLaughlin 7b6d30a994 GPU/HW: Fix possible VRAM corruption when live switching resolutions
Mask bit was getting lost based on guest state.
2020-12-17 01:20:06 +10:00
Albert Liu de8f03bd75 GPU: Add auto (game native) aspect ratio 2020-12-16 02:40:33 -08:00
valadaa48 f5f12fd76d Small optimization to GPU::SystemTicksToCRTCTicks 2020-12-15 22:31:34 -05:00
Albert Liu b4fb1e20d8 Settings: Remove unused variables 2020-12-14 19:28:59 -08:00
Albert Liu 2c76ad204a GPU: Fix operator warning 2020-12-14 19:28:59 -08:00
Albert Liu 1c8a896a55 GPU: Wrap display VRAM coordinates properly 2020-12-14 19:28:59 -08:00
Albert Liu 866cbdca4b GPU: Prevent potential overflow in CRTC visible area calculation 2020-12-14 19:28:59 -08:00
Albert Liu 78e42d9b4c GPU: Clean up CRTC variable naming 2020-12-14 19:28:59 -08:00
Albert Liu b8abf2df95 GPU: Don't apply display offsets when not cropping 2020-12-14 19:28:58 -08:00
Connor McLaughlin d0e68c7163 GPU: Mask Y coordinates of VRAM transfers to 9-bits
Fixes GPU error and crash in hardware renderers in Remote Control
Dandy.
2020-12-14 01:35:53 +10:00
Connor McLaughlin 5164840c25 CPU/CodeCache: Don't choke on indirect branches in delay slot
Fixes emulator crash/memory usage explosion in Shadow Master.
2020-12-14 01:35:53 +10:00
Connor McLaughlin 7e5410fc44 CPU/AArch64: Use scratch register for unfitting intermediate values
Should fix crashes with icache emulation enabled.
2020-12-13 00:36:09 +10:00
Albert Liu def9a98cb9 GameSettings: Disable analog mode forcing instead of forcing digital controller 2020-12-11 19:50:43 -08:00
Albert Liu 8716c33f41 AnalogController: Clarify option for forcing analog mode 2020-12-11 19:50:43 -08:00
Connor McLaughlin 420525e672 DigitalController: MSVC warning fix 2020-12-12 11:37:38 +10:00
Albert Liu 191e6b0496 DigitalController: Add option to force as Pop'n Controller 2020-12-09 23:39:11 -08:00
Connor McLaughlin 50bcdc0abb MDEC: Adjust 16bpp timing
Fixes jittery movement in Parasite Eve II opening.
2020-12-09 20:29:32 +10:00
Connor McLaughlin 59c338f461 Cheats: Support double conditional D0/D1/D2/D3/E0/E1/E2/E3/D4 2020-12-09 20:22:43 +10:00
Connor McLaughlin 98766a490f Log: Change success to verbose and move down in ordering 2020-12-09 01:03:32 +10:00
Connor McLaughlin 678146b907 HostInterface: Add separate volume control for fast forwarding 2020-12-09 01:03:32 +10:00
Connor McLaughlin b79d025e66
Merge pull request #1174 from ggrtk/analog-controller
AnalogController: Disallow analog-to-dpad in config mode
2020-12-09 00:22:57 +10:00
Connor McLaughlin 419736aaee GPU/Software: Ensure commands are always aligned to 4 bytes 2020-12-09 00:19:57 +10:00
Albert Liu 18a4ff76e2 AnalogController: Disallow analog-to-dpad in config mode 2020-12-08 02:36:19 -08:00
Connor McLaughlin 98d6b49987 System: Log FPS/frame times every second 2020-12-08 01:47:28 +10:00
Albert Liu 93f46c142c GPU: Fix GPUTexturePaletteReg y BitField width 2020-12-06 22:20:23 -08:00
Connor McLaughlin b44a654943 System: Reset throttler when audio buffers underflow
Should hopefully reduce the chances of the audio source ending up out of
phase from the emulation when vsync is disabled.
2020-12-07 02:44:23 +10:00
Connor McLaughlin 737a87b483 CommonHostInterface: Add a hotkey to toggle all cheats 2020-12-06 23:32:32 +10:00
Connor McLaughlin f5ccb6ea60 CPU: Fall back to mmap'ed buffer if reprotecting code space fails 2020-12-06 18:13:07 +10:00
Connor McLaughlin 09495b1d93 Cheats: Implement C1 command 2020-12-06 15:50:58 +10:00
Connor McLaughlin ea9829946d Cheats: Implement D4/D5/D6 code types 2020-12-06 15:47:00 +10:00
Connor McLaughlin a90c25d0e7 SPU: Ignore manually set loop address only on first block
Fixes occasional missing dialogue in Valkyrie Profile.
2020-12-06 00:35:54 +10:00