178 Commits

Author SHA1 Message Date
Stenzek
c53717bbe4
System: Rewrite input profile hotkey priority logic 2024-05-16 16:53:13 +10:00
Stenzek
c116e5a1d5
Qt: Consider per-game overrides for Edit Memory Cards menu 2024-05-15 01:50:43 +10:00
Stenzek
e517581041
System: Tidy up some unused code 2024-05-14 15:13:18 +10:00
Stenzek
fa104acdd1
Misc: Purge unused code and report startup error to host 2024-05-05 22:29:26 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
7548113afd
System: Move COM init to common code 2024-04-25 12:56:02 +10:00
Stenzek
3fa2bd1d3a
System: Confirm shutdown if memory card is being written 2024-04-22 01:41:42 +10:00
Stenzek
d3c12fecb3
Qt: Move dump audio on startup out of settings 2024-04-21 20:28:20 +10:00
Stenzek
c149d66d4d
System: Add 'Reduce Input Latency' option
i.e. pre-frame sleep.
2024-04-13 19:57:25 +10:00
Stenzek
7344661801
GPUDevice: Split submission and presentation 2024-04-11 22:53:02 +10:00
Stenzek
88270771da
System: Combine VRR and Optimal Frame Pacing
GSync/FreeSync display users should:
 - DISABLE VSync.
 - ENABLE Optimal Frame Pacing.
2024-04-11 21:33:40 +10:00
Stenzek
1b1e42d003
System: Add Error to boot/load/save state 2024-04-11 13:42:10 +10:00
Stenzek
71f50566f3
System: Consider pending ticks when using global ticks 2024-04-07 19:01:48 +10:00
Stenzek
e2024f6175
System: Change "Auto Load Cheats" to "Enable Cheats" 2024-03-03 14:03:07 +10:00
Stenzek
a1d7d214cf
GPUDevice: Add support for VRR and relaxed vsync 2024-03-03 14:03:07 +10:00
Stenzek
04b837a418
Qt: Redesign graphics settings panel
Add screenshot format/type.
2024-03-02 21:21:20 +10:00
Stenzek
c1381cfda6
System: Gracefully handle memory allocaion failure 2024-02-25 20:30:41 +10:00
Silent
d08a40bcd8
DiscordRPC: Show session time in Discord Rich Presence 2023-12-23 15:19:22 +01:00
Stenzek
e6be0532cb
System: Fix incorrect rewind VRAM estimation 2023-12-18 20:50:35 +10:00
Stenzek
7e2afe82b5
FullscreenUI: Fix opening while paused 2023-12-14 20:23:48 +10:00
Stenzek
afe8384b6d
System: Use Async HC mode disable for resuming 2023-11-27 00:45:00 +10:00
Stenzek
538266aacd
System: Fix Discord Rich Presence 2023-10-29 22:46:02 +10:00
Stenzek
7e07d2feb8 GunCon: Add relative pointer binding 2023-09-20 17:11:29 +10:00
Stenzek
68b59ee748 CMake: Swap USE_ and WITH_ for ENABLE_
Consistency.
2023-09-17 12:36:52 +10:00
Stenzek
c773c763ef Achievements: Switch to rc_client 2023-09-16 19:00:29 +10:00
Stenzek
80e3d29ab8 Misc: clang-cl warning clean-up 2023-09-03 14:30:26 +10:00
Stenzek
5421900bb2 System: Add InterruptExecution() 2023-08-30 22:20:36 +10:00
Stenzek
b483931444 System: Allow overriding BIOS in boot parameters 2023-08-30 22:20:36 +10:00
Stenzek
15af10e82a System: Expose memory save states 2023-08-30 22:20:36 +10:00
Stenzek
afaf5ddafd System: Centralize frame presentation 2023-08-30 22:20:36 +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
dc9c99438b Misc: Post-refactor cleanups 2023-08-24 18:01:32 +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
5b980dafa5 System: Refactor main loop
Reduces JIT exits.
Improves runahead performance.
2023-08-16 01:13:00 +10: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
1fcf16fc81 System: Store BIOS image info/hash after loading 2023-03-16 19:22:54 +10:00
Stenzek
0ef24398f8 Qt: Ensure system is shut down before closing
Fixes crash on shutdown on Mac.
2023-02-05 13:43:15 +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
19b4f4e921 System: Add frame time graph 2023-01-07 13:10:43 +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
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
106addf5a8 Qt: Fix shutdown and save state in fullscreen UI 2022-10-04 00:00:56 +10:00
Connor McLaughlin
05eecf9944 System: Fix very low underclocks locking up 2022-09-17 15:56:05 +10:00
Connor McLaughlin
bec0d6e7df HostDisplay: Add GPU usage statistics 2022-09-03 14:17:51 +10:00
Connor McLaughlin
54c2447ff3 System: Rework some throttler/vsync logic 2022-08-10 13:09:32 +10:00
Connor McLaughlin
6bf0ad789e fixup! Misc: Necessary emucore changes for Android 2022-08-05 17:07:07 +10:00
Connor McLaughlin
6386004b2c FullscreenUI: Fix incorrect vsync state on unpause 2022-07-26 21:46:18 +10:00
Connor McLaughlin
b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +10:00
Connor McLaughlin
50a09384e1 CommonHostInterface: Add onscreen indicator for rewind 2021-08-07 12:07:04 +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
67f352339c CommonHostInterface: Add swap memory cards hotkey 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
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
03f3f0369c GameList: Reduce number of system calls when scanning 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
50d712c3fe CDImage: Support sub-images, use subimages for m3u 2021-03-27 15:18:29 +10:00
Connor McLaughlin
6bbb1128b6 System: Hash executable for game code when system.cnf missing 2021-03-07 02:47:00 +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
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
09805c1f80 FullscreenUI: Fix controller navigation in disc change 2021-02-18 02:08:47 +10:00
Connor McLaughlin
55a1d0437d System: Display message on media change 2021-01-31 17:10:27 +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
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
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
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
3b23542ec9 CPU: Provide debugger/breakpoint/step functionality 2020-12-17 11:57:47 +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
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
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
ddb38ac31d Add pcsxr and libretro cheat list parsing 2020-09-09 22:11:28 +10:00
Connor McLaughlin
6bbbb96d4b Move GameList to FrontendCommon
Reduces libretro core dependencies further.
2020-09-01 12:46:44 +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
d9893bb127 System: Add option to use a single memory card for playlists 2020-08-16 00:20:10 +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
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
9496c992f7 System: Add an option to preload CD image to RAM 2020-07-22 00:03:22 +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
2a38090e7a HostDisplay: Move most backend logic to FrontendCommon 2020-06-30 03:03:56 +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
075380f8e0 Move most helper logic from base HostInterface to FrontendCommon 2020-06-09 02:35:37 +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
205297ac27 System: PSF (Portable Sound Format) loading support 2020-04-17 00:29:56 +10:00
Connor McLaughlin
81cf4b469f Frontends: Add shared command line interface
Also provides batch mode and automatic fullscreen switching.

  -help: Displays this information and exits.
  -version: Displays version information and exits.
  -batch: Enables batch mode (exits after powering off)
  -fastboot: Force fast boot for provided filename
  -slowboot: Force slow boot for provided filename
  -resume: Load resume save state. If a boot filename is provided,
    that game's resume state will be loaded, otherwise the most
    recent resume save state will be loaded.
  -state <index>: Loads specified save state by index. If a boot
    filename is provided, a per-game state will be loaded, otherwise
    a global state will be loaded.
  -statefile <filename>: Loads state from the specified filename.
    No boot filename is required with this option.
  -fullscreen: Enters fullscreen mode immediately after starting.
  -nofullscreen: Prevents fullscreen mode from triggering if enabled.
  -portable: Forces "portable mode", data in same directory.
  --: Signals that no more arguments will follow and the remaining
    parameters make up the filename. Use when the filename contains
    spaces or starts with a dash.
2020-04-13 22:17:09 +10:00