674 Commits

Author SHA1 Message Date
Stenzek
199c53f3af BIOS: Replace TTY patch with syscall hook 2023-08-30 00:44:01 +10:00
Stenzek
92b1c21b8a CPU: Fix crash on breakpoint add/trace enable 2023-08-30 00:44:01 +10:00
Stenzek
b217f64bcf PostProcessing: Refactor config to use separate sections 2023-08-30 00:44:01 +10:00
Stenzek
8db8baf33f GPUDevice: Move display logic to GPU 2023-08-30 00:44:00 +10:00
Stenzek
259193a8e5 GPUDevice: Move software cursor to ImGuiManager 2023-08-30 00:44:00 +10:00
Stenzek
e23c9875d5 Misc: Split core and util Host 2023-08-30 00:44:00 +10:00
Stenzek
08acc3144c Host: Avoid leaving GPU state unbound after represent 2023-08-24 18:04:52 +10:00
Stenzek
dc9c99438b Misc: Post-refactor cleanups 2023-08-24 18:01:32 +10:00
Stenzek
82cdef45b3 System: Fix crash on non-database game 2023-08-23 19:39:22 +10:00
Stenzek
c7f987bfb7 System: Share memory cards in multi-disc games
Even without playlists.
2023-08-23 18:41:14 +10:00
Stenzek
7d914a9384 Qt: Use disc sets for changing discs 2023-08-23 18:41:14 +10:00
Stenzek
e3d9ba4c99 Rewrite host GPU abstraction
- Don't have to repeat the same thing for 4 renderers.
 - Add native Metal renderer.
2023-08-20 21:55:38 +10:00
Stenzek
d09e5051ca Settings: Translate display names in core
Enables the values to show in the Big Picture UI.
2023-08-20 13:25:45 +10:00
Stenzek
e57ad0b6aa Host: Backport translations cache
Note: You'll need a new command line for lupdate.

..\..\..\dep\msvc\qt\6.5.0\msvc2022_64\bin\lupdate.exe ../ ../../core/ ../../util/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP -ts duckstation-qt_LANGUAGE.ts
2023-08-20 12:40:47 +10:00
Stenzek
39f64a03ee Common: Error/FileSystem backports 2023-08-20 12:40:47 +10:00
Stenzek
cee5decec4 GameDB: Merge traits/compatibility into single file 2023-08-19 22:00:20 +10:00
Stenzek
bb60170d9a Move frontend-common to util/core 2023-08-16 01:13:00 +10:00
Stenzek
5b980dafa5 System: Refactor main loop
Reduces JIT exits.
Improves runahead performance.
2023-08-16 01:13:00 +10:00
Jamie Meyer
36c4345019
core / system: Disc-Region Fix For Netplay
Fixes an issue which is only really valid for netplay since can start from an non-auto region sinc eit pulls it from the host.
2023-05-24 12:33:24 +02:00
Stenzek
9aa6c24620 System: Store game hash as well as serial 2023-05-15 23:39:07 +10:00
Stenzek
7681551544 System: Don't auto enable analog on unknown games 2023-05-08 13:07:19 +10:00
Stenzek
6b366afb05 HostDisplay: Treat internal res screenshots as a screenshot 2023-05-02 21:44:03 +10:00
Stenzek
84e5fbe0c6 CPU: HLE implementation of PCDrv (host file access) 2023-04-29 20:45:39 +10:00
Stenzek
2e3d924bc6 System: Fix crash when using unknown BIOS 2023-04-14 18:14:39 +10:00
Stenzek
3673827363 PAD: Intelligently skip saving memcard state for runahead 2023-03-16 21:22:08 +10:00
Stenzek
33f5d9cb9c System: Remove BIOS from save state
Makes the states smaller, as well as not creating potential piracy
issues when sending across the wire.
2023-03-16 19:34:01 +10:00
Stenzek
1fcf16fc81 System: Store BIOS image info/hash after loading 2023-03-16 19:22:54 +10:00
Stenzek
178a659a98 GPU: Move graphics API reset state to System
Stops us trying to reset state on objects which don't exist if
initialization failed (apparently some Android devices.. of course).
2023-02-05 13:12:45 +10:00
Stenzek
14cf865905 Misc: Correctness fixes for OpenGL
GLES2 fallback should be functional again.
2023-01-30 19:17:11 +10:00
Connor McLaughlin
2c2304b5b7 System: Fix inverted ifdef 2023-01-12 18:12:58 +10:00
Connor McLaughlin
3b038fd27d System: Further improve frame timing consistency 2023-01-12 18:02:12 +10:00
Connor McLaughlin
50a616421f System: Add -exe parameter for overriding boot executable
Lets you re-use a disc image, but boot a different file.
2023-01-11 19:49:11 +10:00
Connor McLaughlin
3e16746e85 Pad: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
835834f8f4 SIO: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
0683b9fa0e InterruptController: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
db364d0e95 Timers: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
3acf569d67 DMA: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin
dd73811628 CDROM: Convert to namespace 2023-01-09 22:20:27 +10:00
Connor McLaughlin
19b4f4e921 System: Add frame time graph 2023-01-07 13:10:43 +10:00
Connor McLaughlin
c2e15b0078 System: Fix toggling Show GPU Usage at runtime 2022-12-20 21:32:51 +10:00
Connor McLaughlin
1c8ef86f12 MDEC: Convert to namespace 2022-12-20 21:18:30 +10:00
Connor McLaughlin
3082fd55d7 Qt: Add output audio device selection 2022-12-14 17:58:14 +10:00
Connor McLaughlin
e27f259bf8 System: Fix broken missing-SBI detection 2022-12-06 18:09:40 +10:00
Connor McLaughlin
7101b86d2f System: Don't unconditionally apply TTY enable patch
Fixes Intelligent Qube hang.
2022-12-06 13:31:35 +10:00
Connor McLaughlin
8c7a192128 Misc: Add copyright/license statement to applicable files
Should've did this in the beginning.
2022-12-04 21:03:49 +10:00
Connor McLaughlin
201a671709 System: Fix dumping audio on boot 2022-11-21 12:55:24 +10:00
Connor McLaughlin
6db90e8116 BIOS: Add detection of OpenBIOS 2022-11-15 21:22:42 +10:00
Connor McLaughlin
b6686b8239 System: Preserve controller type on core settings reset 2022-10-21 00:30:42 +10:00
nobody
553d58052b Expose Display Host Aligment as a Setting in Ini 2022-10-09 00:55:56 -04:00
Connor McLaughlin
3a3f571ecc Settings: Persist OSD options when resetting 2022-10-08 23:36:39 +10:00
Connor McLaughlin
42768c3101 Achievements: Fix a few minor issues 2022-10-08 21:21:33 +10:00
Connor McLaughlin
10f98106dd Misc: Normalize code vs serial usage 2022-10-05 18:29:44 +10:00
Connor McLaughlin
587fbf6ca7 System: Disable auto analog mode when starting shell 2022-10-04 00:20:37 +10:00
Connor McLaughlin
f25d7f6e09 Misc: Fix various warnings 2022-10-04 00:00:56 +10:00
Connor McLaughlin
a9038133c8 HostDisplay: Common texture base class for all APIs 2022-10-04 00:00:56 +10:00
Connor McLaughlin
971bba07d6 GPU: Make perspective-correct color interpolation toggleable 2022-10-03 21:08:41 +10:00
Connor McLaughlin
84917ec6aa Common/Image: Add resize methods 2022-09-26 22:15:51 +10:00
Connor McLaughlin
d25a9a22e3 System: Fix per-game bindings being used when disabled 2022-09-24 13:14:24 +10:00
Connor McLaughlin
cba4bb4ab2 Achievements: Show primed/challenge-in-progress achievements 2022-09-21 23:06:23 +10:00
Connor McLaughlin
3e16dbfc37 System: Fix crash when toggling memory exceptions off 2022-09-17 15:56:05 +10:00
Connor McLaughlin
21b7261dc9 System: Fix turbo getting dropped on renderer switch 2022-09-13 17:50:42 +10:00
Connor McLaughlin
023900dc77 System: Fix inverted save screenshot colour channels 2022-09-09 13:31:13 +10:00
Connor McLaughlin
bec0d6e7df HostDisplay: Add GPU usage statistics 2022-09-03 14:17:51 +10:00
Connor McLaughlin
3a5bf6d29b System: Move overlay checking to common 2022-08-27 16:52:24 +10:00
Connor McLaughlin
7bbacd2392 Misc: Remove unused code 2022-08-22 19:55:38 +10:00
Connor McLaughlin
c7e8233b7b System: Move present skip check to core 2022-08-19 00:07:14 +10:00
Connor McLaughlin
0f82dc9161 System: Use streaming for compressed save 2022-08-18 23:10:15 +10:00
Connor McLaughlin
759938a5cf System: Support compressing save states 2022-08-18 23:10:15 +10:00
Connor McLaughlin
c66a9f117d System: Don't empty buffers on state load 2022-08-18 23:10:15 +10:00
Connor McLaughlin
86cba1e04d System: Fix present skip getting activated on unpause
When using vsync+sync to host refresh+optimal frame pacing.
2022-08-16 21:23:16 +10:00
Connor McLaughlin
3abf1df362 System: Fix volume after toggling fast forward 2022-08-15 17:23:34 +10:00
Connor McLaughlin
5b2c18e27c SPU: Convert to namespace 2022-08-15 17:22:23 +10:00
Connor McLaughlin
6c69cf33c2 System: Fix loading states with different media path 2022-08-15 17:14:34 +10:00
Connor McLaughlin
795ddee79c Qt: Fix relative mode for PSMouse 2022-08-10 17:08:59 +10:00
Connor McLaughlin
4faa49d42c System: Fix framerate spike after pausing in debugger 2022-08-10 15:19:15 +10:00
Connor McLaughlin
c3da236f92 System: Preparations for per-game controller settings 2022-08-10 13:09:48 +10:00
Connor McLaughlin
54c2447ff3 System: Rework some throttler/vsync logic 2022-08-10 13:09:32 +10:00
Connor McLaughlin
1289064316 Settings: Drop audio sync option
Not relevant since time stretching was added.
2022-08-05 17:57:47 +10:00
Connor McLaughlin
57c1ca97f7 Qt: Hook up audio driver selection 2022-08-05 17:50:28 +10:00
Connor McLaughlin
06ecc50797 System: Fix CPU usage not showing for sw-renderer-for-readbacks 2022-08-05 17:17:29 +10:00
Connor McLaughlin
8f314c8d49 System: Fix vsync resetting on pause and fast forward on boot 2022-08-05 17:09:44 +10:00
Connor McLaughlin
589785f8a0 System: Don't print whole path in save OSD messages 2022-08-05 17:09:02 +10:00
Connor McLaughlin
6bf0ad789e fixup! Misc: Necessary emucore changes for Android 2022-08-05 17:07:07 +10:00
Connor McLaughlin
523297c60e System: Fix querying invalid handle on boot 2022-08-05 17:06:50 +10:00
Connor McLaughlin
9c3e4c78c8 System: Fix match window aspect ratio not working on startup 2022-08-05 17:06:02 +10:00
Connor McLaughlin
3505ca26e0 SaveStateSelectorUI: Fix loading/saving without popup 2022-07-31 17:33:03 +10:00
Connor McLaughlin
a899ca88f2 Build: Make OpenGL/Vulkan renderers optional
And disabled on Windows/arm64.
2022-07-31 01:14:28 +10:00
Connor McLaughlin
89659db7ee Path: Unicode handling and tests for SanitizeFileName 2022-07-30 21:46:14 +10:00
Connor McLaughlin
be5b979713 AudioStream: Make speed changes less poppy 2022-07-29 21:16:02 +10:00
Connor McLaughlin
68b5dd869c SPU: Add time stretched audio output 2022-07-28 22:10:47 +10:00
Connor McLaughlin
a461ba8be6 System: Update speed limiter on boot 2022-07-28 22:10:46 +10:00
Connor McLaughlin
6b8b08ef61 System: Fix invalid memory read in SW thread stats 2022-07-28 22:10:46 +10:00
Connor McLaughlin
6386004b2c FullscreenUI: Fix incorrect vsync state on unpause 2022-07-26 21:46:18 +10:00
Connor McLaughlin
c2f4b7e7b8 CDROM: Only apply extra remove delay on disc swap 2022-07-26 20:14:45 +10:00
Connor McLaughlin
fc40397818 GPU: Don't set empty post chain 2022-07-23 13:55:09 +10:00
Connor McLaughlin
be03998be0 System: Fix title not showing for non-database discs 2022-07-23 13:55:09 +10:00
Connor McLaughlin
a1edddc59d CDROM: Revamp/improve preload image procedure 2022-07-23 13:55:09 +10:00
Connor McLaughlin
75b4891f78 Qt: Fix Apply Game Settings option 2022-07-23 00:13:55 +10:00
Connor McLaughlin
701780e2ef Qt: Regression fixes 2022-07-22 22:53:06 +10:00
Connor McLaughlin
b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +10:00
Connor McLaughlin
af91fcf195 Backport more common classes 2022-07-21 17:29:58 +10:00
Connor McLaughlin
b7fbde31a7 Move utility classes from common to own static lib 2022-07-21 17:29:58 +10:00
Connor McLaughlin
d2ca454576 Sync filesystem.h/path.h 2022-07-21 17:29:57 +10:00
Connor McLaughlin
b5bf3593c4 ByteStream: Move routines from FileSystem to ByteStream 2022-07-21 17:29:57 +10:00
wheremyfoodat
d959899022 Allow .ps-exe suffix for executables. 2022-07-16 19:05:17 +03:00
Connor McLaughlin
9ab64ecdb3 CDImage: Add Precache() method 2022-04-03 21:09:36 +10:00
Connor McLaughlin
a55b5022c7 System: Include cheevos state in save states 2022-03-27 16:59:02 +10:00
Brian Blakely
717ee3103f M3U: Preloading to RAM for single-disc playlists. 2022-03-27 16:58:51 +10:00
Connor McLaughlin
4513c7a23d System: Invalidate instead of flushing code cache on memory state 2021-12-25 14:28:33 +10:00
Connor McLaughlin
fe2062ff9f System: Warning fix 2021-12-25 14:28:32 +10:00
Connor McLaughlin
c346dfe8a4 SPU: Drop OOB register warnings to dev level 2021-11-26 11:31:59 +10:00
Connor McLaughlin
14eecae680 System: Use exe hash plus pvd hash for image hash code 2021-11-09 12:54:30 +10:00
Connor McLaughlin
946481c2aa System: Add a workaround for PSF files with incorrect header 2021-11-06 10:48:23 +10:00
Connor McLaughlin
355d7664d2 System: Fix unused variable warning 2021-10-25 17:27:41 +10:00
Connor McLaughlin
75e9506803 System: Get rid of double GPU reset 2021-08-24 11:57:11 +10:00
Connor McLaughlin
c4f0dafb1f System: Don't time memory load/save states by default
Reduces log spam.
2021-08-12 21:31:40 +10:00
Connor McLaughlin
50a09384e1 CommonHostInterface: Add onscreen indicator for rewind 2021-08-07 12:07:04 +10:00
Connor McLaughlin
29bc0c950a System: Reset before loading save state on boot 2021-07-24 13:07:09 +10:00
Connor McLaughlin
0000750527 System: Fix rewind rate with vsync off 2021-07-17 20:14:40 +10:00
Anderson_Cardoso
41fc84ae51
Update information about SBI file
A simple update message to make it more clear for end users in regard SBI files.
2021-07-14 10:55:07 -03:00
Connor McLaughlin
14e7f8fd13 GPU: Add D3D12 renderer 2021-07-10 21:45:10 +10:00
Connor McLaughlin
8f3162675f Warning fixes 2021-07-07 19:54:13 +10:00
Connor McLaughlin
911e9a37f1 WIN32 macro -> _WIN32 2021-06-30 14:38:07 +10:00
Connor McLaughlin
bc1331208b System: Don't try to preload multi-disc images 2021-06-27 13:52:43 +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
aae0fb3f2b System: Support loading libps.exe (for Net Yaroze) 2021-06-11 20:47:46 +10:00
Connor McLaughlin
350049826f Fix a bunch of compiler warnings 2021-06-04 13:14:30 +10:00
Connor McLaughlin
9aa386e96c System: Add option to load/apply image patches 2021-06-01 21:55:37 +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
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
21d6af287e System: Fix a possible crash with runahead 2021-05-20 12:19:27 +10:00
Connor McLaughlin
e382df0d41 Support expanding RAM to 8MB (dev console) 2021-05-03 12:43:33 +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
fe1a582909 System: Disallow booting when SBI files are missing 2021-04-22 13:40:48 +10:00
Connor McLaughlin
03f3f0369c GameList: Reduce number of system calls when scanning 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
ff14e8aede Add JSON game database to replace dat parsing 2021-04-17 17:04:23 +10:00
Connor McLaughlin
922d320523 CPU/Recompiler: Reserve whole fastmem region to avoid clashes 2021-04-11 12:42:51 +10:00
Connor McLaughlin
0644faa635 System: Disable memory cards when running PSFs 2021-04-08 11:34:15 +10:00
Connor McLaughlin
dec2d48bfe System: Fix crash when launching exe/psf 2021-03-28 13:47:53 +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
Albert Liu
d10365c60e System: Fix message crash for missing CD image 2021-03-22 19:17:04 -07:00
Connor McLaughlin
11dcba1b68 CDImage: Use Error class for complex errors 2021-03-19 01:58:00 +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
Connor McLaughlin
753dd0480f CDImage: Add support for loading mds/mdf images 2021-03-07 16:26:15 +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
521ade025c System: Make hardware renderer init failure an OSD message 2021-03-05 01:05:16 +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
Albert Liu
f9dc1a7e80 Core: Add Multitap support 2021-02-26 21:04:12 -08:00
Connor McLaughlin
0ec2c87a0e Implement RetroAchivements 2021-02-27 00:44:53 +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
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
db4f521d92 System: Make some boot error messages translatable 2021-02-18 02:08:48 +10:00
Connor McLaughlin
09805c1f80 FullscreenUI: Fix controller navigation in disc change 2021-02-18 02:08:47 +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
701edb335a Various warning fixes 2021-02-06 19:19:55 +10:00
C.W. Betts
662d6e9711 Fix possible log formatting errors. 2021-02-04 17:54:51 -07:00
Connor McLaughlin
55a1d0437d System: Display message on media change 2021-01-31 17:10:27 +10:00
Connor McLaughlin
3c2b11fccb System: Don't log rewind pending flag when disabled 2021-01-29 01:27:32 +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
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
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
b62f31fd96 System: Use region from exe/psf when booting 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
d44de3a9dc System: Use SetWaitableTimer() for throttling on Windows 2021-01-14 00:40:25 +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
4e87b30b40 System: Skip throttler phase reset when running at <100% 2021-01-01 14:08:09 +10: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
8db961042a GPU: Support replacing VRAM writes with new textures 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
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
3b23542ec9 CPU: Provide debugger/breakpoint/step functionality 2020-12-17 11:57:47 +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
98d6b49987 System: Log FPS/frame times every second 2020-12-08 01:47:28 +10: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
8b3426a96e System: Reinitialize code cache on hw settings change/disc swap
Basically, anything which could allocate large amounts of memory and
potentially overlap with our fastmem area.
2020-12-06 00:35:54 +10:00
Connor McLaughlin
37c9e69b3e System: Zero downcount at end of frame
Prevents code running after vblank starts, and fixes events getting
delayed in interpreter mode.
2020-12-01 01:16:49 +10:00
Connor McLaughlin
b695d3c6ce System: Use existing media if save state media is not found 2020-11-30 01:15:44 +10:00
Connor McLaughlin
a75b6e512a System: Improve translatability of save state error 2020-11-28 00:35:03 +10:00
Albert Liu
32e47fba93 System: Limit maximum loadable save state version 2020-11-26 19:51:45 -08:00
Connor McLaughlin
b45bee5954 libretro: Work around crash in RetroArch Vulkan driver 2020-11-25 23:06:41 +10:00
Connor McLaughlin
2b66492ed8 HostInterface: Add proper turbo speed setting 2020-11-03 22:59:26 +10:00
Connor McLaughlin
863f84e3f6 System: Fix frame limiter on fast systems (when frametime <1ms) 2020-11-03 16:17:45 +10:00
Connor McLaughlin
b2d224abfc System: Set BIOS before resetting
Fixes incorrect first instruction executing in interpreter mode.
2020-10-30 00:44:39 +10:00
Albert Liu
f69889264d Core: Make some additional OSD messages translatable 2020-10-22 02:07:48 -07:00
Connor McLaughlin
7566c45f64 CPU/Recompiler: Implement fastmem 2020-10-18 14:54:38 +10:00
Connor McLaughlin
69b2c3fc2d StateWrapper: Track save state version 2020-10-18 14:54:38 +10:00
Connor McLaughlin
27697d0508 System: Implement CPU overclocking [SAVEVERSION+]
Partial credit to @CookiePLMonster as well.
2020-09-30 23:48:34 +10:00
Silent
2d90cfc07e
Tidy up SystemBootParameters constructors 2020-09-12 23:05:38 +02:00
Connor McLaughlin
03f052e12e FrontendCommon: Add auto cheat loading option 2020-09-09 23:44:02 +10:00
Connor McLaughlin
ddb38ac31d Add pcsxr and libretro cheat list parsing 2020-09-09 22:11:28 +10:00
Connor McLaughlin
45eb30b6cc
Merge pull request #835 from TzakShrike/master
Upgrade region flags. Correct NTSC-U to NTSC-U/C. Add custom U/C flag. Remove outdated icons.qrc file.
2020-09-09 18:28:50 +10:00
Sam Pearman
2ef6b6aa40 Region flag upgrade & correct NTSC-U to NTSC-U/C
Replace references to NTSC-U with the correct NTSC-U/C and adds Canada in user-facing strings.
Replaces all region flags with revised SVGs.
Brings the US flag down to 3:2 to match Europe and Japan.
Adds a custom split US & Canada flag for the U/C region, also 3:2.
Generated PNGs and new HiDPI PNGs for region flags.
Flag PNGs were generated by downscaling using a Lanczos filter to a width of 36/72 pixels, then a 1px grey border added, then a 2/5px transparent border.
2020-09-09 15:54:07 +09:00
Connor McLaughlin
fd0a009a7f System: Add missing <cctype> include 2020-09-03 12:25:59 +10:00
Connor McLaughlin
6bbbb96d4b Move GameList to FrontendCommon
Reduces libretro core dependencies further.
2020-09-01 12:46:44 +10:00
Connor McLaughlin
13e3095801 Core: Don't link to imgui for libretro core 2020-09-01 12:22:32 +10:00
Connor McLaughlin
2768c2c91d System: Fix VRAM sometimes getting lost when loading state 2020-08-22 18:16:35 +10:00
Connor McLaughlin
ab002e78e1 Support translating strings in emulator core 2020-08-22 13:06:20 +10:00
Connor McLaughlin
60d3fffec1 Add per-game overrides (mainly for compatibility) 2020-08-21 00:09:37 +10:00
Connor McLaughlin
7c697f363e libretro: Make single cards for playlist the default, fix disabled case
This bug was causing the option to act as if it was disabled anyway.
2020-08-17 11:51:47 +10:00
Connor McLaughlin
4e62b32d60 Add option to dump the contents of RAM to a file 2020-08-16 23:20:36 +10:00
Connor McLaughlin
f5fb8186c7 Switch some messages to the OSD and increase durations 2020-08-16 00:20:10 +10:00
Connor McLaughlin
d9893bb127 System: Add option to use a single memory card for playlists 2020-08-16 00:20:10 +10:00
Connor McLaughlin
dedeee1698 System: Track playlists in save states 2020-08-16 00:20:10 +10:00
Connor McLaughlin
d4665e8b22 GPU: Tweaks to ODE handling
Fixes Team Buddies and The Next Tetris.
2020-08-16 00:20:10 +10:00
Connor McLaughlin
b1377fe0d9 CPU/Recompiler: Add a fast block lookup array
Up to 15% perf improvement.
2020-08-08 23:06:28 +10:00
Connor McLaughlin
e5c46a54b7 System: Restore/reset state on recreating GPU/updating settings
Fixes display corruption on RetroArch when switching renderers.
2020-08-06 23:20:52 +10:00
Connor McLaughlin
e9882a10aa System: Move restore/reset graphics API state to System
Fixes frame stepping.
2020-08-01 16:45:07 +10:00
Connor McLaughlin
2eb9384275 Replace more instances of fopen() with FileSystem::OpenFile() 2020-08-01 14:00:22 +10:00
Connor McLaughlin
b6f871d2b9
JIT optimizations and refactoring (#675)
* CPU/Recompiler: Use rel32 call where possible for no-args

* JitCodeBuffer: Support using preallocated buffer

* CPU/Recompiler/AArch64: Use bl instead of blr for short branches

* CPU/CodeCache: Allocate recompiler buffer in program space

This means we don't need 64-bit moves for every call out of the
recompiler.

* GTE: Don't store as u16 and load as u32

* CPU/Recompiler: Add methods to emit global load/stores

* GTE: Convert class to namespace

* CPU/Recompiler: Call GTE functions directly

* Settings: Turn into a global variable

* GPU: Replace local pointers with global

* InterruptController: Turn into a global pointer

* System: Replace local pointers with global

* Timers: Turn into a global instance

* DMA: Turn into a global instance

* SPU: Turn into a global instance

* CDROM: Turn into a global instance

* MDEC: Turn into a global instance

* Pad: Turn into a global instance

* SIO: Turn into a global instance

* CDROM: Move audio FIFO to the heap

* CPU/Recompiler: Drop ASMFunctions

No longer needed since we have code in the same 4GB window.

* CPUCodeCache: Turn class into namespace

* Bus: Local pointer -> global pointers

* CPU: Turn class into namespace

* Bus: Turn into namespace

* GTE: Store registers in CPU state struct

Allows relative addressing on ARM.

* CPU/Recompiler: Align code storage to page size

* CPU/Recompiler: Fix relative branches on A64

* HostInterface: Local references to global

* System: Turn into a namespace, move events out

* Add guard pages

* Android: Fix build
2020-07-31 17:09:18 +10:00
Connor McLaughlin
dd48a1f585 System: Handle large event timing overshoots better
Usually a result of DMA cycle stealing. Instead of adding all time, add
min(all_events.downcount) at a time. 1.5% performance improvement, but
fixes desyncs between the SPU and CD-ROM.
2020-07-30 00:47:19 +10:00
Connor McLaughlin
8e1c0a4fe4 System: Support loading m3u playlists 2020-07-23 02:36:05 +10:00
Connor McLaughlin
d46c104d1b System: Preload CD images to RAM when switching/loading state 2020-07-23 02:35:23 +10:00
Connor McLaughlin
f28ef01d24 CDROM: Move audio FIFO to CDROM class and skip sectors when unempty
Fixes cutscene audio in Nickelodeon Rugrats - Search for Reptar.
2020-07-22 00:05:52 +10:00
Connor McLaughlin
9496c992f7 System: Add an option to preload CD image to RAM 2020-07-22 00:03:22 +10:00
Connor McLaughlin
93528db388 System: Use existing CD media when loading state where possible 2020-07-22 00:02:37 +10:00
Connor McLaughlin
5c1c467e38 GTE: Add widescreen hack 2020-07-18 00:28:37 +10:00
Connor McLaughlin
a5fe740e30 Fix a bunch of compiler warnings 2020-07-09 13:30:16 +10:00
Connor McLaughlin
b0b3901722 libretro: Fix DualShock analog mode auto-enable 2020-07-05 00:05:14 +10:00
Connor McLaughlin
4dc9e10777 HostInterface: Support per-controller-type settings 2020-07-01 00:56:46 +10:00
Connor McLaughlin
936d92dfb8 System: Add option to force start in software mode 2020-06-30 02:44:19 +10:00
Connor McLaughlin
919494079b System: Make saving screenshots to state optional 2020-06-30 02:44:09 +10:00
Connor McLaughlin
58b0e6859a Frontend: Reset/restore GPU state before saving screenshot
Fixes driver crashes in Vulkan.
2020-06-27 02:59:58 +10:00
Lioncash
76af96f15b system: Correct error dialog in PSF load case
Corrects the error message to state that the PSF couldn't be loaded
rather than EXE.
2020-06-23 05:13:47 -04:00
Connor McLaughlin
49d11988bf Core: Add Vulkan GPU renderer 2020-06-19 00:18:17 +10:00
Connor McLaughlin
bdf9c91271 GPU: Fix double shader compilation 2020-06-09 03:04:02 +10:00
Connor McLaughlin
075380f8e0 Move most helper logic from base HostInterface to FrontendCommon 2020-06-09 02:35:37 +10:00
Connor McLaughlin
b4e45e865a GPU: Use correct clocks for NTSC region
Fixes sync drift in Bust-a-Move 1/2.
2020-06-07 19:15:06 +10:00
Connor McLaughlin
b17a5832e5 System: Simplify save state booting
Fixes memory card warning messages on load state.
2020-05-27 02:01:11 +10:00
Connor McLaughlin
d2c7639dd8 System: Update per-game memory cards on load state
Prevents saves being written to incorrect card after loading.
2020-05-27 00:41:58 +10:00
Connor McLaughlin
9539ce032b AnalogController: Show controller number in OSD messages 2020-05-08 15:32:39 +10:00
Connor McLaughlin
9d1eb321ec DMA: Properly handle infinite linked lists, add cycle stealing
Fixes Tekken 2, Hot Wheels Turbo Racing, probably others.
2020-04-29 16:52:15 +10:00
Connor McLaughlin
e20fd61f0b System: Add option to use per-game memory cards with game title as filename 2020-04-28 01:04:10 +10:00
Connor McLaughlin
74e455a5f7 System: Support per-game memory cards 2020-04-27 16:22:25 +10:00
Connor McLaughlin
e6bd6587fd Controller: Add emulation of Namco GunCon 2020-04-26 01:23:58 +10:00
Connor McLaughlin
92255c8ddd System: Don't drop audio buffers when time lost 2020-04-25 14:51:25 +10:00
Connor McLaughlin
08c8d1a521 System: Support saving screenshots in save states 2020-04-21 02:50:45 +10:00
Connor McLaughlin
205297ac27 System: PSF (Portable Sound Format) loading support 2020-04-17 00:29:56 +10:00
Connor McLaughlin
a43a0a14cc CPU/CodeCache: Don't leak blocks on shutdown 2020-04-16 20:23:54 +10:00
Connor McLaughlin
6775100170 GPU: Drop OpenGL ES renderer
We can put this through the normal GL renderer instead.
2020-04-11 00:00:10 +10:00
Connor McLaughlin
08567fedf4 CDROM: Fix crash when loading save state from different system 2020-04-08 13:08:27 +10:00
Connor McLaughlin
a9109c7552 System: Don't insert blank memory card if path unspecified 2020-03-30 00:14:15 +10:00
Connor McLaughlin
88f1edd48d System: Include console region in save state
Fixes #149.
2020-03-25 01:49:20 +10:00
Connor McLaughlin
40d6be7142 System: Frame pacing improvements 2020-03-24 00:21:11 +10:00
Connor McLaughlin
cbb9b96537 System: Include buffer swap time in frame time measurement 2020-03-24 00:20:56 +10:00
Connor McLaughlin
86eefbd5d7 System: Fix a possible assertion failure loading state 2020-03-12 15:32:37 +10:00
Connor McLaughlin
3effa1238f CDROM: Return correct SCEx string based on disc region
Fixes SCEI/SCEE displaying as SCEE in BIOS.
2020-03-12 13:51:53 +10:00
Connor McLaughlin
e0a339ca96 GameList: Seperate disc region and console region 2020-03-12 13:51:29 +10:00
Connor McLaughlin
69f03959aa Qt: Implement context menu in game list 2020-03-02 11:08:16 +10:00
Connor McLaughlin
49c7767ed4 System: Check save state version when loading
Fixes #34.
2020-02-22 17:16:47 +09:00
Connor McLaughlin
70fe43a3ec System: Implement variable emulation speed 2020-02-11 12:02:42 +09:00
Connor McLaughlin
c820ddba79 HostInterface: Move throttle and perf stats to System class 2020-02-09 22:16:25 +09:00
Stenzek
c26b9bc54c System: UpdateCPUExecutionMode -> SetCPUExecutionMode 2020-02-05 17:43:00 +09:00
Connor McLaughlin
1b9609ef61 Implement event-based scheduler instead of lock-step components 2020-01-24 16:23:39 +10:00
Connor McLaughlin
4a3478b360 HostInterface: Add function to switch between sw/hw rendering 2020-01-24 14:51:53 +10:00
Connor McLaughlin
abf48b6cc2 Qt: Update GPU settings when enhancements are changed 2020-01-24 14:51:33 +10:00
Connor McLaughlin
77b282862f HostInterface: Move running title info to System 2020-01-24 14:51:05 +10:00
Connor McLaughlin
0a5f7fcd75 System: Update running game when media changes from save state 2020-01-24 14:50:48 +10:00
Connor McLaughlin
20b60e0f01 Qt: Update window title/save states from running title 2020-01-24 14:50:46 +10:00
Connor McLaughlin
71c1e243fe Remove YBaseLib dependency 2020-01-10 13:40:53 +10:00
Connor McLaughlin
e0086156ca System: Compile fix for Linux 2020-01-08 13:34:21 +10:00
Connor McLaughlin
ad21f48a67 Fix Android build after controller changes 2019-12-16 16:46:43 +10:00
Connor McLaughlin
1d2bd11b02 Frontend: Add controller settings 2019-12-15 22:24:27 +10:00
Connor McLaughlin
c65279f944 System: Create controllers dynamically based on config 2019-12-14 23:29:26 +10:00
Connor McLaughlin
ea0845d5ad Move controller creation to System class, switch shared_ptr to unique_ptr 2019-12-14 23:20:24 +10:00
Connor McLaughlin
cda2394287 System: Fix loading of EXEs with sp=0 (leave unchanged) 2019-12-11 16:34:56 +10:00
Connor McLaughlin
fb0aad0917 System: Include SIO in save state 2019-12-10 00:28:58 +10:00
Connor McLaughlin
da14b10e72 Split MemoryCard and PadDevice (now Controller) 2019-12-09 00:52:00 +10:00
Connor McLaughlin
315f2b701a Stub out SIO controller
Fixes WipEout booting.
2019-12-07 21:09:04 +10:00
Connor McLaughlin
c284d3835f GPU: Add a simplified OpenGL ES renderer
Seems this is the only way to get semi-decent performance out of Mali
drivers :/
2019-12-07 01:37:37 +10:00
Connor McLaughlin
8b9d44f4dc System: Use game code for automatic region detection 2019-12-05 17:09:10 +10:00
Connor McLaughlin
dec475db62 GameList: Support homebrew/psexe files 2019-12-04 21:12:50 +10:00
Connor McLaughlin
22e8b6b0a7 System: Fall back to software when D3D11 selected on Linux 2019-11-25 00:24:22 +10:00
Connor McLaughlin
889bd73ac8 CPU: Add settings for execution mode 2019-11-23 20:22:09 +10:00
Connor McLaughlin
5217088d82 CPU: Refactor load delay handling
Now works when mixing interpreter and recompiler code.
2019-11-20 00:15:15 +10:00
Connor McLaughlin
1d6c4a3af1 CPU: Basic recompiler implementation for x64 (lui, ori, addiu)
Disabled by default.
2019-11-19 20:38:05 +10:00
Connor McLaughlin
b9089cac95 System: Fix EXE loading again 2019-11-18 21:03:48 +10:00
Connor McLaughlin
f1289d6161 Settings: Hook up console region 2019-11-16 20:52:39 +10:00
Connor McLaughlin
77fe883901 System: Default to NTSC region for BIOS boot if auto 2019-11-16 20:52:39 +10:00
Connor McLaughlin
246c97ccb3 System: Scaffolding for multi-system/multi-bios 2019-11-16 20:50:59 +10:00
Connor McLaughlin
a47492382c System: Add "fast boot" option (skip boot logo) 2019-11-16 01:04:52 +10:00
Connor McLaughlin
30fd7a6683 DMA: Support delaying transfers
Fixes Syphon Filter 2/3.
2019-11-15 23:27:56 +10:00
Connor McLaughlin
6f4cf7d5e3 System: Support changing BIOS path 2019-11-11 19:43:39 +10:00
Connor McLaughlin
8c51abaf37 System: Move settings to HostInterface 2019-11-08 01:07:39 +10:00
Connor McLaughlin
36b7690056 Frontend: Add settings window 2019-11-08 00:22:25 +10:00
Connor McLaughlin
5d26c2177f GPU/HW: Don't crash when switching to incompatible renderer 2019-11-04 02:02:33 +10:00
Connor McLaughlin
9de9cf3be2 GPU/HW: Add D3D11 renderer and refactor host interface/display 2019-11-04 00:39:48 +10:00
Connor McLaughlin
c52c0608ae GPU: Move resolution scale to hardware backend only 2019-11-02 01:32:27 +10:00
Connor McLaughlin
12ce777e30 Frontend: Add toggle for software rendering 2019-10-27 21:52:10 +10:00
Connor McLaughlin
0092cb1016 Pad: Set up memory cards via settings 2019-10-27 17:46:36 +10:00
Connor McLaughlin
540e942a46 Add basic software GPU renderer 2019-10-26 12:57:45 +10:00
Connor McLaughlin
9b56499afa Refactoring settings/support changing GPU renderer at runtime 2019-10-26 12:55:56 +10:00
Connor McLaughlin
c8bbd25f59 MDEC: Refactor buffer handling, fixes FF9 FMVs 2019-10-18 23:52:52 +10:00
Connor McLaughlin
9d5f3c1306 CPU: Support stalling CPU for bus activity such as DMA 2019-10-18 00:20:38 +10:00
Connor McLaughlin
0324ae2fd7 CDROM: Initial debug windows 2019-10-17 23:54:51 +10:00
Connor McLaughlin
aa792da823 CDROM: Implement XA-ADPCM decoding 2019-10-15 17:28:23 +10:00
Connor McLaughlin
88ec178380 DMA: Refactoring, support split block transfers 2019-10-13 14:16:49 +10:00
Connor McLaughlin
2d9d999713 Add debug window for MDEC 2019-10-12 23:27:23 +10:00
Connor McLaughlin
0f68c8c5d3 Add debugging for GPU/Timers 2019-10-12 22:15:38 +10:00
Connor McLaughlin
d88da93a55 SPU: Save state support 2019-10-11 16:54:21 +10:00
Connor McLaughlin
f852b8dd90 Further work on SPU implementation 2019-10-11 02:20:21 +10:00
Connor McLaughlin
d373b5d3a9 Timers: Fix oneshot/toggle modes 2019-10-08 18:21:15 +10:00
Connor McLaughlin
162a0df922 Frontend: Display emulation speed 2019-10-04 20:48:29 +10:00
Connor McLaughlin
8362b8e43b UI: Beginning of customizable settings, debug menu 2019-10-04 15:00:32 +10:00
Connor McLaughlin
bddbab9d60 Rename to DuckStation 2019-10-04 13:54:09 +10:00