1038 Commits

Author SHA1 Message Date
Connor McLaughlin
bd0c403672 GPU/HW: Fix mask bit test regression
Fixes white boxes in Silent Hill. Again.
2020-08-02 13:04:25 +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
2eb9384275 Replace more instances of fopen() with FileSystem::OpenFile() 2020-08-01 14:00:22 +10:00
Connor McLaughlin
2885d2e547 CPU/CodeCache: Hopefully fix 32-bit compile errors 2020-08-01 03:53:53 +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
1f9fc6ab74 BIOS: Fix Linux build 2020-07-31 16:34:25 +10:00
Connor McLaughlin
8802177e25 BIOS: Add more revision filenames/hashes 2020-07-31 16:28:15 +10:00
Connor McLaughlin
66e79091d3 BIOS: Use fopen() wrapper from FileSystem 2020-07-31 16:04:10 +10:00
Connor McLaughlin
5634e821c5 CDROM: Reset audio decoder state immediately after pause or seek
Fixes stuttering dialogue in Dino Crisis (control room at beginning of
game).
2020-07-30 01:55:37 +10:00
Connor McLaughlin
5a34a15bf2 CDROM: Include FIFO size in debug window 2020-07-30 01:03:59 +10:00
Connor McLaughlin
dd48a1f585 System: Handle large event timing overshoots better
Usually a result of DMA cycle stealing. Instead of adding all time, add
min(all_events.downcount) at a time. 1.5% performance improvement, but
fixes desyncs between the SPU and CD-ROM.
2020-07-30 00:47:19 +10:00
Connor McLaughlin
cdab84e210 GPU/Vulkan: Display shader compiling message 2020-07-26 23:59:06 +10:00
Connor McLaughlin
7c54129409
Merge pull request #665 from ggrtk/analog-controller
AnalogController: Expose axis scale setting to frontend
2020-07-26 23:57:40 +10:00
Connor McLaughlin
caf9943418 GPU/Vulkan: Possible workaround for Adreno GS shader compiler bug 2020-07-25 15:17:29 +10:00
Albert Liu
79576ca956 AnalogController: Expose axis scale setting to frontend 2020-07-24 19:18:41 -07:00
Connor McLaughlin
d711baaa31 GPU/HW: Fix lines being one pixel too short
Fixes lines in screen wipe effect in Vagrant Story.
2020-07-25 02:37:01 +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
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
08a8434140 GPU/HW: Fix off-by-one in wrap-around VRAM writes 2020-07-23 02:35:03 +10:00
Connor McLaughlin
10cd00c8dd CDROM: Play audio when reading and mode.0 is set 2020-07-22 15:23:13 +10:00
Connor McLaughlin
e9db1d0f6f GPU/OpenGL: Use base class helper for filling VRAM copy uniforms 2020-07-22 14:47:09 +10:00
Connor McLaughlin
2dc62ab987 GPU/HW: Fix VRAM updates when Y >= 512 2020-07-22 14:46:52 +10:00
jdgleaver
49f9ddfa0e Finish adding support for PSX BIOS included in PSP firmware 6.60 2020-07-21 17:06:38 +01:00
jdgleaver
7478e75ed6 (libretro) Fix 'Fast Boot' option 2020-07-21 16:32:36 +01:00
Connor McLaughlin
f28ef01d24 CDROM: Move audio FIFO to CDROM class and skip sectors when unempty
Fixes cutscene audio in Nickelodeon Rugrats - Search for Reptar.
2020-07-22 00:05:52 +10:00
Connor McLaughlin
f9bbbbbaec Settings: Make auto-detect the default console region 2020-07-22 00:03:31 +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
8b91bf5e57 Core: Add loading screen based progress callbacks 2020-07-22 00:03:01 +10:00
Connor McLaughlin
93528db388 System: Use existing CD media when loading state where possible 2020-07-22 00:02:37 +10:00
Connor McLaughlin
75a8a7fcca Settings: Make per-game memory cards for slot 1 the default 2020-07-21 20:15:52 +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
Connor McLaughlin
401ecfa872 Bus: Make memory map public 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
dd9a4191e6 AnalogController: Fix swapped rumble test
Fixes weak rumble test in MGS.

I should write some hardware tests for this at some point, particularly
for the large motor, which should have a variable intensity.
2020-07-15 02:38:16 +10: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
6ed67468d2 CDROM: Prevent games which spam Reset from getting wedged 2020-07-14 01:26:37 +10:00
Albert Liu
91f51c2833 Settings: Add 1:1 pixel aspect ratio 2020-07-12 17:09:15 -07: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
dbce58e07d CDROM: Display paused position in debug window 2020-07-13 02:23:56 +10:00
Albert Liu
c44e74db80 GPU: Compute VRAM display width from GP1(06h) values
Fixes overpadding in some specific cases, e.g. when cropping overscan in
Captain Commando.
2020-07-11 10:57:23 -07:00
Connor McLaughlin
50a25b63b1 CDROM: Track seek position when resetting
Fixes Blasto hanging after starting game.
2020-07-11 20:35:36 +10:00
Connor McLaughlin
d1a2ebd8f3 GPU/HW: Eliminate CPU round trip on oversized VRAM writes 2020-07-11 20:35:33 +10:00
Connor McLaughlin
eab70546c8 CDROMAsyncReader: Only log warning when waiting time exceeds 1ms 2020-07-11 03:21:05 +10:00
Connor McLaughlin
c5e8327e7a CDROM: Seek to LBA 0 when resetting
Fixes Love & Destroy.
2020-07-10 20:55:15 +10:00
Connor McLaughlin
71157b171e CDROM: Use partial seek position when re-seeking 2020-07-10 20:55:00 +10:00
Connor McLaughlin
4d1880091e GPU: Ignore display start bit 0 instead of reducing width 2020-07-10 20:31:58 +10:00
Connor McLaughlin
93abf8e53d GPU: Drop least significant bit of display start address
Fixes extra column in some games, e.g. Nascar Thunder 2004,
U.S. Navy Fighters.
2020-07-10 20:23:27 +10:00
Connor McLaughlin
604ff20b0d AnalogController: Treat rumble as binary on/off
Fixes vibration in Final Fantasy 8.
2020-07-10 20:15:46 +10:00
Connor McLaughlin
c01854e9d1 Define LIBRETRO macro when building core, skip swap chain 2020-07-10 14:02:45 +10:00
Connor McLaughlin
a5fe740e30 Fix a bunch of compiler warnings 2020-07-09 13:30:16 +10:00
Connor McLaughlin
57cf40d1ae Bus: Work around VS2017 bug with std::array 2020-07-08 12:45:53 +10:00
Connor McLaughlin
209d7c67e9 GPU/OpenGL: Prefer SSBOs over small texel buffers+subimage 2020-07-08 02:05:36 +10:00
Connor McLaughlin
1d4b5e22cb Vulkan: Fall back to geometryShader when fillModeNonSolid unsupported 2020-07-07 00:59:35 +10:00
Connor McLaughlin
d1eae288bf GameList: Add EntryCompatibilityRatingToString 2020-07-07 00:59:28 +10:00
Albert Liu
e42d5fed75 GPU: Adjust 4-pixel boundary alignment formula
Fixes missing edge in Tenchi wo Kurau II: Sekiheki no Tatakai.
2020-07-05 06:00:36 -07:00
Albert Liu
000a51298a GPU: Don't round screen size to 4-pixel multiple 2020-07-05 06:00:36 -07:00
Albert Liu
e2b1158514 GPU: Report CRTC padding as signed in debug window 2020-07-05 06:00:36 -07:00
Connor McLaughlin
511c3133f1 GPU: Let GPU catch up before handling GP1 reset commands
Fixes trashed VRAM writes in some homebrew.
2020-07-05 02:25:56 +10:00
Connor McLaughlin
b0b3901722 libretro: Fix DualShock analog mode auto-enable 2020-07-05 00:05:14 +10:00
Connor McLaughlin
c76bb5eb6a libretro: Fix display aspect ratio 2020-07-04 22:33:07 +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
1231f6dafe GPU: Handle GP1 command mirrors 2020-07-04 01:28:18 +10:00
Connor McLaughlin
2d74062abb CPU: Delay interrupts by one instruction/block
Fixes Gameshark Sampler Disc.
2020-07-03 01:51:08 +10:00
Connor McLaughlin
8a8ce8d41c NamcoGunCon: Use correct GPU clock as reference 2020-07-03 01:51:05 +10:00
Connor McLaughlin
0710e3b6d3 CDROM: Ignore sectors with channel number=255
Some games (Taxi 2 and Blues Blues) have junk audio sectors with a channel number of 255.
We need to skip them otherwise it ends up playing the incorrect file.

TODO: Verify with a hardware test.
2020-07-02 00:50:53 +10:00
Connor McLaughlin
bff5432879 Pad: Improve ACK timing
Fixes random pauses in Moto Racer.
2020-07-02 00:50:53 +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
8cd9e0887e libretro: Use framebuffer view dimensions not texture dimensions 2020-07-01 01:57:25 +10:00
Connor McLaughlin
f65a50d84b HostDisplay: Use surface scale for drawing software cursor 2020-07-01 01:57:25 +10:00
Connor McLaughlin
e374853cf5 HostInterface: Better configuration of custom crosshair/software cursor 2020-07-01 01:57:25 +10:00
Connor McLaughlin
f0c1dfefe7 Core: Add resources file
Currently includes a crosshair icon.
2020-07-01 00:56:46 +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
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
e5f56fcd33 MDEC: Slightly reduce block timing
Fixes FMVs in Disney's Treasure Planet.

Probably needs sub-block timing emulated at some point.
2020-06-29 14:45:14 +10:00
Connor McLaughlin
614ea632a5 SPU: Log warning when data is lost due to reg clear 2020-06-29 14:45:03 +10:00
Connor McLaughlin
15afe4f436 GPU/Vulkan: Fix incorrect vkCmdPushConstants() call 2020-06-27 16:26:20 +10:00
Connor McLaughlin
0b261e836b GPU/Vulkan: Fix shader VRAM copies
Fixes battle transitions in Final Fantasy IX.
2020-06-27 03:00:03 +10:00
Connor McLaughlin
58b0e6859a Frontend: Reset/restore GPU state before saving screenshot
Fixes driver crashes in Vulkan.
2020-06-27 02:59:58 +10:00
Connor McLaughlin
b94de1924d GPU/ShaderGen: Round normalized colours before converting to integer
Fixes broken rendering/precision issues on Intel Ivy Bridge GPUs.

Many thanks to linkmauve from Dolphin for the idea - seems Dolphin also
had a similar problem a few years ago.
2020-06-26 21:40:53 +10:00
Connor McLaughlin
16ca214d09 GPU/OpenGL: Fix VRAM writes breaking on <GL4.3 2020-06-26 21:39:37 +10:00
Connor McLaughlin
34d7b752d8 GPU/ShaderGen: Enable GL_ARB_shader_storage_buffer_object on <GL4.3 2020-06-26 21:39:12 +10:00
Connor McLaughlin
998ec85b16 CDROM: Log slow sector reads in Release builds too 2020-06-26 17:17:25 +10:00
Connor McLaughlin
737337a526 CDROM: Fix incorrect sector read after incomplete seek->read
Fixes crash in Disney's The Lion King - Simba's Mighty Adventure.
2020-06-26 17:15:41 +10:00
Connor McLaughlin
b8a2487abf GPU/HW: Fix incorrect offset application in line upscaler
Fixes green line in pause screen of Spyro.
2020-06-26 03:26:06 +10:00
Connor McLaughlin
ad727c7991 CPU/Recompiler: Check interrupts after mtc0 sr/cause
Fixes Jackie Chan Stuntmaster in Recompiler mode.
2020-06-25 01:33:00 +10:00
Connor McLaughlin
b00f50c927 CPU/Recompiler: Emit test/jz instead of bt/jnc for bits < 8
Likely very slightly faster.
2020-06-25 01:33:00 +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
832c7a1192 Vulkan: Support using SSBOs instead texel buffers 2020-06-24 01:40:01 +10:00
Connor McLaughlin
08ef8c1e8d GPU/HW: Support SSBOs instead of texture buffers for VRAM writes 2020-06-24 01:39:53 +10:00
Connor McLaughlin
eec37df1e0 Settings: Make the recompiler the default CPU mode 2020-06-24 01:39:42 +10:00
Connor McLaughlin
f6aae5e67c Settings: Add 2:1 (VRAM 1:1) display aspect ratio 2020-06-24 01:39:35 +10:00
Connor McLaughlin
4b31034efa
Merge pull request #562 from lioncash/amp
spu: Make use of logical AND within IsPitchModulationEnabled()
2020-06-24 01:29:42 +10:00
Lioncash
20d17b953b spu: Make use of logical AND within IsPitchModulationEnabled()
It seems awfully suspect to use a bitwise AND here.
2020-06-23 06:00:11 -04:00
Connor McLaughlin
6de24f620e
Merge pull request #558 from lioncash/psf
system: Correct error dialog in PSF load case
2020-06-23 19:57:19 +10:00
Lioncash
7a05f8402b playstation_mouse: Amend initial x value
Previously the last host y position was being written to twice, which
seems like a typo.
2020-06-23 05:48:25 -04:00
Lioncash
76af96f15b system: Correct error dialog in PSF load case
Corrects the error message to state that the PSF couldn't be loaded
rather than EXE.
2020-06-23 05:13:47 -04:00
Connor McLaughlin
840a80670f CDROM: Reset XA resampler on file switch
Pure guess work, probably won't affect anything.
2020-06-22 15:58:22 +10:00
Connor McLaughlin
eb1b6b6272 GPU/HW: Fix D3D11 upscaled line GS 2020-06-22 15:53:05 +10:00
Connor McLaughlin
73cdd676ad GPU/Vulkan: Fix incorrect srcfactor selection 2020-06-21 16:24:37 +10:00
Connor McLaughlin
ce75168238 GPU/Vulkan: Don't assume support for dual-source blend 2020-06-21 01:33:15 +10:00
Connor McLaughlin
bf60f9dd61 GPU/Vulkan: Use geometry shader for line rendering at >1xIR 2020-06-21 01:33:08 +10:00
Connor McLaughlin
97ef905f10 GPU/Vulkan: Fix race/crash when changing settings live 2020-06-21 01:33:00 +10:00
Connor McLaughlin
fed53b565f GPU/Vulkan: Fix inverted transparency
Fixes FF7 menu, map screen in Porsche Challenge.
2020-06-20 20:22:24 +10:00
Connor McLaughlin
a08c398d4b GPU/HW: Provide depth in vertex rather than computing
Fixes mask bit effects in Vulkan (e.g. Silent Hill).
Significantly reduces the number of mask bit refreshes in OpenGL/Vulkan.
2020-06-20 20:21:33 +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
6aacf0019a FrontendCommon: Add a Vulkan host display interface 2020-06-19 00:18:19 +10:00
Connor McLaughlin
49d11988bf Core: Add Vulkan GPU renderer 2020-06-19 00:18:17 +10:00
Connor McLaughlin
3cd5b7ae74 Core: Add Vulkan renderer types 2020-06-19 00:18:14 +10:00
Connor McLaughlin
47138aa9cf GPU: Consider interlaced rendering for GPU timings
Fixes menu screen flickering in Chrono Cross, summary screen breakage in
Mr. Driller G.
2020-06-18 17:37:13 +10:00
Connor McLaughlin
fc0560087f GPU: Skip primitives where clip area is invalid
Fixes palettes being overwritten/menus being broken in
Yoshimoto Mahjong Club Deluxe.
2020-06-14 01:01:01 +10:00
Connor McLaughlin
16c47f4553 Settings: Change default GPU FIFO size to 16
While this has the potential to be slower, there seems to be quite a few
games which break with the larger FIFO. In some cases, they wait for the
DMA interrupt, then busy wait for the GPU to go idle again. If the FIFO
is larger, this wait time till be longer, breaking things.
2020-06-13 01:40:05 +10:00
Connor McLaughlin
bda528d70a GPU: Alter timings to reflect new clock 2020-06-13 01:40:05 +10:00
Connor McLaughlin
dad63f2303 GPU: Run draw clock at sysclk * 2 2020-06-13 01:40:05 +10:00
Connor McLaughlin
34d27bad4a Timers: Add missing event update after resetting count/target 2020-06-12 01:37:39 +10:00
Connor McLaughlin
bdf9c91271 GPU: Fix double shader compilation 2020-06-09 03:04:02 +10:00
Connor McLaughlin
075380f8e0 Move most helper logic from base HostInterface to FrontendCommon 2020-06-09 02:35:37 +10:00
Connor McLaughlin
7b4b2d5dc5 GameList: Ignore all whitespace characters in SYSTEM.CNF
Fixes some games not having serials displayed, e.g. Chrono Cross.

Thanks to @TzakShrike for narrowing down the cause.
2020-06-08 03:05:27 +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
f98bb033ff HostDisplay: Add an interface for setting software cursor 2020-06-08 02:53:37 +10:00
Connor McLaughlin
b4e45e865a GPU: Use correct clocks for NTSC region
Fixes sync drift in Bust-a-Move 1/2.
2020-06-07 19:15:06 +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
009e474c51 AnalogController: Fix inverted motor binding 2020-06-05 22:32:51 +10:00
Connor McLaughlin
88502e130e Settings: Fix memory cards not syncing with disc change in title mode 2020-06-04 02:15:29 +10:00
Connor McLaughlin
c8e1881ea9 GPU/HW: Clear dirty rectangle when updating shadow texture
Fixes high GPU usage in Robbit mon Dieu in D3D11, should improve overall
performance slightly when VRAM copies are heavily used.
2020-06-02 21:45:38 +10:00
Connor McLaughlin
9ea163e666 GPU/D3D11: Fix mask test in same vertex batch
Fixes shadows in Bust a Groove 2, probably others.
2020-06-02 20:52:07 +10:00
Connor McLaughlin
3848276fa2 GPU: Improvements to height calculations when interlaced
Fixes screen doubling with interlacing force disabled, as well as
incorrect cropping area when non-interleaved framebuffers are used.
2020-06-02 20:52:07 +10:00
Connor McLaughlin
8eb3ac69b2 SPU: Update ADSR envelope when register changes
Fixes menu sounds in Final Fantasy 7 staying audible for too long.
2020-06-02 01:59:49 +10:00
Connor McLaughlin
dcfb929de5 CDROM: Fix double-reads hitting incorrect sector again
Fixes Bedlem / Rise 2 without breaking Vigilante 8 - 2nd Offense.
2020-06-02 00:59:13 +10:00
Connor McLaughlin
5e7fd5aa71 CDROM: Fix integer overflow in seek timing calculation 2020-06-01 22:20:26 +10:00
Connor McLaughlin
1947080d91 CDROM: GetlocL should return an error while seeking
Or more specifically, the coarse seek part. Verified with hardware
tests.
2020-06-01 21:40:28 +10:00
Connor McLaughlin
e5fc47a008 Bus: Further tweaks to access timing
Matches closely to my console now.

Fixes Otona No Asobi again.
2020-06-01 21:39:33 +10:00
Connor McLaughlin
7d66569d69 GPU/HW: Fix bobbing screen with interlacing disabled
Fixes bobbing screen in Tom and Jerry in House Trap.
2020-06-01 03:26:35 +10:00
Connor McLaughlin
f856a8ad65 CDROM: Ignore pending setloc after read/play
Fixes games which send a second Setloc after reading, e.g. Army Men -
Sarge's Heroes.
2020-05-31 17:03:15 +10:00
Connor McLaughlin
af1c4f9378 Fix MSVC build 2020-05-31 16:42:51 +10:00
Connor McLaughlin
a800f73a8f
Merge pull request #516 from ggrtk/negcon
Controller: Add NeGcon support
2020-05-31 16:41:48 +10:00
Connor McLaughlin
bf6faafc54 GameList: Fix cache getting corrupted from unknown games 2020-05-31 16:11:15 +10:00
Albert Liu
ee3a96011e Controller: Add NeGcon support 2020-05-30 23:11:02 -07:00
Connor McLaughlin
e293c22cde DMA: Run manual channels while halted
Fixes games which have looping linked lists but still expect CD/OTC
reads to work.

Also caps the number of ticks used when looping linked lists are
present, which doesn't steal so much time from the CPU per batch.

Fixes:
 - Victory Spike
 - Magical Drop III - Yokubari Tokudai-gou!
 - Yuukyuu no Eden - The Eternal Eden
 - Loading screen in World Cup Golf - Professional Edition
2020-05-31 02:43:51 +10:00
Connor McLaughlin
2d067bb101 CDROM: Fix warning log spam on command 2020-05-31 02:41:42 +10:00
Connor McLaughlin
0672cf4873 CDROM: Implement a heuristic for command cancelling
See note in source. Fixes loading times and slowed down audio in Voice
Idol Collection - Pool Bar Story.
2020-05-30 22:04:15 +10:00
Connor McLaughlin
a4f79de7f6 CDROM: Return error for incorrect parameter count 2020-05-30 21:59:03 +10:00
Connor McLaughlin
69a00a64e6 Bus: Adjust memory access and MMIO timing
Hasn't broken anything yet, but needs more thorough testing.
2020-05-30 02:19:12 +10:00