104 Commits

Author SHA1 Message Date
Connor McLaughlin
c89d94c2ff Move Cubeb AudioStream to FrontendCommon
This way it doesn't need to be built for libretro.
2020-10-11 12:21:08 +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
ff26881623 SDL: Add various options to settings menu 2020-10-09 18:09:10 +10:00
Connor McLaughlin
5bc61849eb FrontendCommon: Add duck icon to loading screens 2020-10-02 00:01:51 +10:00
Connor McLaughlin
5bfc82a517 SDL: Add CPU clock control options 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
7d01bedf07 BIOS: Automatically detect images, improve selection UI 2020-09-23 00:20:50 +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
03f052e12e FrontendCommon: Add auto cheat loading option 2020-09-09 23:44:02 +10:00
Connor McLaughlin
bf6b4514a0 SDL: Add cheat menu 2020-09-09 22:11:32 +10:00
Connor McLaughlin
4f8fd049d0 SDL: Fix crash on shutdown when save state selector used 2020-09-06 17:48:01 +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
3c46f7b44c ControllerInterface: Add XInput controller backend 2020-08-22 16:50:19 +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
07cc926775 SDL: Fix mismatch between saved and running settings 2020-08-20 00:49:39 +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
4e62b32d60 Add option to dump the contents of RAM to a file 2020-08-16 23:20:36 +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
9b7512f7b8 GPU/HW: Implement automatic resolution scale from window size 2020-08-03 03:06:03 +10:00
Connor McLaughlin
0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +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
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
Albert Liu
bf597aab44 Settings: Specify GPU resolution scale as VRAM size 2020-07-23 01:03:18 -07: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
8c3051ae14 SDL: Add widescreen hack option 2020-07-18 00:28:37 +10:00
Connor McLaughlin
48be73be5a SDL: Fix crash when changing debug settings while running 2020-07-14 01:26:43 +10:00
Albert Liu
9e316e4502 Settings: Add 8:7 display aspect ratio
Requested by users for some 256-width 240p titles (effectively 1:1 PAR
at 256x224 when overscan cropping is turned on).
2020-07-12 17:08:28 -07:00
Connor McLaughlin
97a946bd62 CommonHostInterface: Implement frame step hotkey 2020-07-08 02:05:36 +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
bf08385051 WindowInfo: Add surface_scale field 2020-07-01 01:57:25 +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
77291096db Settings: Add GPU adapter option and hook up to D3D11/Vulkan 2020-06-20 03:34:19 +10:00
Connor McLaughlin
1e26ded73c SDL: Use FrontendCommon D3D11 host display wrapper 2020-06-20 03:34:19 +10:00
Connor McLaughlin
d168947ae4 SDL: Support Vulkan 2020-06-19 00:18:51 +10:00
Albert Liu
53a2b8c03d SDL: Update advanced settings description 2020-06-16 09:53:18 -07:00
Connor McLaughlin
075380f8e0 Move most helper logic from base HostInterface to FrontendCommon 2020-06-09 02:35:37 +10:00
Connor McLaughlin
fe364d5e8b SDL: Include frame times in status bar 2020-05-30 02:19:01 +10:00
Connor McLaughlin
06621a9547 SDL: Fix second port controller/memcard type changes 2020-05-28 03:07:18 +10:00
Connor McLaughlin
81a7b147fc System: Add option to disable loading memory cards from save states 2020-05-27 02:06:56 +10:00
Connor McLaughlin
eb6b490c76 SDL: Ignore unused key modifiers 2020-05-27 00:27:52 +10:00
Connor McLaughlin
2156236f52 Frontends: Use common GL context wrapper 2020-05-25 15:02:44 +10:00
Connor McLaughlin
fa027d9c2a SDL: Add remove disc menu option 2020-05-20 02:26:23 +10:00
Connor McLaughlin
0bdac9e4be SDL: Add disable interlacing to quick settings menu 2020-05-17 17:58:32 +10:00
Connor McLaughlin
c475923bdd SDL: Add log level settings to debug menu 2020-05-17 14:12:36 +10:00
Connor McLaughlin
8fd3a83ea8 Settings: Save DMA timing hacks to ini 2020-05-17 14:12:35 +10:00