Connor McLaughlin
14b2506d7d
HostInterface: Disable true color/enable scaled dithering by default
...
Too many games are broken with it enabled. The number which break with
scaled dithering is much smaller.
2020-05-15 01:41:58 +10:00
Connor McLaughlin
bf3c83658a
GPU: More accurate texture blending in non-true-colour-mode
...
Fixes Silent Hill loading animation, Advanced V.G. intro fade-out, and
probably others.
2020-05-15 01:32:22 +10:00
Connor McLaughlin
c114873ed8
GPU: Fix height underflow in CRTC calculations
2020-05-14 01:25:43 +10:00
Connor McLaughlin
3472e37d21
GPU: Synchronize before clearing FIFO
2020-05-14 01:25:10 +10:00
Connor McLaughlin
c0ea35ccdc
GPU: Fix parameters not applying on startup
2020-05-14 01:24:39 +10:00
Connor McLaughlin
d461d7c87a
SPU: Fix reverb write regression from e07d3c9d
2020-05-13 13:47:33 +10:00
Connor McLaughlin
db9d637f92
HostInterface: Fix mute not applying on startup
2020-05-13 13:47:12 +10:00
Connor McLaughlin
e07d3c9db2
SPU: Fix array bounds overflow in register reads
2020-05-13 12:37:13 +10:00
Connor McLaughlin
777809b3b0
CDROM: Fix XA filter change not applying immediately
...
Fixes audio getting cut off in PaRappa the Rapper - The Hip Hop Hero,
underwater music in R-Type Delta.
2020-05-13 00:14:20 +10:00
Connor McLaughlin
d6f6154380
CDROM: Read last delivered sector when pausing and reading without seek
...
Fixes Adidas Pro Soccer, Bedlem, Rise 2.
2020-05-13 00:13:57 +10:00
Connor McLaughlin
d866bd9cb8
CDROM: Reset XA resampler state on read
...
Should get rid of pops when switching files.
2020-05-12 12:36:10 +10:00
Connor McLaughlin
634880b5e3
SPU: Clamp before applying main volume not after
...
Fixes popping in Monkey Magic.
2020-05-12 02:15:18 +10:00
Connor McLaughlin
81f297456c
GPU: Fix mismatched scanout between hardware/software renderers
2020-05-12 01:35:06 +10:00
Connor McLaughlin
37d9f6344d
CDROM: Ignore Read/Play command without setloc/param
...
Fixes title screen music in Monkey Magic.
2020-05-11 22:55:14 +10:00
Connor McLaughlin
65c42cd30e
GPU: Don't use field offset for ODE in vblank
2020-05-11 22:26:10 +10:00
Connor McLaughlin
2bc1c67236
GPU/HW: Fix extra column being added with unaligned 24-bit scanout
...
Fixes pink lines in FMVs of NASCAR Thunder 2004.
2020-05-11 22:03:35 +10:00
Connor McLaughlin
c329f58afe
HostInterface: Add audio buffer/count/volume/mute settings
2020-05-10 00:44:37 +10:00
Connor McLaughlin
f17c2c44d0
GPU/HW: Fix red bleeding when writing VRAM with mask bit set
...
Fixes menu screen in Twisted Metal 4.
2020-05-09 14:38:06 +10:00
Connor McLaughlin
f679f8d063
GTE: Fix buggy MVMVA instruction
2020-05-09 13:48:45 +10:00
Connor McLaughlin
9959440a3a
SPU: Align starting addresses to two words
...
Fixes interrupts firing early and occasional broken speech in Valkyrie
Profile.
2020-05-08 21:36:47 +10:00
Connor McLaughlin
684e83168e
CDROM: Prevent successful seeking to the lead-out area of the disc
2020-05-08 15:41:45 +10:00
Connor McLaughlin
9539ce032b
AnalogController: Show controller number in OSD messages
2020-05-08 15:32:39 +10:00
Connor McLaughlin
95468901f2
AnalogController: Add analog toggle button
2020-05-08 15:13:07 +10:00
Connor McLaughlin
5b389ae13d
CDROM: Synthesize lead-out area and stop reading when reached
2020-05-08 10:51:49 +10:00
Connor McLaughlin
85707f809c
Pad: Fix OSD error message when save state memory cards mismatch
2020-05-08 00:49:04 +10:00
Connor McLaughlin
0f5bc7267f
HostInterface: Fix hang when switching audio backends
2020-05-05 03:04:28 +10:00
Connor McLaughlin
257c86930f
GPU/OpenGL: Fix GLES again
2020-05-03 19:38:27 +10:00
Connor McLaughlin
8139230d05
GPU/OpenGL: Shader compile fix
2020-05-03 18:33:33 +10:00
Connor McLaughlin
e058beb4b0
GPU/HW: Fix oversized VRAM copies writing out of bounds
...
Fixes jittering in Duke Nukem - Land of the Babes water effect.
2020-05-03 18:09:34 +10:00
Connor McLaughlin
91d7212b36
GPU/OpenGL: Fix swapped log statement
2020-05-03 18:09:31 +10:00
Connor McLaughlin
9446587e8f
GPU/HW: Mask bit handling in hardware renderers
...
Fixes:
- Menu effect in Ghost in the Shell
- Incorrect text colours in menu of Dragon Quest VII
- Fade effect in TwinBee RPG
- Fog in Silent Hill
- Water in Duke Nukem - Land of the Babes
- Shadows in Ultraman - Fighting Evolution
and probably others.
2020-05-03 17:11:31 +10:00
Connor McLaughlin
456ddc037a
GPU/OpenGL: Remove testing code which broke ES
2020-05-03 02:52:36 +10:00
Connor McLaughlin
620210cfc9
GPU/OpenGL: Use explicit bindings where possible
2020-05-02 16:01:16 +10:00
Connor McLaughlin
9dc82a738f
GPU/OpenGL: Fix incorrect fragcolor binding
2020-05-02 15:13:17 +10:00
Connor McLaughlin
d8ab587153
HostInterface: Modify settings loading interface to support per-frontend settings
2020-05-01 01:01:50 +10:00
Connor McLaughlin
b4c31e55e2
HostDisplay: Add integer upscaling option
2020-05-01 01:00:22 +10:00
Connor McLaughlin
e37962009e
HostInterface: Add log lettings to ini
2020-05-01 00:58:32 +10:00
Connor McLaughlin
5cd78dcab5
DMA: Fix an unlikely case where LL DMA gets stuck on
...
Fixes Frogger.
2020-04-30 14:52:38 +10:00
Connor McLaughlin
dc487655df
CDROM: More timing refinements
2020-04-30 01:36:07 +10:00
Connor McLaughlin
5a6c029814
GPU: Disable dual-source blending on Mesa Gen7/Gen7.5
...
Apparently it's broken. Need to look into it more.
2020-04-30 01:27:50 +10:00
Connor McLaughlin
59f055f4b9
HostInterface: Make title-based memory cards the default
2020-04-30 01:21:18 +10:00
Connor McLaughlin
226459b60f
SPU: Add missing register read for ENDX
2020-04-30 01:12:17 +10:00
Connor McLaughlin
2d92e0a819
CDROM: Reduce ACK timing
2020-04-30 00:12:39 +10:00
Connor McLaughlin
557a6c3696
GPU/HW: Work around rasterization differences in OpenGL
...
Strangely, AMD GPUs are fine, it's just NVIDIA and Intel. Time for a
Vulkan renderer?
2020-04-29 21:17:49 +10:00
Connor McLaughlin
940b725c1d
Settings: Make DMA performance parameters tweakable
2020-04-29 20:00:22 +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
07e8ddcae2
DMA: Elide intermediate copy where possible
...
Easy 5% performance improvement.
2020-04-29 16:52:11 +10:00
Connor McLaughlin
8f82987341
Controller: Add basic PlayStation Mouse support
...
Still needs capture/relative movement for a better experience.
2020-04-29 14:00:11 +10:00
Connor McLaughlin
5a1b00825d
GPU: Fix timer 1 IRQs sometimes triggering late
...
Should hopefully fix missing voices in Akuji the Heartless.
2020-04-28 20:31:16 +10:00
Connor McLaughlin
a5ff904b33
SPU: Clear ENDX flag on key on
2020-04-28 20:30:16 +10:00
Connor McLaughlin
be9033b6c0
SPU: Add missing clamp in ADPCM decoder
2020-04-28 17:55:43 +10:00
Connor McLaughlin
b16ecd7a86
SPU: ENDX register should get set when looping as well as muting
2020-04-28 16:57:14 +10:00
Connor McLaughlin
ce46dbeeca
GPU/HW: Fix another vertex culling error
2020-04-28 02:07:56 +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
d04b252962
AnalogController: Reduce the number of commands which enable analog mode
...
Hopefully will fix those games where it's expecting digital outputs but
getting analog.
2020-04-28 00:34:34 +10:00
Connor McLaughlin
8605620c24
SPU: Force all voices off when SPUCNT.15=0
2020-04-27 23:33:24 +10:00
Connor McLaughlin
8c6cb877eb
GPU: Disable display when CRTC configuration is invalid
2020-04-27 21:49:34 +10:00
Connor McLaughlin
74e455a5f7
System: Support per-game memory cards
2020-04-27 16:22:25 +10:00
Connor McLaughlin
36444b264f
GPU/D3D11: Restore API state after updating settings
...
Should fix the debug layer warnings when adjusting resolution scale.
2020-04-27 13:52:59 +10:00
Connor McLaughlin
304391bd00
GPU: Truncate sprite/rectangle positions to 12 bits before rendering
...
Fixes disappearing objects in Skullmonkeys.
2020-04-27 12:51:18 +10:00
Connor McLaughlin
746a00743e
GPU/HW: Don't emit dual-source colour writes on opaque pass
...
Fixes warnings triggering in D3D11 debug runtime.
2020-04-27 00:52:02 +10:00
Connor McLaughlin
dc1e1b5adf
GPU/HW: Fix too-large polygon culling
...
Fixes graphical corruption in some levels of Point Blank 2.
2020-04-26 21:43:28 +10:00
Connor McLaughlin
98ff136f67
GPU: Round texture coordinates instead of flooring
...
Fixes misaligned textures in some games such as Crash Bandicoot.
Currently, because the vertex offset is not applied at >1x resolution
scale, this will not work so it is disabled at >1x.
2020-04-26 19:15:50 +10:00
Connor McLaughlin
d1e841f55d
GTE: Use intrinsic CountLeadingZeros()
...
Super tiny micro-optimization.
2020-04-26 18:33:35 +10:00
Connor McLaughlin
38b075c014
NamcoGunCon: Use mouse position from host display
2020-04-26 17:37:12 +10:00
Connor McLaughlin
1000cb30a9
HostDisplay: Track mouse position
2020-04-26 17:36:49 +10:00
Connor McLaughlin
e6bd6587fd
Controller: Add emulation of Namco GunCon
2020-04-26 01:23:58 +10:00
Connor McLaughlin
2026ef99e8
MemoryCard: Last byte should not set /ACK
2020-04-26 01:23:08 +10:00
Connor McLaughlin
fccc2dd295
DigitalController: Store button state/transfer state in save states
2020-04-26 01:23:01 +10:00
Connor McLaughlin
2ffcad3d37
GPU: Add method to convert from window coordinates to beam ticks/lines
2020-04-26 01:22:56 +10:00
Connor McLaughlin
194fc63232
GameList: Flush game list after re-scanning
...
Should hopefully fix random gamelist corruption.
2020-04-25 15:23:41 +10:00
Connor McLaughlin
25af5ef9d9
MemoryCard: Save FLAG to state
2020-04-25 15:00:14 +10:00
Connor McLaughlin
92255c8ddd
System: Don't drop audio buffers when time lost
2020-04-25 14:51:25 +10:00
Connor McLaughlin
f98c9b4084
GPU/HW: Fix display being cut off when cropping+upscaling
2020-04-25 14:37:56 +10:00
Connor McLaughlin
7fae169bbb
Timer: Don't let writes affect IRQ state
2020-04-25 14:17:44 +10:00
Connor McLaughlin
72f6503bec
CDROM: Reduce speed change delay
2020-04-25 14:16:36 +10:00
Connor McLaughlin
a4416d8cf5
CDROM: Add seek time when starting reading/playing without setloc
2020-04-25 14:16:20 +10:00
Connor McLaughlin
191c3450cc
SPU: Port reverb algorithm from Mednafen-PSX
2020-04-25 00:37:02 +10:00
Connor McLaughlin
6e6c11f8bf
GPU: Fix dithering enable check for non-textured polygons
...
Fixes screen fade out effects in Final Fantasy VIII.
2020-04-24 19:53:49 +10:00
Connor McLaughlin
e34b78ab80
SPU: Fix pitch modulation
2020-04-24 15:50:35 +10:00
Connor McLaughlin
1891b45b0e
GPU/OpenGL: Fix shader compile error on NVIDIA
2020-04-24 03:30:32 +10:00
Connor McLaughlin
715209e178
GPU/HW: Truncate colours to 16-bit before applying alpha
...
Fixes battle screen transitions blowing out in brightness in Final
Fantasy 7.
2020-04-24 03:26:54 +10:00
Connor McLaughlin
4a4c3d5e3b
GL/Texture: Add internal format as parameter
2020-04-24 03:21:44 +10:00
Connor McLaughlin
990147b7e9
GPU/HW: Use uint in CPU-side vertex attributes
2020-04-23 15:55:49 +10:00
Connor McLaughlin
e2f5905cd6
GPU/HW: Use unsigned integers in shaders for texcoords
...
Probably needs testing on GLES.
2020-04-23 15:14:19 +10:00
Connor McLaughlin
30033ed4aa
GPU/HW: Minor improvements to texture filtering
2020-04-23 15:08:28 +10:00
Connor McLaughlin
13e2b28f50
GPU/HW: Only apply vertex offset at 1x resolution scale
2020-04-23 14:45:11 +10:00
Connor McLaughlin
a02c818245
HostDisplay: Drop some unused methods
2020-04-22 21:15:59 +10:00
Connor McLaughlin
d7aa514f14
GPU/HW/OpenGL: Work around vertex-Y-off-by-one issue
2020-04-22 17:39:46 +10:00
Connor McLaughlin
ec5b52b3fb
GPU/HW: Tweak vertex shader offsets
...
Fixes Doom/Dark Forces/etc in hardware renderer, but only at 1x
resolution. Fixes missing lines in Castlevania SOTM, Ridge Racer Type 4,
etc.
2020-04-21 22:07:55 +10:00
Connor McLaughlin
834f3768a1
GPU/HW: Line coordinate typo fix
2020-04-21 16:01:04 +10:00
Connor McLaughlin
1ee418aebf
GPU/HW: Fix additional polyline vertices drawing
2020-04-21 15:45:22 +10:00
Connor McLaughlin
08c8d1a521
System: Support saving screenshots in save states
2020-04-21 02:50:45 +10:00
Connor McLaughlin
aaf9dcaf02
GPU/HW: Fix possible crash when drawing polylines
2020-04-20 13:00:57 +10:00
Connor McLaughlin
4655aa02f8
CPU/CodeCache: Fix uninitialized pointers
2020-04-20 12:35:57 +10:00
Connor McLaughlin
badfe6117e
GPU: Remove textured draw time penalty
...
Fixes missing elements in Bloody Roar 2.
2020-04-20 12:25:00 +10:00
Connor McLaughlin
759c7c52d5
GPU: Don't wedge when other commands are in FIFO with polyline
...
Fixes Ridge Racer Type 4.
2020-04-20 01:10:41 +10:00
Connor McLaughlin
b893c0abf5
GPU/Software: Fix copies when overlapping and oversized
2020-04-20 00:54:50 +10:00
Connor McLaughlin
f1d1129e05
CDROM: Don't assert if SetMode.bit4 is set
2020-04-19 22:31:22 +10:00
Connor McLaughlin
5ad133a278
GPU/HW: Implement oversized copies on GPU
...
Fixes slowdown caused by this.
2020-04-19 22:30:55 +10:00
Connor McLaughlin
045c4d1745
SPU: Fix adsr_volume read for pending key-on voice
...
Fixes cutscene audio in Spyro 2, probably others.
2020-04-19 18:19:55 +10:00
Connor McLaughlin
3319adfa2f
GPU: Tweak rectangle draw times
2020-04-19 16:57:51 +10:00
Connor McLaughlin
d5a5432a8b
CPU/CodeCache: Fix crash when BIOS is missing
2020-04-19 16:03:35 +10:00
Connor McLaughlin
610cc74cb9
GPU: Add primitive setup timing
2020-04-19 15:26:27 +10:00
Connor McLaughlin
16500064f8
GPU: Tweak triangle draw times
2020-04-19 15:24:40 +10:00
Connor McLaughlin
6ef3626599
GPU/HW: Fix a possible crash in rectangle expansion
2020-04-19 14:34:17 +10:00
Connor McLaughlin
1757932b3a
GPU: Implement FIFO and timings
...
This will cause a slight performance loss. I've left some knobs in which
can be tweaked to mitigate this, but the goal is to be compatible with
all games which require them.
2020-04-19 01:17:28 +10:00
Connor McLaughlin
65ca8b9fe0
GPU/HW: Move logic from backend to GPU_HW class
2020-04-18 15:30:46 +10:00
Connor McLaughlin
205297ac27
System: PSF (Portable Sound Format) loading support
2020-04-17 00:29:56 +10:00
Connor McLaughlin
38847de8ee
GameList: PAPX and SCZS prefixes should be NTSC-J
2020-04-16 21:42:09 +10:00
Connor McLaughlin
197b193ca3
GPU/HW/OpenGL: Use geometry shaders for upscaled line rendering
2020-04-16 21:29:11 +10:00
Connor McLaughlin
02b1e084c1
GPU/HW/OpenGL: Re-enable some fast paths I accidentially disabled
2020-04-16 21:27:01 +10:00
Connor McLaughlin
b45b70970b
GL/ShaderCache: Support geometry shaders
2020-04-16 21:25:56 +10:00
Connor McLaughlin
a43a0a14cc
CPU/CodeCache: Don't leak blocks on shutdown
2020-04-16 20:23:54 +10:00
Connor McLaughlin
7a87b9b5bb
CPU/CodeCache: Don't leak blocks on flush
2020-04-16 19:40:52 +10:00
Connor McLaughlin
86df077ffe
GPU/HW: Slight refactor to vertex culling
2020-04-16 00:22:19 +10:00
Connor McLaughlin
f75ea052a6
FrontendCommon: Add input profile support
2020-04-15 01:44:04 +10:00
Connor McLaughlin
d9ebb975b2
CommonHostInterface: Reimplement controller rumble support
...
Even better than before, supports separate motor control.
2020-04-14 16:34:42 +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
Connor McLaughlin
6a03bb2d15
HostInterface: Drop std::filesystem requirement
2020-04-12 21:06:33 +10:00
Connor McLaughlin
7779a54bc5
GPU: Rename 'Force Progressive Scan' to 'Disable Interlacing'
...
It affects rendering as well as display/scanout now, after all.
2020-04-11 16:37:53 +10:00
Connor McLaughlin
9e024b7a51
GPU: Handle VRAM wrap-around behavior on scanout
2020-04-11 16:09:03 +10:00
Connor McLaughlin
fc3efebb38
Revert "SPU: Use reverb formula from Mednafen-PSX"
...
This reverts commit 809b9f89ca
.
2020-04-11 15:04:04 +10:00
Connor McLaughlin
a4a112f5d8
CDROM: Deliver invalid sub-q (libcrypted) sectors to CPU
...
Nocash documentation would suggest that it only needs the sector to be
skipped by GetLocP. Which would make sense as the non-subchannel data is
still completely valid.
2020-04-11 02:44:43 +10:00
Connor McLaughlin
6d55979dac
HostDisplay: Fix 1x1 1:1 AR screenshots in OpenGL
2020-04-11 00:56:28 +10:00
Connor McLaughlin
05e4e7d262
CDROM: Add timing for speed changes/adjust seek timing
...
This makes the BIOS take longer to load the executable off the disc,
giving the sound effects longer to fade out and reducing the overlap
with the game.
2020-04-11 00:40:44 +10:00
Connor McLaughlin
809b9f89ca
SPU: Use reverb formula from Mednafen-PSX
2020-04-11 00:40:28 +10:00
Connor McLaughlin
6cfad33b8e
HostInterface: Set NoNav on FPS window
...
Prevents it stealing focus in SDL frontend.
2020-04-11 00:00:37 +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
fbfd838e22
GPU: Add pixel aspect ratio option
...
Can display in 4:3, 16:9, 1:1 ratios.
2020-04-10 15:12:35 +10:00
Connor McLaughlin
3325d2c42c
GPU: Add Force NTSC timings option
...
This option forces NTSC timings for PAL games, causing them to either
run faster (more likely) or smoother (less likely).
2020-04-10 13:35:10 +10:00
Connor McLaughlin
a06240141e
GPU/D3D11: Fix incorrect usage of CopySubresourceRegion() in CopyVRAM()
...
I believe this is what was causing the renderer to have issues on
Windows 7.
2020-04-10 01:07:44 +10:00
Connor McLaughlin
5a19abbbd3
GPU/D3D11: Fix broken 24-bit display/interlacing when upscaled
2020-04-10 00:43:18 +10:00
Connor McLaughlin
f0a3e66d08
GPU/Software: Fix broken display when VRAM is X-offset
2020-04-09 20:50:57 +10:00
Connor McLaughlin
2413c5a6a3
GPU/Software: Fix incorrect colours in 24-bit FMVs
2020-04-09 00:46:00 +10:00
Connor McLaughlin
3c45603cb4
MemoryCard: Batch sector writes together 5 seconds at a time
...
Reduces disk writes for SSDs (assuming the OS didn't just cache all the
writes), and limits OSD spam.
Fixes #146 .
2020-04-09 00:14:26 +10:00
Connor McLaughlin
0006052728
SPU: Fix some registers not being saved to state
2020-04-08 20:33:39 +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
610abc1a75
BIOS: Make SCPH-3000 BIOS known
2020-04-07 11:54:24 +10:00
Connor McLaughlin
b4538b1d2e
HostInterface: Add redump BIOS filenames to search list
...
ps-10x.bin, ps-30x.bin, etc.
2020-04-07 11:54:22 +10:00
Connor McLaughlin
e91d760175
HostInterface: Fix crash on startup with controller connected
2020-04-06 12:18:33 +10:00
Connor McLaughlin
0c1547d9e3
CDROM: Don't use valid bit for last subq, read on reset
...
Fixes GetlocP failing after resetting the system, causing some FMVs to
break/games to get wedged.
2020-04-06 00:25:56 +10:00
Connor McLaughlin
b7cdaaf36a
CDROM: Defer setting reading/playing bit until sector is read
...
Fixes softlock in Chicken Run.
2020-04-06 00:25:49 +10:00
Connor McLaughlin
e7640d5367
HostInterface: Make SetUserDirectory() overridable by frontends
2020-04-05 22:59:06 +10:00
Connor McLaughlin
45d7294c3c
CDROM: Limit XA playback to first-identified file/channel
...
Fixes background music in initial menu of Tomb Raider III.
2020-04-05 01:39:43 +10:00
Connor McLaughlin
3cfead36c4
Revert "GPU: Clamp coordinates to 11 bits after applying drawing offset"
...
This reverts commit 5302f83818
.
This is not the correct fix, and breaks other games.
2020-04-04 19:31:19 +10:00
Connor McLaughlin
ddf52cc8c7
GPU/SW: Implement interlaced display
2020-04-04 00:24:37 +10:00
Connor McLaughlin
c483a78889
GPU: Implement interlaced VRAM fills
2020-04-04 00:24:37 +10:00
Connor McLaughlin
2aecb570c1
GPU: Implement interlaced rendering in hardware backends
2020-04-04 00:24:37 +10:00
Connor McLaughlin
bb3c0a2ccc
GPU/HW/OpenGLES: Use shader cache
2020-04-04 00:24:37 +10:00
Connor McLaughlin
d0be5618ec
GPU/HW/OpenGL: Use shader cache
2020-04-04 00:24:37 +10:00
Connor McLaughlin
7f5c6f8b4f
GPU/HW: Move some flush checks to command time
2020-04-04 00:10:55 +10:00
Connor McLaughlin
5302f83818
GPU: Clamp coordinates to 11 bits after applying drawing offset
...
Fixes flickering in some scenes (e.g. Galbadia Missile Base).
2020-04-04 00:10:45 +10:00
Connor McLaughlin
48fba47ee6
GPU: Implement skip-drawing-to-active-field for interlaced mode
...
Currently only in the software renderer.
2020-04-04 00:10:41 +10:00
Connor McLaughlin
643e429ad2
Merge pull request #211 from ggdrt/patch-0
...
GPU: Fix "Draw To Display Area" debug reporting
2020-04-02 11:41:09 +10:00
Connor McLaughlin
2a6e04988f
GPU/HW: Simplify 24-bit scanout and interlacing shader
...
Has the added bonus of being faster (no downscale copy) and fixes the
edge case where the image is cropped in VRAM.
2020-04-02 00:17:25 +10:00
Connor McLaughlin
1d948a53e0
SPU: Reinitialize transfer event on loading state
2020-04-02 00:17:15 +10:00
Albert Liu
b27e030059
GPU: Fix "Draw To Display Area" debug reporting
2020-04-01 06:10:31 -07:00
Connor McLaughlin
3daa6b469a
Build: Explicitly disable spectre mitigations
...
Mitigations-off gave a roughly 20-25% boost in performance on my laptop
(i7-7700HQ), even with the recompiler.
It seems AppVeyor was building with them enabled. You shouldn't treat an
emulator like a sandbox and run untrusted code in it amyway.
2020-04-01 22:30:19 +10:00
Connor McLaughlin
31581763a3
GPU: Correct starting position for polyline terminator search
...
Fixes broken visuals in Wild Arms, probably others.
2020-04-01 20:24:57 +10:00
Connor McLaughlin
15c33ebedb
CDROM: Add "Enable Region Check" option
2020-04-01 01:48:37 +10:00
Connor McLaughlin
e36e70a266
CDROM: Drop sector buffer not read back to dev log level
...
This happens a lot in games and it's perfectly fine, but sometimes it
can mean the game is wedged and not receiving data.
2020-03-31 22:29:03 +10:00
Connor McLaughlin
f6711cbafa
CDROM: Pausing while seeking should be an error response
...
Confirmed by hardware test.
2020-03-31 22:28:55 +10:00
Connor McLaughlin
00c24c2501
CDROM: Adjust ACK timings to be closer to hardware test results
...
Fixes Shrek Treasure Hunt.
2020-03-31 22:28:48 +10:00
Connor McLaughlin
8439e1c54e
GPU: Adjust visible ticks/lines, fix underflow in height
2020-03-31 22:28:37 +10:00
Connor McLaughlin
6bc91f2157
GPU: Polyline must have at least two vertices
...
Fixes GPU stream corruption in Lifeforce Tenka.
2020-03-30 13:58:39 +10:00
Connor McLaughlin
eaf13a1461
GPU: Fix flipped MSB/LSB for single pixel reads
2020-03-30 00:41:31 +10:00
Connor McLaughlin
f13cfce34d
GPU: Fix incorrect polyline terminator check
...
Fixes Gran Turismo 2, maybe others.
2020-03-30 00:35:39 +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
3f042cd477
CDROM: Fix play command with parameter forever seeking
...
Fixes audio playback when selecting track in BIOS CD player.
2020-03-30 00:13:46 +10:00
Connor McLaughlin
3a31282fe6
CDROM: GetTN should return first_track, last_track
...
Fixes CDDA playback in Street Sk8er, Jellyfish - The Healing Friend,
probably others.
2020-03-30 00:13:42 +10:00
Connor McLaughlin
02f67a801e
CDROM: Fix behavior of stat bit 5 according to hardware tests
2020-03-29 17:52:37 +10:00
Connor McLaughlin
deb2865606
CDROM: Preserve header valid bit on more commands
...
Fixes Goryuujin Electro hanging on boot.
2020-03-29 01:16:01 +10:00
Connor McLaughlin
0e0bd2852f
CDROM: Trigger INT5 on shell open
...
This behaviour has been verified on console.
Fixes disc swap detection in "Arc the Lad III"
2020-03-29 01:15:04 +10:00
Connor McLaughlin
2292292956
CDROM: Set mode to read raw sectors after reset
...
Fixes "This is Football 2", possibly others.
2020-03-29 01:14:58 +10:00
Connor McLaughlin
148279e2f2
GPU: Rewrite CRTC display modeling and overscan handling
2020-03-29 01:14:37 +10:00
Connor McLaughlin
fe824d6c89
GPU: Display VRAM with 1:1 pixel ratio rather than scaling
2020-03-29 01:14:33 +10:00
Connor McLaughlin
21ddfacd40
Settings: Add missing crop mode save
2020-03-29 01:13:53 +10:00
Connor McLaughlin
e6d5a9d3e4
GPU: Add missing blitter ticks reset to SoftReset()
2020-03-29 01:13:40 +10:00
Connor McLaughlin
10197506c5
CDROM: Implement 8-sector buffering behavior
2020-03-29 01:13:25 +10:00
Connor McLaughlin
46239e6758
GPU: Fix GP0(1Fh) locking up emulator
2020-03-29 01:12:54 +10:00
Connor McLaughlin
5dbdc0b60c
DMA: Remove timing events
...
We'll probably need to revert/re-add a variant of this when we
eventually implement chopping. But for now it simplifies things.
2020-03-29 01:12:44 +10:00
Connor McLaughlin
423f04325f
SPU: Implement timing for RAM reads/writes
2020-03-29 01:12:37 +10:00
Connor McLaughlin
22a0d8f93c
CDROM: Implement Sync/00h command
2020-03-28 02:24:36 +10:00
Connor McLaughlin
0b347e2151
GPU/HW: Implement flipped quad coordinate hack from beetle-psx
...
Fixes graphical glitches around the edges of flipped sprites.
2020-03-28 02:24:22 +10:00
Connor McLaughlin
f23bcc0faa
SPU: Ignore loop start flag when repeat address is explicitly set
...
Fixes dialog/softlock in Thousand Arms.
2020-03-27 01:42:59 +10:00
Connor McLaughlin
08ad5aad53
SPU: Run muted voices when IRQ is enabled
...
Fixes SPU timeout in Casper. We can still optimize for most games where
interrupts are not used by completely ignoring muted voices in those.
2020-03-27 01:42:43 +10:00
Connor McLaughlin
54abd37daa
GPU: Let the GPU drive DMA transfers for large time slices
...
Fixes FMV breakage... again.
2020-03-26 00:13:20 +10:00
Connor McLaughlin
d4ae0f13fe
MDEC: Refactoring and fixes
2020-03-26 00:13:07 +10:00
Connor McLaughlin
c81efb1142
DMA: Enable block splitting for linked list mode
2020-03-26 00:13:03 +10:00
Connor McLaughlin
88f1edd48d
System: Include console region in save state
...
Fixes #149 .
2020-03-25 01:49:20 +10:00
Connor McLaughlin
7cd7dec668
HostInterface: Restore pause state after switching renderers
...
Fixes #148 .
2020-03-25 01:48:51 +10:00
Connor McLaughlin
18cc3d5932
SPU: Stub out external volume registers
...
If nothing else, it'll avoid spamming the log.
2020-03-24 00:22:02 +10:00
Connor McLaughlin
7317c83a3c
SPU: Implement internal volume sweep register reads
...
Fixes muted audio in Michelin Rally Masters.
2020-03-24 00:21:52 +10:00
Connor McLaughlin
452c6e16d1
GPU: Fix blitter ticks not being counted
...
Fixes Monkey Hero, again...
2020-03-24 00:21:42 +10:00
Connor McLaughlin
4c2597acf3
SPU: Process key on/off at next 44100hz cycle
...
Some games, particularly CART World Series and Monkey Hero, depend on
this behaviour.
2020-03-24 00:21:32 +10:00
Connor McLaughlin
c8af4abad8
CDROM: Don't queue up a second INT1 when one is still pending
2020-03-24 00:21:22 +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
9ce63952fb
TimingEvent: Fix events losing time when rescheduling outside handler
2020-03-24 00:20:45 +10:00
Connor McLaughlin
612b362ae9
Timers: Sync GPU on register write too
2020-03-24 00:20:27 +10:00
Connor McLaughlin
e2e2b573c0
GPU/HW: Move drawing offset to CPU-side
...
Saves updating the uniform buffer.
2020-03-24 00:20:15 +10:00
Connor McLaughlin
40481305c4
GPU/HW: Fudge texture coordinates by half a screen-space pixel
...
Fixes holes in triangles in some games, e.g. Disney's The Emperor's New
Groove.
2020-03-24 00:20:12 +10:00
Connor McLaughlin
7ac48cd8d6
SPU: Swap read/write ready bits
...
Nocash might be incorrect here.
2020-03-23 00:29:18 +10:00
Connor McLaughlin
7a89c787b8
SPU: Fix some reverb registers not being saved to state
2020-03-23 00:29:10 +10:00
Connor McLaughlin
d47a82d591
SPU: Implement noise functionality
2020-03-23 00:29:00 +10:00
Connor McLaughlin
0a6295a9b4
SPU: Implement volume sweep functionality
2020-03-23 00:28:51 +10:00
Connor McLaughlin
7e36195f44
HostInterface: Enable on-screen FPS/VPS/Speed display via config
2020-03-22 13:20:08 +10:00
Connor McLaughlin
77a60f0c5f
HostInterface: Crash fix again for controller switching
2020-03-22 13:15:44 +10:00
Connor McLaughlin
12ddeb675c
HostInterface: Fix controller not updating when switched and system running
2020-03-22 12:54:26 +10:00
Connor McLaughlin
a4486cf6fa
CDROM: Don't miss last three frames at end of sector
2020-03-21 12:31:40 +10:00
Connor McLaughlin
8ef1e71ce0
DMA: Channels other than OTC should run based on request in SyncMode 0
2020-03-21 00:15:49 +10:00
Connor McLaughlin
f4d172df2f
DMA: Fix underflow when block_count == 0
2020-03-21 00:15:42 +10:00
Connor McLaughlin
904ab982e6
GPU: Fix crash when fill rectangles are out-of-bounds
2020-03-21 00:15:35 +10:00
Connor McLaughlin
d67bcd654c
GPU: Prevent emulator locking up when switching between PAL/NTSC mode
2020-03-20 01:12:41 +10:00
Connor McLaughlin
bad5b30a61
CDROM: Fix incorrect volume matrix update/application
...
Fixes #90 .
2020-03-19 00:28:57 +10:00
Connor McLaughlin
3223f87eeb
CDROM: Simplify register indexing for write
2020-03-19 00:28:41 +10:00
Connor McLaughlin
b86e0bc846
SPU: Implement reverb
...
Possibly still not complete.
2020-03-17 12:48:03 +10:00
Connor McLaughlin
c9e5e3a43e
CDROM: Add missing disc/console region check
...
Fixes #106 .
2020-03-17 12:47:46 +10:00
Connor McLaughlin
6b68512ac1
HostInterface: Add SaveScreenshot() method
2020-03-16 00:03:57 +10:00
Connor McLaughlin
2bb992a702
HostDisplay: Add texture dumping/saving support
2020-03-16 00:03:49 +10:00
Connor McLaughlin
8e20d0d4ff
SPU: Add audio dumping support
2020-03-15 22:04:17 +10:00
Connor McLaughlin
198a64eb5e
HostInterface: Add a helper function for generating timestamp-based filenames
2020-03-15 22:03:53 +10:00
Connor McLaughlin
6a6aa72f3a
SPU: Add a tick counter and delay between key on/off writes
...
Not yet tested on hardware. We believe that writing to a specific
voice's key on/off register within 2 samples/ticks of the first
write will result in the second write being ignored. This still
needs to be tested on hardware for confirmation.
Thanks to @PSI-Rockin for the idea.
Fixes sound effects in Monkey Hero.
2020-03-14 15:33:24 +10:00
Connor McLaughlin
d42f155512
SPU: Use "ticks" instead of "sample" in variable names
2020-03-14 15:23:23 +10:00
Connor McLaughlin
90d6babfb0
SPU: Always run, not only when enabled
2020-03-14 15:01:23 +10:00
Connor McLaughlin
90121aa169
GPU: Fix VRAM display in software renderer
2020-03-13 23:21:44 +10:00
Connor McLaughlin
e076526898
CDROM: Rework sector buffering behavior
...
This has not been tested on hardware yet, but fixes a couple of games.
2020-03-12 15:33:07 +10:00
Connor McLaughlin
86eefbd5d7
System: Fix a possible assertion failure loading state
2020-03-12 15:32:37 +10:00
Connor McLaughlin
9e08ae6188
GameList: Use ProgressCallback interface when scanning
2020-03-12 15:32:19 +10:00
Connor McLaughlin
8f39a0f154
Qt: Properly implement "Start Fullscreen"
2020-03-12 13:53:58 +10:00
Connor McLaughlin
db1070a683
Settings: Fix start paused not applying
2020-03-12 13:53:43 +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
419422a2d7
CDROM: Return console region string based on system
2020-03-12 13:51:38 +10:00
Connor McLaughlin
e0a339ca96
GameList: Seperate disc region and console region
2020-03-12 13:51:29 +10:00
Connor McLaughlin
e8a5259e68
Qt: Show save times in save state menu as well
2020-03-12 13:51:23 +10:00
Connor McLaughlin
c2370c598e
CDROM: Don't crash when stopping with no media
...
Fixes #76 .
2020-03-10 00:09:27 +10:00
Connor McLaughlin
e98c753d3d
CDROM: Delay the first CDDA report by one second
...
Needs hardware testing...
2020-03-09 00:01:28 +10:00
Connor McLaughlin
776159265a
CDROM: Skip pregap when processing CDDA
2020-03-09 00:01:26 +10:00
Connor McLaughlin
631865469d
CDROM: Bump up ACK delay timing
2020-03-08 18:07:39 +10:00
Connor McLaughlin
4eeaa38ccd
CDROM: Don't persist seek error bit in secondary status
...
Fixes Viewpoint (#56 ).
2020-03-08 15:54:09 +10:00
Connor McLaughlin
e19175edae
GPU/D3D11: Fix non-vertical line rendering at >1x scale
2020-03-08 00:03:31 +10:00
Connor McLaughlin
34ae0dae13
CDROM: Fix upper bound for XA audio frames and sync SPU
2020-03-07 17:29:41 +10:00
Connor McLaughlin
6fa8031569
GPU/D3D11: Fix uniform buffer creation on Win7
2020-03-07 16:05:54 +10:00
Connor McLaughlin
eb6dbbfb13
CDROM: Set seeking bit in stat when seeking
2020-03-07 15:10:49 +10:00
Connor McLaughlin
c700913322
CDROM: Implement SetSession command
2020-03-07 15:10:19 +10:00
Connor McLaughlin
d0f420de10
CDROM: Log invalid command identifiers
2020-03-07 14:00:15 +10:00
Connor McLaughlin
6bb6249e86
GPU/HW: Print capabilities to log
2020-03-07 12:54:15 +10:00
Connor McLaughlin
b5b6a15e40
GPU/D3D11: Always flush render before presenting
2020-03-07 12:37:58 +10:00
Connor McLaughlin
ae4767a9ca
GPU/HW: Always unmap buffer on flush
...
Should stop assertions firing in some games.
2020-03-07 12:34:44 +10:00
Connor McLaughlin
f9a298f1b7
GPU: Fix incorrect handling of check mask bit
...
Fixes boxes in Silent Hill in Software Renderer.
2020-03-06 00:45:21 +10:00
Connor McLaughlin
b59e4ffbcb
HostInterface: Reset performance counters on unpausing
2020-03-03 10:07:16 +10:00
Connor McLaughlin
69f03959aa
Qt: Implement context menu in game list
2020-03-02 11:08:16 +10:00
Connor McLaughlin
34f1c644f5
GPU: Update GPUSTAT if raster has passed to the next line
...
Fixes games which poll GPUSTAT, including The Next Tetris (Europe).
2020-03-01 17:14:42 +10:00
Connor McLaughlin
b0b1fd8f1a
GPU: Timing for CPU->VRAM transfers
...
Fixes Monkey Hero, probably others.
2020-03-01 17:14:38 +10:00
Connor McLaughlin
6b9c6d3750
GPU: Add a helper function to determine how many GPU ticks are pending
2020-03-01 17:14:32 +10:00
Connor McLaughlin
635ab72b37
GPU: Implement "Scaled Dithering" option
...
Fixes #29 .
2020-03-01 00:05:31 +10:00
Connor McLaughlin
fdcb891ed3
GPU: Fix incorrect detection of 480i mode
2020-02-29 00:19:23 +10:00
Connor McLaughlin
ed493c846d
GPU: Don't panic on oversized VRAM copies
...
Fixes #31 .
2020-02-29 00:19:09 +10:00
Connor McLaughlin
7412e78aa1
GPU: Move software copy/fill functions to base class so it can be used as fallback
2020-02-29 00:18:33 +10:00
Connor McLaughlin
6bacbf3438
GPU: Fix 480i displays getting cut off in OpenGL and Software
2020-02-28 23:01:38 +10:00
Connor McLaughlin
aa56a59f58
GPU: Make resolution info less spammy
2020-02-28 23:00:37 +10:00
Connor McLaughlin
0690491883
GPU/HW: Fix potential crash in rectangle expansion
2020-02-28 22:58:34 +10:00
Connor McLaughlin
e8e44991db
GPU: Fix display in OpenGL renderer
2020-02-28 22:42:56 +10:00
Connor McLaughlin
63064f80c2
HostInterface: Fix default value for Display/CropMode
2020-02-28 18:15:37 +10:00
Connor McLaughlin
fcc0ae9571
GPU: Implement "Crop Mode" (none, overscan, all borders)
2020-02-28 17:01:01 +10:00
Connor McLaughlin
f35970fcac
FrontendCommon: Move input binding and some other logic from Qt to common
2020-02-28 17:00:09 +10:00
Connor McLaughlin
07ba2ecd3d
Settings: Simplify resolution scale enumeration
2020-02-28 16:59:55 +10:00
Connor McLaughlin
f21cb25426
HostInterface: Recreate system on GPU debug device toggle too
2020-02-28 16:59:53 +10:00
Connor McLaughlin
82eb14efb1
Core: Apply DPI scaling to debug windows
2020-02-28 16:59:51 +10:00
Connor McLaughlin
50a155e775
Settings: Default to relative paths for bios/memcards
...
Prevents from locking to the directory the first time we run.
2020-02-28 16:58:30 +10:00
Connor McLaughlin
e4ff8b0936
Qt: Add power off hotkey and confirmation message
2020-02-26 19:26:20 +10:00
Connor McLaughlin
e9dea6e0f7
HostInterface: Add a ConfirmMessage() method
2020-02-26 19:25:57 +10:00
Connor McLaughlin
49c7767ed4
System: Check save state version when loading
...
Fixes #34 .
2020-02-22 17:16:47 +09:00
Connor McLaughlin
959a555274
CDROM: Implement asynchronous disc reading
2020-02-22 00:24:35 +09:00
Connor McLaughlin
1ed8243776
HostInterface: Reset counters when starting from state
2020-02-22 00:18:27 +09:00
Connor McLaughlin
149cbf6457
GPU/HW: Properly implement too-large polygon culling
...
Replaces triangle strips with triangle lists, which has the added bonus
of not requiring flushing as many batches.
Fixes missing geometry in Vagrant Story.
2020-02-17 00:09:45 +09:00
Connor McLaughlin
bbe54df3a8
GPU/HW: Split rectangles on texture page boundaries
...
Fixes the sky in Ape Escape's menu screen, FF7 menu borders, probably
others.
2020-02-17 00:09:31 +09:00
Connor McLaughlin
bd542831a8
GPU: Fix incorrect bit check in DrawMode::IsUsingPalette()
...
Fixes Sony Computer Entertainment fade in the NTSC-J BIOS.
2020-02-17 00:09:27 +09:00
Connor McLaughlin
1e0e802fa4
HostInterface: Add a helper to display a 'Loading Screen' during long startup
2020-02-16 00:15:16 +09:00
Connor McLaughlin
dcc9da3f5e
HostInterface: Don't try to resume system without game code
2020-02-16 00:15:09 +09:00
Connor McLaughlin
cd2f6d1f68
HostInterface: Only display error when loading resume state if boot anyway flag isn't set
2020-02-16 00:14:58 +09:00
Connor McLaughlin
59cf799491
Qt: Implement controller interface/binding
2020-02-16 00:14:53 +09:00
Connor McLaughlin
6a1206dde7
Frontends: Add option for "Increase Timer Resolution"
2020-02-16 00:14:51 +09:00
Connor McLaughlin
e01cf0dccb
Frontends: Implement auto save on exit/resume
2020-02-16 00:14:49 +09:00
Connor McLaughlin
e738b87a25
HostInterface: Add helpers for resume save state
2020-02-16 00:14:47 +09:00
Connor McLaughlin
5f3be68028
HostInterface: Notify host when controller types change
2020-02-16 00:14:44 +09:00
Connor McLaughlin
37d765e8d7
HostInterface: Support switching audio backends
2020-02-16 00:14:40 +09:00
Connor McLaughlin
6a0c15b649
HostInterface: Move timer resolution increase to base class
2020-02-16 00:14:37 +09:00
Connor McLaughlin
1e009133ae
Rename 'Default' audio backend to 'SDL'
2020-02-16 00:14:35 +09:00
Connor McLaughlin
fd8ed08307
Move more logic from frontend to base HostInterface
2020-02-16 00:14:28 +09:00
Connor McLaughlin
f0578bb932
HostInterface: Make helper methods const
2020-02-16 00:14:25 +09:00
Connor McLaughlin
7290e5cad0
HostInterface: Add per-slot save state helper functions
2020-02-16 00:14:00 +09:00
Connor McLaughlin
9148581213
GPU: Narrowing warning fix
2020-02-16 00:13:57 +09:00
Connor McLaughlin
befa2a27d8
HostInterface: Fix crash in SetUserDirectory
2020-02-15 23:12:15 +09:00
Connor McLaughlin
b605a84f7d
HostInterface: Set user directory for Linux/macOS, portable.txt support
2020-02-15 22:36:16 +09:00
Connor McLaughlin
f5482cb3b6
Don't require OpenGL compatibility profile
2020-02-15 21:11:51 +09:00
Connor McLaughlin
15e49b9f61
Core/TimingEvent: Add missing <string> include
2020-02-15 11:34:57 +09:00
Connor McLaughlin
8eba4b379c
Settings: Default to D3D11 renderer on Windows
...
This point it's less buggy and slightly more performant.
2020-02-15 10:21:59 +09:00
Connor McLaughlin
23c8a5588d
Add macOS to some Linux/Android-only-isms
2020-02-14 22:58:18 +09:00