390 Commits

Author SHA1 Message Date
Stenzek
7971bb949b
GPU/HW: Add Scale2x/Scale3x texture filters 2025-04-08 20:10:58 +10:00
Stenzek
dfa96e080d
GPU: Implement MMPX texture filter 2025-04-06 23:16:59 +10:00
Stenzek
5034fb943c
Hotkeys: Rearrange categories for some shortcuts and improve naming 2025-04-06 23:16:03 +10:00
Stenzek
b798d8f1aa
Settings: Add option for enabling GPU-based validation 2025-03-30 23:20:39 +10:00
Stenzek
d2c09dfaff
Settings: Split read and seek cycles for maximum CD speedup 2025-03-30 22:00:21 +10:00
Stenzek
576658b6eb
Settings: Max speedup cycles should be at least 1 2025-03-28 21:23:32 +10:00
Stenzek
741e971681
GPU/HW: Add 'True Color (Full)' dithering mode
This is equivalent to the old 'True Color' mode.

The new 'True Color' mode truncates flat-shaded sprites/polygons
to 16-bit color before drawing. Doing so fixes:

- Menu background in Breath of Fire IV.
- Loading background in JumpStart Wildlife Safari - Field Trip.
- and other similar games.
2025-03-22 18:32:31 +10:00
Stenzek
2311c8d287
Settings: Convert dithering/true color options to a dropdown
Half of them are mutually exclusive, so this simplifies things.
Fewer options = better, right?
2025-03-22 18:20:51 +10:00
Stenzek
32b09193d1
Qt: Move force video timing to console settings
Since it's related to the region, it makes sense to be in here.
And it frees up precious vertical space.
2025-03-22 18:20:51 +10:00
Stenzek
62d7a73381
GPU/HW: Add 'Scaled Interlacing' option
Disabling this option causes rendering to skip N lines instead of 1
line, where N is the internal resolution multiplier.
2025-03-22 01:19:01 +10:00
Stenzek
2bfbec3e9e
Settings: Use new key name for depth threshold
Because of the changed range.
2025-03-07 21:32:57 +10:00
Stenzek
e73ca9e052
Qt: Fix new range for depth clear threshold 2025-03-07 18:05:20 +10:00
Stenzek
b230c9c639
CPU/PGXP: Use GTE MAX_Z for Z normalization
Fixes clipping with depth buffer in some games, e.g. Final Fantasy VII battles.
2025-03-06 22:41:10 +10:00
Stenzek
ec7c83a58e
Settings: Fix race toggling OSD messages 2025-02-28 16:29:18 +10:00
Stenzek
3ea26cc910
GPU: Rewrite automatic resolution scaling
Make it play nice with rewind/runahead.
2025-02-21 23:58:05 +10:00
Stenzek
e9bfca8cca
System: Add 'Fast Forward Memory Card Access' option
Does what it says on the tin.
2025-02-15 12:38:32 +10:00
Stenzek
ecbb79c4bf
GPU: Add Lanczos scaling option 2025-02-05 20:01:26 +10:00
Stenzek
af277d4d14
Settings: Default to nearest sprite texture filtering
Instead of whatever the 3D texture filter is.

Less confusing since the UI is not disconnected when upgrading from very
old releases, or Android.
2025-02-02 22:57:31 +10:00
Stenzek
59773509af
System: Recreate memory save states when device options change 2025-02-02 22:54:32 +10:00
Stenzek
64d3716cfd
GPU: Further simplify draw rect calculation
Remove "Stretch Vertically" option, it was very confusing to users.

Integer scale will prefer whichever direction gets a larger draw
rectangle/preserves as much detail.
2025-02-02 17:02:58 +10:00
Stenzek
369879e685
Settings: Log when creating EmuFolders fails 2025-01-30 02:11:23 +10:00
Stenzek
9113a6e6a6
Qt: Add 'Multiple Devices' to automatic mapping
Also populate the "current device" label with the device from
the config when running the setup wizard, instead of always setting
the label to Keyboard.
2025-01-22 18:38:37 +10:00
Stenzek
462a4a3b50
Controller: Refactor so that GetControllerInfo() can't return null 2025-01-13 16:07:43 +10:00
Stenzek
d25cffebd5
GPU/HW: Disable depth testing with semitransparency
But provide an option to enable it.
2025-01-09 21:45:14 +10:00
Stenzek
40589dcd93
Settings: Add advanced option to set delay for max CD speedup
Affects both seeks and reads.
2025-01-09 21:21:12 +10:00
Stenzek
4449ae7904
Settings: Rearrange fields to avoid padding 2025-01-09 21:21:12 +10:00
Stenzek
f3f99f7eac
FullscreenUI: Support renderer swapping without restart 2024-12-23 14:37:38 +10:00
Stenzek
9e04b0bf55
GPU/TextureCache: Add 'Always Track Uploads' option 2024-12-23 13:52:23 +10:00
Stenzek
62285dcf33
Settings: Split into GPU and main settings
That way the GPU thread copy doesn't need fields it never touches.
2024-12-21 14:53:15 +10:00
Stenzek
2d659fc3eb
GPU: Move backend work off CPU thread 2024-12-19 23:32:15 +10:00
Stenzek
5687dd22bd
PIO: Add basic flash cartridge support 2024-12-13 23:22:57 +10:00
Stenzek
d871c17f3f
Settings: Set sprite texture filter on reset 2024-12-11 14:54:26 +10:00
Stenzek
d5432da082
Settings: Disable runahead/rewind in Safe Mode 2024-12-08 02:58:50 +10:00
Stenzek
f9155e5ce7
Settings: Fix incorrect data type for rewind slots 2024-12-08 02:58:50 +10:00
Stenzek
5c4d95fd51
Settings: Add missing GPU feature disables 2024-12-06 15:07:56 +10:00
Stenzek
5b6e3a952c
System: Reset code cache on fastmem mode change
Fixes excess backpatching and potential crashes when changing mode.
2024-12-03 17:29:47 +10:00
Stenzek
0a2facfaeb
Settings: Don't enable fastmem without recompiler
Don't need to bother allocating memory otherwise.
2024-12-03 16:54:42 +10:00
Stenzek
9fc9f4b9e9
Settings: Fix hash cache fields not being compared 2024-12-01 16:53:29 +10:00
Stenzek
9dec34c8c0
Settings: Disable texture replacements if TC disabled
Stops replacements being enumerated in the software renderer as well.
2024-11-30 14:42:51 +10:00
Stenzek
5401dc8d52
Settings: Add EmuFolders::IsRunningInPortableMode() 2024-11-29 17:06:40 +10:00
Stenzek
eb390a9b5d
GPU/TextureCache: Specify max hash cache size/memory in config 2024-11-27 17:52:31 +10:00
Stenzek
0befbf8021
GPU: Add Uncorrected Borders crop mode
Should behave the same as the old "All Borders" mode.
The pixel aspect ratio WILL BE WRONG.

Also fixes the size of screenshots in internal resolution mode.
2024-11-26 18:00:19 +10:00
Stenzek
57595c47af
GPU/TextureCache: Move replacement cache onto the GPU
And enforce a maximum. Should sort out the upload spam.
2024-11-25 19:37:28 +10:00
Stenzek
b180b26728
GPU: Rework "All Borders" cropping to be aspect correct
The "All Borders" crop mode was previously creating an aspect ratio that
was completely incorrect when using modes outside of Auto/4:3. We now
scale the aspect ratio relative to the PAL/NTSC aspect ratio to account
for this, regardless of how much of a border the game configures.

Overscan cropping also produced an incorrect aspect ratio outside of 4:3
mode, resulting in minor horizontal stretching. It is now correct,
however, this results in black borders being added in 16:9 for most
games.

To remove these borders, you have two options:

 - Use the "Stretch to Fill" aspect ratio. This will scale the GTE
   aspect ratio to fill the screen.

 - Use the "Only Overscan Area (Aspect Uncorrected)" crop mode. This
   mode retains the "old" behaviour, resulting in a stretched image.
2024-11-25 16:26:16 +10:00
Stenzek
f67eacc071
CPU: Default to new recompiler/remove old recompiler 2024-11-23 18:52:46 +10:00
Stenzek
5a948800b7
Achievements: Purge first-disc-from-playlist option
Unnecessary since all disc's hashes are registered.
2024-11-19 20:13:22 +10:00
Stenzek
6551358212
Log: Replace channel string search with bitset
Knocks off around ~20KB of code.
2024-10-31 14:41:33 +10:00
Stenzek
a3d55c6e30
Misc: Android build fixes 2024-10-30 15:19:10 +10:00
Stenzek
166c930738
System: Move private functions to separate header 2024-10-28 14:31:22 +10:00
Stenzek
080807e557
CDROM: Move subchannel replacement from CDImage
This will allow you to use SBI/LSD files with real discs, if your
drive does not support reading subchannels, or has an incorrect
skew.
2024-10-25 15:35:12 +10:00