Commit graph

265 commits

Author SHA1 Message Date
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 e81df6bddd Settings: Disable host refresh rate sync by default 2021-01-16 02:56:04 +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 43d01776dc HostInterface: Add "Sync To Host Refresh Rate" option 2021-01-11 03:50:44 +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 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 3cb2cd8235 GPU: Add adaptive and box downsampling modes 2020-12-30 17:41:39 +10:00
Connor McLaughlin 68ce959d70 Settings: Add option to temporarily disable all enhancements 2020-12-30 17:39:29 +10: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 ca42d027ac Qt: Implement relative mouse mode 2020-12-28 00:37:04 +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 a385573672 Qt: Add texture replacement options to advanced settings 2020-12-26 00:47:03 +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 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 678146b907 HostInterface: Add separate volume control for fast forwarding 2020-12-09 01:03:32 +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 af6b0dc189 Qt: Add option to pause on application focus loss 2020-12-05 02:08:10 +10:00
Connor McLaughlin 362905e3df GPU: Add display line offset game setting
Use when games need additional cropping.
2020-12-04 00:33:04 +10:00
Connor McLaughlin a2666de7c8 HostInterface: Make mmap fastmem unavailable a warning instead of OSD message 2020-12-01 13:23:02 +10:00
Connor McLaughlin f0ff7ce231 PGXP: Add geometry tolerance setting 2020-11-27 01:40:50 +10:00
Connor McLaughlin bf2e38aed5 CPU/Recompiler: Implement LUT-based fastmem 2020-11-24 14:49:21 +10:00
Connor McLaughlin 2595e31575 GPU: Split software to frontend/backend 2020-11-21 18:39:04 +10:00
Connor McLaughlin 2b66492ed8 HostInterface: Add proper turbo speed setting 2020-11-03 22:59:26 +10:00
Connor McLaughlin 2c8a4ff154 HostDisplay: Add an option to decouple display fps from emulator fps
Makes Android so much faster...
2020-11-03 16:17:45 +10:00
Connor McLaughlin ae1e4b1b8f GPU: Add chroma smoothing for 24-bit display enhancement 2020-11-03 16:17:45 +10:00
Connor McLaughlin 2b2a868fef HostInterface: Fix incorrect translation context in CPU mode switch string 2020-11-02 00:56:05 +10:00
Connor McLaughlin 2eaebd8921 GPU: Implement support for multisample antialiasing 2020-10-31 14:27:58 +10:00
Albert Liu df1c5c0f45 HostInterface: Fix PAL BIOS path not being read from settings 2020-10-29 14:26:07 -07:00
Connor McLaughlin 29467d40c8 DMA: Add debug window 2020-10-30 00:44:39 +10:00
Connor McLaughlin be3dd3e06f HostInterface: Fix a possible crash when renderer recreation fails 2020-10-27 11:57:41 +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 13a9411b07 Android: Add BIOS importer 2020-10-10 17:42:21 +10:00
Connor McLaughlin 4f0007dd55 PGXP: Make preserving pre-divide fractional coordinates an option
Fixes holes in geometry in Crash Team Racing with PGXP on.
2020-10-10 00:07:07 +10:00
Connor McLaughlin 8ba93b36a0 CDROM: Add option to speed up double speed reads 2020-10-05 00:18:10 +10:00
Connor McLaughlin ca0bfc39a2 CDROM: Add a setting and hotkey to mute CD audio 2020-10-04 00:12:01 +10:00
Connor McLaughlin c051538d03 HostInterface: Mark some more OSD messages as being translatable 2020-10-03 01:06:04 +10:00
Connor McLaughlin 27697d0508 System: Implement CPU overclocking [SAVEVERSION+]
Partial credit to @CookiePLMonster as well.
2020-09-30 23:48:34 +10:00
Connor McLaughlin d73271ec0a GPU: Add option to force 4:3 for 24-bit content (e.g. FMVs) 2020-09-26 15:11:45 +10:00
Connor McLaughlin 40d157aa23
Merge pull request #875 from CookiePLMonster/more-slashes
Fix an outstanding forward slash showing in the UI
2020-09-23 22:55:40 +10:00
Connor McLaughlin d728bc091b BIOS: Add option to set search directory elsewhere 2020-09-23 22:53:51 +10:00
Silent e6431e3599
Fix an outstanding forward slash showing in the UI 2020-09-22 18:24:45 +02:00
Connor McLaughlin 78f06fb711 libretro: Fix breakage with new BIOS detection 2020-09-23 02:11:30 +10:00
Connor McLaughlin 7d01bedf07 BIOS: Automatically detect images, improve selection UI 2020-09-23 00:20:50 +10:00
Silent 92d0dabf54
Make path separators in UI more consistent 2020-09-20 00:08:17 +02:00
Connor McLaughlin 441f26706e Qt: Move post processing to its own setting category 2020-09-13 22:27:30 +10:00
Connor McLaughlin 2819715260 FrontendCommon: Add a post processing implementation 2020-09-13 01:23:43 +10:00
Connor McLaughlin 6f250a4ff7 GPU/HW: Add JINC2 and xBRZ texture filtering options
Shaders ported from beetle-psx.
2020-09-12 00:26:34 +10:00
Connor McLaughlin 9bb278b166 CommonHostInterface: Fix crash on shutdown when using save state selector 2020-09-06 21:03:27 +10:00
Connor McLaughlin a2eaaf0e89 PGXP: Allocate large storage dynamically
This causes performance issues on ARM otherwise.
2020-09-03 00:11:40 +10:00
Connor McLaughlin 13e3095801 Core: Don't link to imgui for libretro core 2020-09-01 12:22:32 +10:00
Connor McLaughlin 19d6037b99 CPU: Implement instruction cache simulation
Implemented for all execution modes. Disabled by default in the cached
interpreter and recompiler, always enabled in the pure interpreter.
2020-08-29 22:07:40 +10:00
Connor McLaughlin ab002e78e1 Support translating strings in emulator core 2020-08-22 13:06:20 +10:00
Connor McLaughlin bca609a2a6 Qt: Add option to disable per-game settings 2020-08-21 00:09:37 +10:00
Connor McLaughlin c3ce9135bf Fix recompiler not auto-disabling with PGXP-CPU mode 2020-08-21 00:09:37 +10:00
Connor McLaughlin 60d3fffec1 Add per-game overrides (mainly for compatibility) 2020-08-21 00:09:37 +10:00
Connor McLaughlin 2e9f656546 CPU: Implement PGXP CPU Mode
This is *very* slow. You don't want to enable it if you don't need it.
It is also incompatible with the recompiler and will disable it if the
option is enabled.
2020-08-20 00:49:39 +10:00
Connor McLaughlin 10a46a7fd8 OSD: Add option to show display resolution 2020-08-16 00:20:11 +10:00
Connor McLaughlin 26aa627deb GPU/HW: Include resolution in scale change message 2020-08-16 00:20:11 +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 d1ee6c0da7 GPU/HW: Make settings update slightly safer 2020-08-12 02:27:52 +10:00
Connor McLaughlin 3a020ef87e HostInterface; Fix crash on shutdown if boot fails 2020-08-11 03:01:08 +10:00
Connor McLaughlin 5c6e92cdfc GPU/HW: Disable coordinate clamping when unnecessary 2020-08-10 23:28:37 +10:00
Connor McLaughlin 1d5f810a4b CPU/Recompiler: Disable memory access exceptions by default
This means it'll no longer pass amidog's CPU test in the default config.
But no games rely on this. You can enable it in advanced options if you
want to pass the CPU test.
2020-08-08 23:44:13 +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 0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +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 8802177e25 BIOS: Add more revision filenames/hashes 2020-07-31 16:28:15 +10:00
Connor McLaughlin 104b80f111 HostInterface: Move 'System shut down' message to SDL
Only frontend where it makes sense anyway.
2020-07-23 02:45:20 +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 68d98af497 Qt: Remove usage of QString where possible for settings 2020-07-21 20:10:06 +10:00
Connor McLaughlin bddd098a66
Merge branch 'master' into qt-inisettings 2020-07-21 13:28:18 +10:00
Connor McLaughlin 5c1c467e38 GTE: Add widescreen hack 2020-07-18 00:28:37 +10:00
Albert Liu 9b2740b395 HostInterface: Save tweak/hack defaults to settings file
Fixes tweak/hack defaults not displaying correctly in Qt frontend.
2020-07-16 20:35:18 -07:00
Connor McLaughlin 7ba1bed37b Settings: Leave interlacing on by default
Too many games break without it.
2020-07-14 01:27:57 +10:00
Connor McLaughlin b0b3901722 libretro: Fix DualShock analog mode auto-enable 2020-07-05 00:05:14 +10:00
Connor McLaughlin f396a2c373 Renderers: Make shader cache path a prefix instead of directory 2020-07-04 22:14:07 +10:00
Connor McLaughlin b471d1043a Settings: Load Memory Cards From State -> Load Devices From State
Makes it apply to controllers too.
2020-07-02 00:50:53 +10:00
Connor McLaughlin e374853cf5 HostInterface: Better configuration of custom crosshair/software cursor 2020-07-01 01:57:25 +10:00
Connor McLaughlin 0b11a14e24 Qt: Better handling of default settings not in ini 2020-07-01 00:56:46 +10:00
Connor McLaughlin 4dc9e10777 HostInterface: Support per-controller-type settings 2020-07-01 00:56:46 +10:00
Albert Liu 7c206766ae HostInterface: Save default setting to AspectRatio, not PixelAspectRatio
Fixes inconsistency with default settings saving to PixelAspectRatio,
but loading from AspectRatio instead. PixelAspectRatio was not being
used elsewhere.
2020-06-23 09:24:50 -07:00
Connor McLaughlin eec37df1e0 Settings: Make the recompiler the default CPU mode 2020-06-24 01:39:42 +10:00
Connor McLaughlin 49d11988bf Core: Add Vulkan GPU renderer 2020-06-19 00:18:17 +10:00
Connor McLaughlin 075380f8e0 Move most helper logic from base HostInterface to FrontendCommon 2020-06-09 02:35:37 +10:00
Connor McLaughlin f9eb3719e3 HostInterface: Add software cursor mode
This will probably need to be extended in the future.
2020-06-08 02:53:55 +10:00
Connor McLaughlin 531c3ad5fa AudioStream: Replace buffer queue with ring buffer
Should achieve a decent overall minimum latency reduction.
2020-06-07 01:22:03 +10:00
Connor McLaughlin 6acd8b27dd Qt: Prevent lag disabling power on buttons when starting 2020-06-06 03:44:57 +10:00
Connor McLaughlin 81a7b147fc System: Add option to disable loading memory cards from save states 2020-05-27 02:06:56 +10:00