1085 Commits

Author SHA1 Message Date
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
Connor McLaughlin
5aba89091e HostInterface: Fix possible crash in BIOS loading 2020-02-14 22:45:54 +09:00
Connor McLaughlin
d7f8884291 Qt: Fix compilation under clang-9
Fixes #23.
2020-02-13 16:54:09 +09:00
Connor McLaughlin
5c7ef65a34 HostInterface: Non-standard speeds are <100% too 2020-02-12 21:27:43 +09:00
Connor McLaughlin
b8210ecbe3 GPU: Use correct texture page size in overlap tracking 2020-02-12 20:58:34 +09:00
Connor McLaughlin
278aa86d14 SPU: Refactor ADSR/implement exponential mode 2020-02-11 23:10:00 +09:00
Connor McLaughlin
e098c83342 HostInterface: Disable vsync/audio sync when running at not-100% speed 2020-02-11 12:03:25 +09:00
Connor McLaughlin
70fe43a3ec System: Implement variable emulation speed 2020-02-11 12:02:42 +09:00
Connor McLaughlin
9ac7b002e2 GPU/HW: Improve dirty rectangle tracking
Fixes title screen of Activision Classics and performance regression
from Vagrant Story motion blur fix.
2020-02-09 22:49:53 +09:00
Connor McLaughlin
c820ddba79 HostInterface: Move throttle and perf stats to System class 2020-02-09 22:16:25 +09:00
Connor McLaughlin
1e45c9c4e1 GPU: Fix incorrect overwrite of set mask bit from draw mode
Fixes motion blur in Vagrant Story.
2020-02-08 00:01:37 +09:00
Connor McLaughlin
287ab93cdc GPU: Fix texture bit15 not propogating when blending enabled 2020-02-08 00:01:12 +09:00
Connor McLaughlin
ac5af4658d GPU: Mask bit check should use existing colour not new colour 2020-02-07 00:11:12 +09:00
Connor McLaughlin
a36fe8bfe6 GPU: Keep drawing area invalidated after invalidating shadow VRAM copy
Partially fixes the motion blur in Vagrant Story.
2020-02-07 00:10:58 +09:00
Connor McLaughlin
7e862cd63e GPU: Texture bit should be ignored when drawing lines
Fixes line flickering in Vagrant Story.
2020-02-07 00:10:36 +09:00
Stenzek
057263bda3 HostInterface: Track changes to CPU mode in ApplySettings() 2020-02-05 17:43:15 +09:00
Stenzek
c26b9bc54c System: UpdateCPUExecutionMode -> SetCPUExecutionMode 2020-02-05 17:43:00 +09:00
Stenzek
733ab1bca0 Settings: Store debug settings to ini 2020-02-04 15:22:48 +09:00
Connor McLaughlin
52fd070d3b Build: Compile tinyxml2 as static library instead of dll 2020-02-03 14:22:17 +10:00
Connor McLaughlin
0b7abf244e Timers: Fix sync mode 3 inverted condition 2020-01-30 16:22:05 +10:00
Connor McLaughlin
88936463d7 GPU: Toggle vblank timer gate for full frame
Regression from event system. Fixes Ridge Racer.
2020-01-30 16:22:05 +10:00
Connor McLaughlin
4c59d8a9ea Linux build fix 2020-01-24 16:44:13 +10:00
Connor McLaughlin
1b9609ef61 Implement event-based scheduler instead of lock-step components 2020-01-24 16:23:39 +10:00
Connor McLaughlin
624888e131 HostInterface: Default BIOS path to bios subdirectory 2020-01-24 14:52:12 +10:00
Connor McLaughlin
faf2308695 Settings: Move set defaults to HostInterface so it can use user paths 2020-01-24 14:52:04 +10:00
Connor McLaughlin
b5e73a0be4 HostInterface: Add helper methods for getting paths to save states/memcards 2020-01-24 14:52:03 +10:00
Connor McLaughlin
a83cad5872 GPU/D3D11: Use shader bytecode cache 2020-01-24 14:52:01 +10:00
Connor McLaughlin
40799d0f77 HostInterface: Move ModifyResolutionScale() to base class 2020-01-24 14:51:56 +10:00
Connor McLaughlin
4a3478b360 HostInterface: Add function to switch between sw/hw rendering 2020-01-24 14:51:53 +10:00
Connor McLaughlin
f2231d6669 HostInterface: Move setting update logic to base class 2020-01-24 14:51:52 +10:00
Connor McLaughlin
82563d94f4 HostInterface: Fix offset OSD messages in Qt frontend 2020-01-24 14:51:38 +10:00
Connor McLaughlin
687772c4da HostDisplay: Move some derived class fields to base class 2020-01-24 14:51:36 +10:00
Connor McLaughlin
abf48b6cc2 Qt: Update GPU settings when enhancements are changed 2020-01-24 14:51:33 +10:00
Connor McLaughlin
78f984c412 Qt: Add automatic download of redump disc database for game list 2020-01-24 14:51:25 +10:00
Connor McLaughlin
c5faa36f43 GameList: Add function to query whether database exists 2020-01-24 14:51:12 +10:00
Connor McLaughlin
f6fee86f1c HostInterface: Create user directories on startup 2020-01-24 14:51:10 +10:00
Connor McLaughlin
b4c06fdcc6 GameList: Auto set cache/database path from user directory 2020-01-24 14:51:09 +10:00
Connor McLaughlin
77b282862f HostInterface: Move running title info to System 2020-01-24 14:51:05 +10:00
Connor McLaughlin
b3db3a1cc0 HostInterface: Share settings between SDL and Qt frontends 2020-01-24 14:51:03 +10:00
Connor McLaughlin
2c3a0a6af9 HostInterface: Change working directory to user directory at startup 2020-01-24 14:51:02 +10:00
Connor McLaughlin
53428cb55b HostInterface: Add user directory helpers 2020-01-24 14:51:00 +10:00
Connor McLaughlin
8d4d8e44e4 HostInterface: Saving state message should be OSD not error 2020-01-24 14:50:50 +10:00
Connor McLaughlin
0a5f7fcd75 System: Update running game when media changes from save state 2020-01-24 14:50:48 +10:00
Connor McLaughlin
20b60e0f01 Qt: Update window title/save states from running title 2020-01-24 14:50:46 +10:00
Connor McLaughlin
82b4229f1b GameList: Move entry to global scope so it can be forward declared 2020-01-24 14:50:44 +10:00
Connor McLaughlin
9562cbea56 Frontends: Add frame time performance counters 2020-01-24 14:49:47 +10:00
Connor McLaughlin
bfef42f4cb GPU: Fix possible driver crash on oversized update/fill 2020-01-23 00:01:05 +10:00
Connor McLaughlin
a5135ceeb0 GameList: Fix incorrect loading of cache 2020-01-22 17:56:58 +10:00
Connor McLaughlin
a832138191 Settings: Add missing Cubeb entry to audio backend names 2020-01-21 21:27:29 +10:00
Connor McLaughlin
8096dc510d Settings: Add missing load/store of GPU/ForceProgressiveScan 2020-01-21 21:27:21 +10:00
Connor McLaughlin
b9538a55f5 Settings: Add option for creating a debug GPU device 2020-01-19 14:54:19 +10:00
Connor McLaughlin
504510c242 GPU: Fix reading of write-combined GPU buffers
+100fps in recompiler modes
2020-01-16 14:36:10 +10:00
Connor McLaughlin
835bbfaea5 Merge branch 'cubeb' 2020-01-11 13:52:02 +10:00
Connor McLaughlin
8f6ac437ab Frontends: Add cubeb as audio backend option 2020-01-11 13:51:44 +10:00
Connor McLaughlin
c6119c210a Revert "DMA: Delay GPU transfers by block count"
This reverts commit 0639f4264f0b9b40d99e0e5ce40f4eda91bc881d.

Breaks FF7's FMVs in the top row. Needs GPU timings.
2020-01-11 13:40:04 +10:00
Connor McLaughlin
3e90d79df7 Pad: Fix log spam 2020-01-11 13:29:30 +10:00
Connor McLaughlin
71c1e243fe Remove YBaseLib dependency 2020-01-10 13:40:53 +10:00
Connor McLaughlin
c52040434a Core: Linux warning fixes 2020-01-09 08:46:52 +10:00
Connor McLaughlin
c03c1451fe GameList: Support caching entries 2020-01-08 13:37:43 +10:00
Connor McLaughlin
e0086156ca System: Compile fix for Linux 2020-01-08 13:34:21 +10:00
Connor McLaughlin
d32383bd95 Settings: Don't include D3D11 renderer on non-WIN32 platforms 2020-01-07 18:54:39 +10:00
Connor McLaughlin
686df4a203 Qt: Improve imgui hidpi scaling 2020-01-07 18:52:33 +10:00
Connor McLaughlin
1b7be01507 Qt: Implement audio output 2020-01-07 14:18:51 +10:00
Connor McLaughlin
0590f0935c HostInterface: Fix compile error on Linux 2020-01-04 15:25:15 +10:00
Connor McLaughlin
9de0bf0aaf HostInterface: Most some imgui logic from SDL to core 2020-01-02 19:14:06 +10:00
Connor McLaughlin
4b1541087a Controller: Add methods to query buttons/axises for a controller type 2020-01-02 16:10:42 +10:00
Connor McLaughlin
0528a2a1f9 Settings: Put each controller in its own config section 2020-01-02 16:10:30 +10:00
Connor McLaughlin
f3e9c3ec8c Add initial work on Qt frontend 2019-12-31 16:18:30 +10:00
Connor McLaughlin
98214a9327 SettingsInterface: Add support for string list settings 2019-12-31 16:16:47 +10:00
Connor McLaughlin
dbf651e493 CPU/Interpreter: Remove redundant comparison in divu instruction 2019-12-31 11:41:52 +10:00
Connor McLaughlin
0f1f5a4f49 Settings: Define an abstract settings retrieval interface
Can be used by both Android and Qt to access their platform-dependent
formats.
2019-12-30 21:22:49 +10:00
Connor McLaughlin
e66214d93e GameList: Fix non-recursive scanning 2019-12-30 00:45:37 +10:00
Connor McLaughlin
0639f4264f DMA: Delay GPU transfers by block count
Needs real GPU timings, but fixes NFS5 in the meantime.
2019-12-29 15:34:07 +10:00
Connor McLaughlin
41cf894488 GPU/HW: Fix readback of odd transfer widths
Fixes character model flailing and crash in FF9.
2019-12-28 15:50:37 +10:00
Connor McLaughlin
d118377c9e CPU/Recompiler: Reduced forced PC flushes 2019-12-28 14:04:15 +10:00
Connor McLaughlin
620284f7d1 CPU/Recompiler/AArch64: Use PC-relative branches to far code 2019-12-27 20:38:07 +10:00
Connor McLaughlin
29355bc44d CPU/Recompiler: Move branch codegen to base class 2019-12-27 20:38:07 +10:00
Connor McLaughlin
aabe5b9287 CPU/Recompiler: Add GetCurrentCodePointer() 2019-12-27 20:38:07 +10:00
Connor McLaughlin
390b6da0b8 CPU/Recompiler: Add unconditional EmitBranch 2019-12-27 20:38:07 +10:00
Connor McLaughlin
4f2c1e1a6b CPU/Recompiler: Add EmitBindLabel and EmitBranchIfBitClear 2019-12-27 20:38:07 +10:00
Connor McLaughlin
03a36645a2 Settings: Save fullscreen setting to ini 2019-12-27 20:38:07 +10:00
Connor McLaughlin
5bb2b3ec63 Frontend: Add audio backend to settings (switch-while-running) 2019-12-27 20:38:07 +10:00
Connor McLaughlin
16317d077e Settings: Add audio backend, move sync settings to Display/Audio 2019-12-27 20:38:07 +10:00
Connor McLaughlin
c8d3b2c546 GPU/Software: Use templates for render functions 2019-12-22 19:34:24 +10:00
Connor McLaughlin
a1b52980e2 GPU: Implement line renderering in software renderer 2019-12-22 18:53:20 +10:00
Connor McLaughlin
ad21f48a67 Fix Android build after controller changes 2019-12-16 16:46:43 +10:00
Connor McLaughlin
52c82b6aa3 Pad: Change controller types when loading states if needed 2019-12-16 00:05:48 +10:00
Connor McLaughlin
cbcb9b02b0 AnalogController: Rumble support 2019-12-15 23:22:53 +10:00
Connor McLaughlin
1d2bd11b02 Frontend: Add controller settings 2019-12-15 22:24:27 +10:00
Connor McLaughlin
a347b3606e Implement support for analog controllers 2019-12-15 21:58:27 +10:00
Connor McLaughlin
6e18e56089 Controller: Support general axis input events 2019-12-15 00:32:55 +10:00
Connor McLaughlin
32d8b4dc84 Frontend: Dynamic button mapping based on controller type 2019-12-15 00:17:43 +10:00
Connor McLaughlin
c65279f944 System: Create controllers dynamically based on config 2019-12-14 23:29:26 +10:00
Connor McLaughlin
ea0845d5ad Move controller creation to System class, switch shared_ptr to unique_ptr 2019-12-14 23:20:24 +10:00
Connor McLaughlin
5fd421860a GameList: Support detecting region from system area of CDROM
More accurate than basing it off the code, and better support for
homebrew discs.
2019-12-13 16:51:40 +10:00
Connor McLaughlin
f77721b84d CPU/Recompiler: Fix "jalr t0, t0" and like instructions (mainly AArch64) 2019-12-13 14:36:41 +10:00
Connor McLaughlin
5e5b1b64db CPU/Recompiler: Incorporate latest work into AArch64 backend 2019-12-13 01:25:05 +10:00
Connor McLaughlin
44c76f3bf3 CPU/Recompiler: Support three-operand basic operations
e.g. add r1, r2, r3. This eliminates the extra move on ARM.
2019-12-13 00:51:41 +10:00
Connor McLaughlin
41298a74e1 CPU/Recompiler: Fetch instruction before dispatching interrupts
Fixes polygon glitches in Crash.
2019-12-12 23:55:42 +10:00
Connor McLaughlin
aa52dbfeb8 CPU/Recompiler: Use register cache for managing pc
Reduces the number of loadstores after each instruction.
2019-12-12 23:55:23 +10:00
Connor McLaughlin
002d1cd4fd CPU/CoreCache: Use virtual (unmasked) address as PC 2019-12-12 20:23:53 +10:00
Connor McLaughlin
a267451614 CPU/Recompiler: Remove unused code 2019-12-12 20:17:52 +10:00
Connor McLaughlin
20c7aaf74b CPU/Recompiler: Support pushing/popping the register cache state 2019-12-12 20:15:54 +10:00
Connor McLaughlin
1905d22a9a CPU/Recompiler/AArch64: Fix potential stack corruption in function calls 2019-12-12 02:38:03 +10:00
Connor McLaughlin
18066239b7 CPU/Recompiler: Fix bad codegen on slti where rd==rs 2019-12-12 00:00:48 +10:00
Connor McLaughlin
aafac96f34 CPU/Recompiler: Linux/Android compile fix 2019-12-11 22:54:22 +10:00
Connor McLaughlin
37933e9678 CPU/Recompiler: Read GTE registers directly from struct 2019-12-11 22:33:54 +10:00
Connor McLaughlin
b0eb8074f5 CPU/Recompiler: Implement lwc2/swc2 2019-12-11 22:04:11 +10:00
Connor McLaughlin
a5afb250ea CPU/Recompiler: Don't require fallback for GTE instructions 2019-12-11 21:54:08 +10:00
Connor McLaughlin
a6dab97928 CPU: Simplify GTE register addressing 2019-12-11 21:44:26 +10:00
Connor McLaughlin
4e7d420a06 CPU/Recompiler: Implement mfc0/mtc0/rfe 2019-12-11 20:50:55 +10:00
Connor McLaughlin
f5d65448d6 GPU: Improve structure alignment 2019-12-11 20:28:14 +10:00
Connor McLaughlin
8f624afb59 GPU: Fix handling of GP1(09h) 2019-12-11 16:47:49 +10:00
Connor McLaughlin
ffe90083d3 GPU: Refactor draw mode setting 2019-12-11 16:35:14 +10:00
Connor McLaughlin
cda2394287 System: Fix loading of EXEs with sp=0 (leave unchanged) 2019-12-11 16:34:56 +10:00
Connor McLaughlin
6f78fea159 GL: Improve error handling with texture creation 2019-12-11 00:02:12 +10:00
Connor McLaughlin
05e6d4c401 GPU/OpenGL: Clean up VAOs at shutdown time
These were leaking before.
2019-12-10 23:37:01 +10:00
Connor McLaughlin
152b56c8cc GPU: Fix mask bit setting on non-textured polygons
Fixes garbled colours in FMVs in some games.
2019-12-10 23:27:41 +10:00
Connor McLaughlin
0d293c4be4 Settings: Disable fast boot and TTY output by default
The latter can cause crashes in some games.
2019-12-10 23:06:45 +10:00
Connor McLaughlin
56b87f33c0 Controller: Linux build fix 2019-12-10 23:05:19 +10:00
Connor McLaughlin
df6e079920 GPU: Add a Force Progressive Scan option (disable interlacing) 2019-12-10 22:52:46 +10:00
Connor McLaughlin
fb0aad0917 System: Include SIO in save state 2019-12-10 00:28:58 +10:00
Connor McLaughlin
89e9373037 Controller: Add a set-button interface in base class 2019-12-09 01:06:58 +10:00
Connor McLaughlin
da14b10e72 Split MemoryCard and PadDevice (now Controller) 2019-12-09 00:52:00 +10:00
Connor McLaughlin
c1710482df Pad: Add button name -> code lookup functions 2019-12-09 00:46:04 +10:00
Connor McLaughlin
8930383c96 GPU: Use start address in computation of drawing_even_line 2019-12-08 00:40:52 +10:00
Connor McLaughlin
42ee55ae17 CDROM: Seek to start of first track on stop
Fixes WipEout crashing after track selection.
2019-12-07 21:09:30 +10:00
Connor McLaughlin
315f2b701a Stub out SIO controller
Fixes WipEout booting.
2019-12-07 21:09:04 +10:00
Connor McLaughlin
67c67bbb66 GPU: Add basic texture filtering support
Still has issues around the edges of text.
2019-12-07 17:03:56 +10:00
Connor McLaughlin
c284d3835f GPU: Add a simplified OpenGL ES renderer
Seems this is the only way to get semi-decent performance out of Mali
drivers :/
2019-12-07 01:37:37 +10:00
Connor McLaughlin
8d7b93766d MemoryCard: Fix incorrect checksum after formatting
Fixes memory cards not working in the BIOS.
2019-12-07 00:03:05 +10:00
Connor McLaughlin
54277dc24f Pad: Update status after ACK 2019-12-07 00:02:47 +10:00
Connor McLaughlin
36fbc4523d CDROM: Skip reading sectors which have an invalid SubQ checksum
i.e. libcrypt support
2019-12-06 21:15:04 +10:00
Connor McLaughlin
bc44d4b1b0 CDImage: Support SBI replacement subchannel Q for cue/bin images 2019-12-06 21:14:58 +10:00
Connor McLaughlin
53621bd3eb CDROM: Fix clipping when combined left/volume volume > 0x80 2019-12-06 00:33:46 +10:00
Connor McLaughlin
4798f35e40 Pad: Delay ACK after receiving byte
The controller routines in the BIOS seem to depend on this, if they
happen at the same time depending on what part of the code it was in,
it'll assume no controller is connected.
2019-12-05 23:03:56 +10:00
Connor McLaughlin
9fa8eb239e CPU: Force-inline some accessor functions 2019-12-05 23:02:03 +10:00
Connor McLaughlin
8b9d44f4dc System: Use game code for automatic region detection 2019-12-05 17:09:10 +10:00
Connor McLaughlin
eeea5125f7 CPU: Use pending ticks as downcount comparison
Saves a few cycles decrementing the downcount.
2019-12-05 16:28:46 +10:00
Connor McLaughlin
0171dc4241 CPU/Recompiler: Prevent vixl from using scratch registers
This took too long to find that it was trashing one of our register
cache values. Let it abort instead, until we use the base assembler
instead of the macro assembler.
2019-12-05 02:03:01 +10:00
Connor McLaughlin
914abe64c1 CPU/Recompiler: Extend sign for add/sub/cmp immediates in AArch64 2019-12-05 02:02:23 +10:00
Connor McLaughlin
8c33163ef1 Android: Add type to game list (disc/psexe) 2019-12-04 21:54:14 +10:00
Connor McLaughlin
dec475db62 GameList: Support homebrew/psexe files 2019-12-04 21:12:50 +10:00
Connor McLaughlin
baaa94d4c1 CPU/Recompiler: Instruction parity between x64 and AArch64 2019-12-04 19:52:56 +10:00
Connor McLaughlin
f49216f5f8 CPU/Recompiler: Implement most instructions for AArch64 2019-12-04 01:50:59 +10:00
Connor McLaughlin
e518cbfffb CPU/Recompiler: Fallback-all-instructions working in AArch64 2019-12-03 20:45:14 +10:00
Connor McLaughlin
bbe1cb5fe9 CPU: Preparations for AArch64 recompiler 2019-12-03 01:31:49 +10:00
Connor McLaughlin
efb8033d48 HostInterface: Fix for gcc < 8 2019-12-03 01:29:26 +10:00
Connor McLaughlin
45fc19fd05 GPU: Only latch texpage/mode on polygon/set draw mode
Driver seems to draw an off-screen polygon to set up the parameters,
instead of the set draw mode command.

Fixes broken sprites in Driver/Driver 2.
2019-12-02 17:04:26 +10:00
Connor McLaughlin
a3f2286bdb CDROM: Hack to set subq position before seek instead of after
I assume this should be set throughout the seek to the current disc
position, but since we're only updating at the end of the seek, this'll
do.

Fixes music looping in Spyro.
2019-12-02 17:02:59 +10:00
Connor McLaughlin
adc3a2fac1 Android: Support GLES3 and hardware renderers 2019-12-01 21:57:27 +10:00
Connor McLaughlin
299ee05cd9 HostInterface: Move OSD messages to base class 2019-12-01 21:33:56 +10:00
Connor McLaughlin
0a6b913536 HostInterface: Move performance counters to base class 2019-12-01 21:29:09 +10:00
Connor McLaughlin
abfa531648 GameList: Add disc size 2019-12-01 19:52:00 +10:00
Connor McLaughlin
ea52b9e8aa GameList: Support parsing Redump.org dat files 2019-12-01 19:52:00 +10:00
Connor McLaughlin
04c70b3118 Add initial game list class implementation 2019-11-29 23:46:11 +10:00
Connor McLaughlin
ea0b13a05c More changes to accomodate Android - imgui/host display 2019-11-28 23:32:57 +10:00
Connor McLaughlin
f11d357ab9 Compile fixes for Android 2019-11-28 01:55:33 +10:00
Connor McLaughlin
aec01d3890 Bus: Reduce RAM write delay 2019-11-27 00:01:47 +10:00
Connor McLaughlin
519dbc818d CPU/CodeCache: Fix DMA writes not invalidating code blocks
Fixes Crash Team Racing and Spyro in Cached Interpreter/Recompiler
modes.
2019-11-26 19:45:38 +10:00
Connor McLaughlin
771a151567 GPU/OpenGL: Use CopyImageSubData for VRAM copies
Not correct with regard to the mask bit handling, but better than
blitting.
2019-11-25 00:27:23 +10:00
Connor McLaughlin
22e8b6b0a7 System: Fall back to software when D3D11 selected on Linux 2019-11-25 00:24:22 +10:00
Connor McLaughlin
0bc7333e6e GPU/OpenGL: Set GLSL version string dynamically
Rather than hardcoding to 3.3.
2019-11-25 00:17:17 +10:00
Connor McLaughlin
db0d11c2ff GPU/HW: Cull primitives larger than 1024x512 2019-11-24 23:46:33 +10:00
Connor McLaughlin
024ed01bbb GPU/HW: Set alpha to mask bit setting 2019-11-24 23:30:35 +10:00
Connor McLaughlin
bc5a247a4b GPU/HW: Use dual-source blend to split alpha and mask 2019-11-24 23:28:01 +10:00
Connor McLaughlin
9d6d00480c GPU: Implement mask bit handling in software renderer
Still needs implementation in the hardware renderers.
2019-11-24 18:47:42 +10:00
Connor McLaughlin
6c6bf8714c CPU/Recompiler: Only check interpreter load delay when it's dirty 2019-11-24 16:51:08 +10:00
Connor McLaughlin
e3965d9be3 CPU/Recompiler: Fix b{ltz,gez}al when using a load delayed register 2019-11-24 16:47:21 +10:00
Connor McLaughlin
8c5fcc8f48 CPU: Fix more load delay slot issues
Fixes Spyro again. b{ltz,gez}(al)? disabled in the recompiler until
issues are fixed.
2019-11-24 01:11:51 +10:00
Connor McLaughlin
889bd73ac8 CPU: Add settings for execution mode 2019-11-23 20:22:09 +10:00
Connor McLaughlin
b8de55b9b8 CPU/Recompiler: Implement simple block linking 2019-11-23 19:56:19 +10:00
Connor McLaughlin
201be8aa9c CPU: Fix interpreter speed regression from recompiler
Seems the logging prevented ExecuteInstruction() from being inlined.
2019-11-23 19:49:44 +10:00
Connor McLaughlin
5d0a6f88ad CDROM: Header valid/playing should not be set on SeekL
Fixes Syphon Filter locking up on boot.
2019-11-23 19:13:50 +10:00
Connor McLaughlin
bb4ef2103e GPU: Fix dump vram-to-cpu copies 2019-11-23 19:07:17 +10:00
Connor McLaughlin
da69085b3c CPU/Recompiler: Implement nor 2019-11-23 12:53:44 +10:00
Connor McLaughlin
2f3107216a CPU/Recompiler: Implement syscall/break 2019-11-23 12:51:17 +10:00
Connor McLaughlin
d2d0d5287b CPU/Recompiler: Implement slt/sltu/slti/sltiu 2019-11-23 01:20:59 +10:00
Connor McLaughlin
bdc47319dc CPU/Recompiler: Remove unused variable 2019-11-23 00:45:46 +10:00
Connor McLaughlin
e2850b5a6c CPU/Recompiler: Implement and/or/xor 2019-11-23 00:41:25 +10:00
Connor McLaughlin
a9cbc08890 CPU/Recompiler: Cleanup/combine shift immediate/variable 2019-11-23 00:35:32 +10:00
Connor McLaughlin
5b745864e3 CPU/Recompiler: Implement sub/subu 2019-11-23 00:30:47 +10:00
Connor McLaughlin
f14ad1d3c4 CPU/Recompiler: Implement add/addu/addi 2019-11-23 00:26:56 +10:00
Connor McLaughlin
641e68db95 CPU/Recompiler: Implement b{gez,ltz}(al)? 2019-11-23 00:25:51 +10:00
Connor McLaughlin
167e2a3454 CPU/Recompiler: Implement j/jal/jr/jalr/beq/bne/bgtz/blez 2019-11-22 21:41:10 +10:00
Connor McLaughlin
11966e4caf CPU/Recompiler: Write exception exits to far code buffer
Keeps the hot path nice and clean.
2019-11-22 18:01:28 +10:00
Connor McLaughlin
7b0978119b CPU: Only write exceptions to log when logging 2019-11-22 17:54:06 +10:00
Connor McLaughlin
f46160ac46 CPU/Recompiler: Implement mult/multu 2019-11-22 16:45:13 +10:00
Connor McLaughlin
e5c0d28fdc CPU/Recompiler: Implement mfhi/mthi/mflo/mtlo 2019-11-22 10:53:54 +10:00
Connor McLaughlin
51a873e58d CPU: Expand register file to include hi/lo/pc/npc 2019-11-22 10:53:54 +10:00
Connor McLaughlin
330d512831 CPU: Write exceptions to trace log 2019-11-22 10:53:15 +10:00
Connor McLaughlin
9e82afac7b CPU/Recompiler: Support block revalidation instead of flushing 2019-11-22 00:32:40 +10:00
Connor McLaughlin
7aafaeacbc CPU/Recompiler: Implement lb/lbu/lh/lhu/lw/sb/sh/sw instructions
Currently not passing CPU tests when combined with lwl/lwr.
2019-11-21 23:34:04 +10:00
Connor McLaughlin
9e3bb62216 CPU/CodeCache: Fast path for self-linking blocks 2019-11-20 01:19:03 +10:00
Connor McLaughlin
09de3819eb CPU/Recompiler: Implement sra/srav instructions 2019-11-20 01:00:31 +10:00
Connor McLaughlin
4f436461ff CPU/Recompiler: Combine shift instructions 2019-11-20 01:00:31 +10:00
Connor McLaughlin
51600c5bc0 CPU/Recompiler: Implement andi/xori, combine BitwiseImmediate 2019-11-20 01:00:31 +10:00
Connor McLaughlin
6157aa9d21 CPU/Recompiler: Implement srlv/srrv instructions 2019-11-20 00:32:41 +10:00
Connor McLaughlin
82cbb6e1b8 CPU/Recompiler: Implement srl instruction 2019-11-20 00:21:02 +10:00
Connor McLaughlin
5217088d82 CPU: Refactor load delay handling
Now works when mixing interpreter and recompiler code.
2019-11-20 00:15:15 +10:00
Connor McLaughlin
1d6c4a3af1 CPU: Basic recompiler implementation for x64 (lui, ori, addiu)
Disabled by default.
2019-11-19 20:38:05 +10:00
Connor McLaughlin
b9089cac95 System: Fix EXE loading again 2019-11-18 21:03:48 +10:00
Connor McLaughlin
19062e11b5 Revert "Bus: Relax memory timing"
This reverts commit b5c799ba811e7345f92bd3e9a076304df756a3d9.
2019-11-17 22:11:16 +10:00
Connor McLaughlin
38d0f46063 Frontend: Fix some GPU settings not saving to ini 2019-11-17 22:10:55 +10:00
Connor McLaughlin
48e3683d20 HostInterface: Fix load state on boot not loading state 2019-11-17 19:41:25 +10:00
Connor McLaughlin
d1f7ad2512 HostInterface: Fix display classes not getting destructed 2019-11-17 19:36:56 +10:00
Connor McLaughlin
b2b5e6c793 HostInterface: Reset throttle timer on slowdown
Prevents too slow messages when fast forwarding.
2019-11-17 01:47:50 +10:00
Connor McLaughlin
b5c799ba81 Bus: Relax memory timing
Formulas from Mednafen.
2019-11-17 01:47:46 +10:00
Connor McLaughlin
8fb4f73d17 Settings: Add audio sync and additional cleanup 2019-11-16 20:52:39 +10:00
Connor McLaughlin
3673c6e33c HostInterface: Re-enable audio sync by default 2019-11-16 20:52:39 +10:00
Connor McLaughlin
f1289d6161 Settings: Hook up console region 2019-11-16 20:52:39 +10:00
Connor McLaughlin
613e4f4a2a GPU: Set PAL mode on soft reset if region is PAL 2019-11-16 20:52:39 +10:00
Connor McLaughlin
49ab9467df GPU: Set throttle frequency based on mode config 2019-11-16 20:52:39 +10:00
Connor McLaughlin
77fe883901 System: Default to NTSC region for BIOS boot if auto 2019-11-16 20:52:39 +10:00
Connor McLaughlin
b57f1d4a60 HostInterface: Implement non-vsync based speed throttler
Needed for PAL games.
2019-11-16 20:52:39 +10:00
Connor McLaughlin
246c97ccb3 System: Scaffolding for multi-system/multi-bios 2019-11-16 20:50:59 +10:00
Connor McLaughlin
d6209937fb CDROM: Properly handle audio sectors in SeekL 2019-11-16 12:54:41 +10:00
Connor McLaughlin
f12b97e98b DMA: Add missing transfer_ticks to save state 2019-11-16 01:51:22 +10:00
Connor McLaughlin
2399c1dab7 SPU: Fix incorrect step value in attack phase 2019-11-16 01:43:34 +10:00
Connor McLaughlin
a47492382c System: Add "fast boot" option (skip boot logo) 2019-11-16 01:04:52 +10:00
Connor McLaughlin
30fd7a6683 DMA: Support delaying transfers
Fixes Syphon Filter 2/3.
2019-11-15 23:27:56 +10:00
Connor McLaughlin
e02ebb1b2a SPU: Mute voice without release phase on loop/end flag
Fixes channels getting stuck in Syphon Filter.
2019-11-15 17:24:11 +10:00
Connor McLaughlin
5b5d22fd27 SPU: Stub out transfer control register
Fixes sound in Ridge Racer.
2019-11-15 16:44:23 +10:00
Connor McLaughlin
d9c27c4ee3 SPU: Fix sustain step being ignored 2019-11-15 16:42:25 +10:00
Connor McLaughlin
4e9d5b77f8 GPU: Fix swapped bytes for VRAM->CPU transfers 2019-11-15 15:05:27 +10:00
Connor McLaughlin
f27ad2fa67 Frontend: Re-implement fullscreen 2019-11-15 14:57:27 +10:00
Connor McLaughlin
708ce25cb0 GPU/HW: Fix resolution changing while running corrupting screen 2019-11-14 22:24:47 +10:00
Connor McLaughlin
49569d29aa GPU: Refactor command execution/VRAM->CPU transfers
Simpler, and handles odd sizes correctly.
2019-11-14 22:17:11 +10:00
Connor McLaughlin
bc9ed3572b GPU/HW: Fix flipped GPU readback in D3D11 2019-11-14 22:11:12 +10:00
Connor McLaughlin
9d66638bce GPU: Handle oversized transfers (wrap around behavior) 2019-11-14 20:31:48 +10:00
Connor McLaughlin
9ea7a8418c GPU: Eliminate temporary buffer when reading back 2019-11-14 17:17:22 +10:00
Connor McLaughlin
3998b9684e GPU/HW: GPU-based RGBA8->RGB5551 conversion for readbacks 2019-11-14 17:16:21 +10:00
Connor McLaughlin
53881219ce GPU: Fix handling of interlaced non-480-line mode 2019-11-14 00:59:09 +10:00
Connor McLaughlin
7152d54104 GPU: Simplify 480i mode handling in CRTC 2019-11-14 00:58:15 +10:00
Connor McLaughlin
b48accf0bf GPU/HW: Fix 24-bit output broken with >1x res scale 2019-11-13 22:54:52 +10:00
Connor McLaughlin
76172c88f3 GPU/HW: Disable blending when updating VRAM
Fixes random breakage when it was previously enabled.
2019-11-13 22:48:39 +10:00
Connor McLaughlin
f7f4818de4 GPU/HW: Explicitly specify std140 layout for UBOs 2019-11-13 22:48:14 +10:00
Connor McLaughlin
8cfb8d7922 CDROM: Fix track skip behavior with track=0
Fixes Doom.
2019-11-13 16:33:51 +10:00
Connor McLaughlin
8e06f86db8 CDROM: Implement auto-pause at end of track 2019-11-12 20:40:37 +10:00
Connor McLaughlin
85413218cb SPU: Check upper 8 byte block of ADPCM block for interrupt
Fixes NFS2 stuck after selecting Race.
2019-11-12 18:56:55 +10:00
Connor McLaughlin
90cf6b8b41 CDROM: Don't lose INT1 interrupts from command execution 2019-11-12 18:02:36 +10:00
Connor McLaughlin
6a82333d8f Pad: Only buffer a single byte
Fixes Croc 2 memory card access freezing.
2019-11-12 01:32:06 +10:00
Connor McLaughlin
d8452d7d7d GPU: Track horizontal blanking, correct timer increment point 2019-11-12 01:32:06 +10:00
Connor McLaughlin
f3baee2582 DMA: Hack for self-referencing DMA loops
I need to figure how these are being generated in the first place.
2019-11-11 20:37:13 +10:00
Connor McLaughlin
29674df803 DMA: Simplify address masking 2019-11-11 20:34:41 +10:00
Connor McLaughlin
6f4cf7d5e3 System: Support changing BIOS path 2019-11-11 19:43:39 +10:00
Connor McLaughlin
99c264947d SPU: Implement capture buffers
Fixes Crash Team Racing and lipsyncing within.
2019-11-11 14:06:30 +10:00
Connor McLaughlin
26437e31dd SPU: Fire interrupt on DMA reads/writes too 2019-11-11 14:05:58 +10:00
Connor McLaughlin
8722757412 SPU: Implement pitch modulation 2019-11-11 00:41:09 +10:00
Connor McLaughlin
5a84122862 CDROM: Implement CDDA report 2019-11-10 23:03:52 +10:00
Connor McLaughlin
ab90d287bb CDROM: Use Sub-Channel Q for GetLocP 2019-11-10 22:45:48 +10:00
Connor McLaughlin
68fe492130 CDROM: Use seek time formula from Mednafen 2019-11-10 15:01:18 +10:00
Connor McLaughlin
c0208b6e78 GPU: Flush render before changing drawing area/offset
Fixes "random" broken polygons in hardware backends.
2019-11-09 22:56:53 +10:00
Connor McLaughlin
dbc22fe841 GPU/HW: Fix typo preventing fragment shader based VRAM writes from being used 2019-11-09 21:36:37 +10:00
Connor McLaughlin
5dd4f6f65e CDROM: Implement ReadTOC command 2019-11-09 00:21:11 +10:00
Connor McLaughlin
7e7b7dc216 CDROM: Stub out SCEx test commands 2019-11-09 00:21:04 +10:00
Connor McLaughlin
5eea2f9ced CDROM: Fix interrupt enable register having no effect 2019-11-08 23:49:28 +10:00
Connor McLaughlin
c3efc5637a CDROM: Implement Getparam command 2019-11-08 22:45:06 +10:00
Connor McLaughlin
487f952c48 CDROM: Clear response FIFO before writing results 2019-11-08 22:42:42 +10:00
Connor McLaughlin
02132a9f29 CDROM: INT2 should not be sent after read/play command 2019-11-08 21:16:21 +10:00
Connor McLaughlin
8c51abaf37 System: Move settings to HostInterface 2019-11-08 01:07:39 +10:00
Connor McLaughlin
36b7690056 Frontend: Add settings window 2019-11-08 00:22:25 +10:00
Connor McLaughlin
98a5c4980d Settings: Use simpleini for settings load/save 2019-11-07 01:43:51 +10:00
Connor McLaughlin
26c22f003f Common: Persistent-mapped stream buffer implementation 2019-11-07 00:08:13 +10:00
Connor McLaughlin
ff8cef4da3 GPU/HW: Support OpenGL ES 2019-11-06 01:33:09 +10:00
Connor McLaughlin
b28610e30b Frontend: Support OpenGL ES 2019-11-06 01:32:56 +10:00
Connor McLaughlin
15c42f032f GPU/HW: Fallback path for VRAM writes for GPUs w/o texel buffers 2019-11-05 23:16:03 +10:00
Connor McLaughlin
089f297b9a GPU/HW: Fallback path via blit for GPUs without GL_EXT_copy_image 2019-11-05 23:06:40 +10:00
Connor McLaughlin
cc7483ad58 GPU/HW: Only copy the dirty area to the VRAM read texture 2019-11-05 22:34:36 +10:00
Connor McLaughlin
da51d49d18 GPU/HW: Track VRAM fills/writes in dirty rectangle instead of invalidating 2019-11-05 22:12:39 +10:00
Connor McLaughlin
2578f34a7c GPU/HW: Reset state when shutting down 2019-11-05 19:51:08 +10:00
Connor McLaughlin
2c631aba5e GPU: Move stats from renderer class to base classes 2019-11-05 19:44:17 +10:00
Connor McLaughlin
afbec85f89 GPU/HW: Track dirty area of VRAM shadow texture via drawing area 2019-11-05 19:19:49 +10:00
Connor McLaughlin
16d83989e5 GPU/HW: Support line drawing at >1x scale in D3D11 via GS 2019-11-05 00:27:22 +10:00
Connor McLaughlin
3619b46b45 GPU: Fix parsing of polylines.. again 2019-11-05 00:26:35 +10:00
Connor McLaughlin
3c64a242bb GPU: Fix incorrect parsing of polyline commands 2019-11-04 02:56:30 +10:00
Connor McLaughlin
5d26c2177f GPU/HW: Don't crash when switching to incompatible renderer 2019-11-04 02:02:33 +10:00
Connor McLaughlin
a397979d72 GPU/HW: Elide buffer copy in scanout and fix flipped display 2019-11-04 01:46:19 +10:00
Connor McLaughlin
ac45f3892c Frontend: Fix broken display texture for OpenGL 2019-11-04 01:01:31 +10:00
Connor McLaughlin
4a6f283484 CPU: Add trace log to file support 2019-11-04 00:55:07 +10:00
Connor McLaughlin
9de9cf3be2 GPU/HW: Add D3D11 renderer and refactor host interface/display 2019-11-04 00:39:48 +10:00
Connor McLaughlin
d68f7085d6 Common: Move GL classes to subdirectory 2019-11-03 15:22:37 +10:00
Connor McLaughlin
47849465d8 GPU/HW: Use uniform blocks for all shaders + HLSL support in shadergen 2019-11-03 15:18:51 +10:00
Connor McLaughlin
be81d08109 GPU/HW: Split shadergen to seperate class 2019-11-03 13:36:59 +10:00
Connor McLaughlin
91c99f0226 GPU/HW: Use uniform blocks for batch rendering 2019-11-03 13:18:43 +10:00
Connor McLaughlin
aa1f3ad8f7 GPU: Don't truncate clear colour to 15-bit with true colour on 2019-11-03 01:05:37 +10:00
Connor McLaughlin
f7f5d45d7a GPU: Fix incorrect VRAM fill colours in GL renderer 2019-11-03 01:02:05 +10:00
Connor McLaughlin
8ffce6ae0b GPU: Fix 24-bit scanout being cut-off at >1x resolution scale 2019-11-03 00:52:37 +10:00
Connor McLaughlin
ba1a5a5ca9 GPU: Fix batching regression (draws split on texture page) 2019-11-03 00:36:47 +10:00
Connor McLaughlin
5abbdef065 Fix compile errors on GCC 2019-11-03 00:15:42 +10:00
Connor McLaughlin
6dc7069d7c CDROM: Fix buffer overflow 2019-11-03 00:09:17 +10:00
Connor McLaughlin
bb572d5c14 GPU: Remove hack for bitwise ops on TextureMode enum 2019-11-03 00:01:54 +10:00
Connor McLaughlin
4143469353 GPU: Use texture buffer/fragment shader for VRAM writes 2019-11-02 23:43:20 +10:00
Connor McLaughlin
60281eb67e Common: Use std::string_view for GL::Program 2019-11-02 23:42:21 +10:00
Connor McLaughlin
2b17cfd365 GPU: Use streaming buffers for CPU->VRAM transfers 2019-11-02 22:31:15 +10:00
Connor McLaughlin
407fee9ec3 GPU: Add base functionality for GL streaming buffers 2019-11-02 22:21:56 +10:00
Connor McLaughlin
c52c0608ae GPU: Move resolution scale to hardware backend only 2019-11-02 01:32:27 +10:00
Connor McLaughlin
c9feb7ea07 GPU: Add force true color setting 2019-11-02 00:31:25 +10:00
Connor McLaughlin
fc09b722ea GPU: Truncate fragment values to 15-bit RGB 2019-11-02 00:01:03 +10:00
Connor McLaughlin
bbd7798ca4 GPU: Apply dither pattern more correctly at higher resolutions 2019-11-01 23:17:50 +10:00
Connor McLaughlin
3aa4219067 GPU: Implement dithering on software backend 2019-11-01 23:11:37 +10:00
Connor McLaughlin
ac82383abe GPU: Implement dithering on OpenGL backend 2019-11-01 23:11:30 +10:00
Connor McLaughlin
1d1da1d82c GPU: Add VRAM read/write stats to GL renderer 2019-11-01 22:06:24 +10:00
Connor McLaughlin
1c79737021 GPU: Simplify batch state 2019-11-01 21:47:45 +10:00
Connor McLaughlin
1540769cb4 GPU: Fix interlaced display at higher internal resolutions 2019-10-30 01:01:57 +10:00
Connor McLaughlin
5626d4f282 GPU: Fix texcoord off-by-one error in rectangles 2019-10-29 23:42:08 +10:00
Connor McLaughlin
9f5bd6e5f9 SPU: Correct sample rate display in debugger 2019-10-29 22:54:16 +10:00
Connor McLaughlin
40eb157d77 SPU: Fix off-by-one-sampling-error causing noise in output 2019-10-29 13:33:19 +10:00
Connor McLaughlin
772ef27a55 GPU: Implement display disable command GP1(03h) 2019-10-28 17:43:34 +10:00
Connor McLaughlin
3128d0ebcb CDROM: Shell open flag behavior when changing discs 2019-10-28 17:34:46 +10:00
Connor McLaughlin
a1ed2d1d77 CDROM: Implement motor on command 2019-10-28 17:25:04 +10:00
Connor McLaughlin
c15822d745 CDROM: Implement stop command 2019-10-28 17:19:29 +10:00
Connor McLaughlin
6e60991fd0 Frontend: Add hotkey to adjust resolution scale 2019-10-28 00:48:43 +10:00
Connor McLaughlin
49be3efb35 GPU: Preserve low bits in upscaled texture coordinates 2019-10-27 23:50:28 +10:00
Connor McLaughlin
12ce777e30 Frontend: Add toggle for software rendering 2019-10-27 21:52:10 +10:00
Connor McLaughlin
21f555cf8f Frontend: Add pause support 2019-10-27 21:26:15 +10:00
Connor McLaughlin
4e6596adfb GPU: Update display after loading state
Fixes black frame after switching renderers.
2019-10-27 21:08:43 +10:00
Connor McLaughlin
b1d3ba3d68 GPU: Remove unused resolution fields in CRTC 2019-10-27 20:20:53 +10:00
Connor McLaughlin
6bbf5b70bb CDROM: More refactoring, playing -> header valid bit changes 2019-10-27 19:55:49 +10:00
Connor McLaughlin
dd4b9609b5 CDROM: Increase ack timing 2019-10-27 17:58:20 +10:00
Connor McLaughlin
0092cb1016 Pad: Set up memory cards via settings 2019-10-27 17:46:36 +10:00
Connor McLaughlin
739ada4721 CDROM: Send pre-pause/seek/read stat for commands 2019-10-27 14:38:48 +10:00
Connor McLaughlin
4181b8c6b5 CDROM: Fix XA sectors overwriting unfetched data sectors 2019-10-27 13:44:23 +10:00
Connor McLaughlin
41574d92e8 Build: Enable conformance mode 2019-10-27 01:58:28 +10:00
Connor McLaughlin
e99f0a4acf Pad: Use baud rate for transfer delay 2019-10-27 01:52:18 +10:00
Connor McLaughlin
4283fa7f74 CDROM: Tweak timings / add missing status update 2019-10-27 01:45:26 +10:00
Connor McLaughlin
0d71ebccc8 Frontend: Add display linear filtering option 2019-10-27 00:02:01 +10:00
Connor McLaughlin
88eec0a56b GPU: Fix internal resolution options not displaying 2019-10-26 22:36:01 +10:00
Connor McLaughlin
62f6a5597e CDROM: Don't crash emulator when interrupts are missed 2019-10-26 22:34:05 +10:00
Connor McLaughlin
b0c492fd43 DigitalController: Fix broken input due to 0x01 handling
Fixes THPS among others.
2019-10-26 22:33:25 +10:00
Connor McLaughlin
99663d119c CDROM: Refactoring seek/read to support timing 2019-10-26 21:10:08 +10:00
Connor McLaughlin
b4f2bf4d3c CDROM: Deliver data interrupt asynchronously
Prevents FMVs locking up when a command is being executed during a
sector read.
2019-10-26 17:41:39 +10:00
Connor McLaughlin
3ded9d46c1 CDROM: Combine stat pushing/ack interrupt 2019-10-26 16:12:37 +10:00
Connor McLaughlin
bedc305b64 CPU: Inline instruction accessor functions 2019-10-26 15:44:03 +10:00
Connor McLaughlin
1adb1d14ae Build: Enable inlining for __inline functions in DebugFast 2019-10-26 15:42:21 +10:00
Connor McLaughlin
a9e0fe6db2 cpu: Remove superfluous logging for syscall 2019-10-26 15:39:10 +10:00
Connor McLaughlin
ed6d0e34de MDEC: Fix broken stats window 2019-10-26 13:31:45 +10:00
Connor McLaughlin
540e942a46 Add basic software GPU renderer 2019-10-26 12:57:45 +10:00
Connor McLaughlin
9b56499afa Refactoring settings/support changing GPU renderer at runtime 2019-10-26 12:55:56 +10:00
Connor McLaughlin
2d0dd03705 GPU: Implement weave deinterlacing 2019-10-23 15:36:37 +10:00
Connor McLaughlin
3db77a3139 SPU: Handle IRQ address register (fixes FF8 intro FMV) 2019-10-23 00:50:00 +10:00
Connor McLaughlin
c048679044 GPU: Don't create explicit framebuffers 2019-10-23 00:35:20 +10:00
Connor McLaughlin
a76ec6fc19 Compile fixes for GCC 2019-10-22 23:07:51 +10:00
Connor McLaughlin
dc7b72b156 Frontend: Support vsync for speed limiter 2019-10-21 01:41:31 +10:00
Connor McLaughlin
1b8b730f85 GPU: Compute display aspect ratio based on visible area 2019-10-21 00:18:52 +10:00
Connor McLaughlin
2e70c22422 GPU: Properly handle display range config 2019-10-20 23:19:26 +10:00
Connor McLaughlin
7e39dd0935 GPU: Fix display of 24-bit buffers with upscaling enabled 2019-10-20 22:59:40 +10:00
Connor McLaughlin
4f1fc7abf0 Fix CMake build 2019-10-20 22:31:45 +10:00
Connor McLaughlin
9058a79184 Remove libsamplerate dependency 2019-10-20 22:26:49 +10:00
Connor McLaughlin
0e6d1d5629 Frontend: Add a powered-off window/welcome screen 2019-10-20 21:19:54 +10:00
Connor McLaughlin
884378045d SPU: Add CD audio volume control 2019-10-20 21:19:54 +10:00
Connor McLaughlin
140d63c674 SPU: Add more details to debug window 2019-10-20 21:19:54 +10:00
Connor McLaughlin
b5f7fa2652 SPU: Stub out noise mode register 2019-10-20 21:19:54 +10:00
Connor McLaughlin
33f1cf4fd4 SPU: Global volume control 2019-10-20 21:19:54 +10:00
Connor McLaughlin
f3cd100b16 SPU: Float-less volume application 2019-10-20 21:19:54 +10:00
Connor McLaughlin
03e4c71b4c CDROM: Implement CDDA playback 2019-10-20 15:55:23 +10:00
Connor McLaughlin
faa9e59f61 GPU: Correctly mask src x/y in VRAM->CPU transfer 2019-10-20 15:31:32 +10:00
Connor McLaughlin
75f206262c Pad: Store JOY_BAUD 2019-10-18 23:52:52 +10:00
Connor McLaughlin
f046d1008e GPU: Mask high bits in copy commands 2019-10-18 23:52:52 +10:00
Connor McLaughlin
9433e08782 CDROM: Implement GetTD command 2019-10-18 23:52:52 +10:00
Connor McLaughlin
4959de9859 CDROM: Implement GetTN command 2019-10-18 23:52:52 +10:00
Connor McLaughlin
baf97cb864 GPU: Split command handlers into seperate file 2019-10-18 23:52:52 +10:00
Connor McLaughlin
246b17454e CDROM: Store filename, reduce ack cycles 2019-10-18 23:52:52 +10:00
Connor McLaughlin
513bbe44f3 Common: Refactor CDImage class to support multiple tracks/indices 2019-10-18 23:52:52 +10:00
Connor McLaughlin
c8bbd25f59 MDEC: Refactor buffer handling, fixes FF9 FMVs 2019-10-18 23:52:52 +10:00
Connor McLaughlin
6b4298541c DMA: Fix DICR write breaking FMVs in FF7 2019-10-18 23:52:50 +10:00
Connor McLaughlin
9d5f3c1306 CPU: Support stalling CPU for bus activity such as DMA 2019-10-18 00:20:38 +10:00
Connor McLaughlin
0324ae2fd7 CDROM: Initial debug windows 2019-10-17 23:54:51 +10:00
Connor McLaughlin
a6a121f8fe CPU: Add missing instruction signature for xori 2019-10-16 02:17:18 +10:00
Connor McLaughlin
5784fc260d Update CPU interrupt line on interrupt mask change 2019-10-16 02:17:18 +10:00
Connor McLaughlin
254c668d7e GPU: Implement GP1(00h) 2019-10-16 02:17:18 +10:00
Connor McLaughlin
45bfcc8225 GPU: Fix GPUSTAT(31) during vblank 2019-10-16 02:17:18 +10:00
Connor McLaughlin
e68cddf017 Fix CMake build 2019-10-15 18:02:48 +10:00
Connor McLaughlin
aa792da823 CDROM: Implement XA-ADPCM decoding 2019-10-15 17:28:23 +10:00
Connor McLaughlin
7195766563 CDROM: Implement XA-ADPCM filtering 2019-10-15 17:25:48 +10:00
Connor McLaughlin
f285f26ec2 CDROM: Last sector header is already in BCD - fix for GetLocP 2019-10-15 17:25:01 +10:00
Connor McLaughlin
b4a6c98bbe CPU: Move alignment check to branch instead of fetch
There is no other way to end up with an unaligned PC.
2019-10-13 18:35:21 +10:00
Connor McLaughlin
7448cbaf9d GPU: Copy-less processing from DMA 2019-10-13 17:33:20 +10:00
Connor McLaughlin
ec8c5d4bb6 DMA: Batch multi-word transfers together 2019-10-13 16:48:11 +10:00
Connor McLaughlin
88ec178380 DMA: Refactoring, support split block transfers 2019-10-13 14:16:49 +10:00
Connor McLaughlin
2d9d999713 Add debug window for MDEC 2019-10-12 23:27:23 +10:00
Connor McLaughlin
0f68c8c5d3 Add debugging for GPU/Timers 2019-10-12 22:15:38 +10:00
Connor McLaughlin
b945d10b04 GTE: Handle buggy matrix in MVMVA 2019-10-12 17:21:24 +10:00
Connor McLaughlin
9bdff9e1dc GTE: Fix NCDT 2019-10-12 17:21:08 +10:00
Connor McLaughlin
3f1fea0e97 GTE: Fix RTPS/RTPT 2019-10-12 14:49:26 +10:00
Connor McLaughlin
a55412c24a SPU: Hide debug window by default 2019-10-11 17:48:34 +10:00
Connor McLaughlin
25209c3d58 SPU: Clear fields on Reset 2019-10-11 16:56:45 +10:00
Connor McLaughlin
d88da93a55 SPU: Save state support 2019-10-11 16:54:21 +10:00
Connor McLaughlin
51ea81eebf SPU: Don't store the undecoded ADPCM blocks 2019-10-11 16:42:28 +10:00
Connor McLaughlin
a3446b8275 SPU: Implement ADSR 2019-10-11 16:05:34 +10:00
Connor McLaughlin
3912e0e8d6 SPU: More implementation work 2019-10-11 13:24:48 +10:00
Connor McLaughlin
f852b8dd90 Further work on SPU implementation 2019-10-11 02:20:21 +10:00
Connor McLaughlin
14d32c882a DMA: Kick start transfers on master enable 2019-10-11 02:18:16 +10:00
Connor McLaughlin
2f8edd1812 MDEC: Only set DMA request when there is actually data to write 2019-10-08 19:27:22 +10:00
Connor McLaughlin
75eee533df CDROM: Add missing state save 2019-10-08 19:26:58 +10:00
Connor McLaughlin
d373b5d3a9 Timers: Fix oneshot/toggle modes 2019-10-08 18:21:15 +10:00
Connor McLaughlin
c794d2911d MDEC: Support resumable decoding from partial transfers 2019-10-07 01:04:20 +10:00
Connor McLaughlin
caec927a98 GPU: Implement GetGPUInfo subcommands 02-05h 2019-10-06 23:12:17 +10:00
Connor McLaughlin
5627955900 GPU: Two-pass rendering for B-F transparency 2019-10-06 13:09:04 +10:00
Connor McLaughlin
7254d48835 GPU: Pull page attributes from GPUSTAT if texturing is not enabled 2019-10-06 00:37:53 +10:00
Connor McLaughlin
b7209eafb1 GPU: Fix out-of-bounds read in GP1(10h) 2019-10-06 00:37:31 +10:00
Connor McLaughlin
24bda8f659 GPU: Flush rendering before filling rectangle 2019-10-05 23:31:19 +10:00
Connor McLaughlin
e286d6389c GPU: Flush rendering when drawing offset changes 2019-10-05 23:29:36 +10:00
Connor McLaughlin
2a0483f571 GPU: Flush rendering when drawing area changes 2019-10-05 23:28:34 +10:00