1038 Commits

Author SHA1 Message Date
Connor McLaughlin
f65651823e GPU: Simplify hsync handling
Fixes character lighting in Monkey Hero.
2020-08-17 01:22:03 +10:00
Connor McLaughlin
4e62b32d60 Add option to dump the contents of RAM to a file 2020-08-16 23:20:36 +10:00
Connor McLaughlin
10a46a7fd8 OSD: Add option to show display resolution 2020-08-16 00:20:11 +10:00
Connor McLaughlin
26aa627deb GPU/HW: Include resolution in scale change message 2020-08-16 00:20:11 +10:00
Connor McLaughlin
f5fb8186c7 Switch some messages to the OSD and increase durations 2020-08-16 00:20:10 +10:00
Connor McLaughlin
e0e76b881d System: Bump save state version 2020-08-16 00:20:10 +10:00
Connor McLaughlin
d9893bb127 System: Add option to use a single memory card for playlists 2020-08-16 00:20:10 +10:00
Connor McLaughlin
dedeee1698 System: Track playlists in save states 2020-08-16 00:20:10 +10:00
Connor McLaughlin
8fa965a1ac GameList: Support playlist entries 2020-08-16 00:20:10 +10:00
Connor McLaughlin
d4665e8b22 GPU: Tweaks to ODE handling
Fixes Team Buddies and The Next Tetris.
2020-08-16 00:20:10 +10:00
Connor McLaughlin
c5db7db182 Build: Compile source as UTF-8 with MSVC 2020-08-15 00:04:38 +10:00
Connor McLaughlin
025e01ca47 CPU: Fix exceptions clobbering cop0.cause.Ip
Fixes Gran Turismo 2 (PAL).
2020-08-14 23:55:16 +10:00
Connor McLaughlin
e6156e2adb GPU/ShaderGen: Move transparent compensation to bilinear function 2020-08-12 02:27:52 +10:00
Connor McLaughlin
bb344a4e1e GPU/D3D11: Fix crash/hang when toggling bilinear setting 2020-08-12 02:27:52 +10:00
Connor McLaughlin
d1ee6c0da7 GPU/HW: Make settings update slightly safer 2020-08-12 02:27:52 +10:00
Connor McLaughlin
17a1719450 GPU/HW: Fix incorrect texel offset when upscaling
Fixes incorrectly coloured triangles in Tomb Raider.
2020-08-12 02:27:52 +10:00
Connor McLaughlin
d733553425 GPU/HW: Don't display a deleted texture in D3D/OpenGL when updating settings 2020-08-11 04:03:11 +10:00
Connor McLaughlin
2130d3b004 GPU/Vulkan: Don't add UV limits as attribute when unused 2020-08-11 03:58:59 +10:00
Connor McLaughlin
fba2488bc5 GPU/D3D11: Don't add UV limits to input layout when unused 2020-08-11 03:58:59 +10:00
Connor McLaughlin
bf9ac64183 GPU/D3D11: Don't leak input layout objects 2020-08-11 03:48:24 +10:00
Connor McLaughlin
3a020ef87e HostInterface; Fix crash on shutdown if boot fails 2020-08-11 03:01:08 +10:00
Connor McLaughlin
5c6e92cdfc GPU/HW: Disable coordinate clamping when unnecessary 2020-08-10 23:28:37 +10:00
Connor McLaughlin
b95ce993e0 GPU/HW: Clamp interpolated UVs to polygon limits
Fixes texture filtering and PGXP issues in some games.
2020-08-10 23:28:37 +10:00
Connor McLaughlin
5b9db71b87 CPU/Recompiler: Fix mid-block software interrupts not updating pc
Fixes Need for Speed: High Stakes hanging at boot.
2020-08-09 04:32:53 +10:00
Connor McLaughlin
223074b78f SPU: Fix activating transfer event with a downcount of 0
Happened when loading states.
2020-08-09 04:29:43 +10:00
Connor McLaughlin
70767dc6bf CPU/Recompiler/AArch64: Use cmn for negative constant comparisons 2020-08-08 23:44:13 +10:00
Connor McLaughlin
901ca71fdc CPU/Recompiler: Add temporary inhibiting of register allocation 2020-08-08 23:44:13 +10:00
Connor McLaughlin
1d5f810a4b CPU/Recompiler: Disable memory access exceptions by default
This means it'll no longer pass amidog's CPU test in the default config.
But no games rely on this. You can enable it in advanced options if you
want to pass the CPU test.
2020-08-08 23:44:13 +10:00
Connor McLaughlin
b1377fe0d9 CPU/Recompiler: Add a fast block lookup array
Up to 15% perf improvement.
2020-08-08 23:06:28 +10:00
Connor McLaughlin
f6e88353eb CPU/Recompiler: Make generated code invariant to virtual PC 2020-08-08 23:06:28 +10:00
Connor McLaughlin
8d4216068a CPU/Recompiler: Implement div/divu 2020-08-08 23:06:27 +10:00
Connor McLaughlin
a2f271c505 CPU: Simplify some exception checks in cop0-3 2020-08-07 17:05:01 +10:00
Connor McLaughlin
e5c46a54b7 System: Restore/reset state on recreating GPU/updating settings
Fixes display corruption on RetroArch when switching renderers.
2020-08-06 23:20:52 +10:00
Connor McLaughlin
359234080a D3D11: Set GS to null when restoring state
Fixes the D3D11 renderer being broken on RetroArch due to it leaving a
geometry shader bound.
2020-08-06 23:19:19 +10:00
Connor McLaughlin
6e586311e8 Common: Add title, modal information to ProgressCallback 2020-08-06 19:32:53 +10:00
Connor McLaughlin
466e4099d4 CDROM: Fix handling of logical seeks to audio sectors
Fixes Wizard's Harmony.
2020-08-05 03:14:04 +10:00
Connor McLaughlin
dd9705ef31 GPU/HW: Fix last row of oversized writes not applying
Combined with the wrap changes, fixes Namco Museum motherboard scene.
2020-08-04 14:40:00 +10:00
Connor McLaughlin
0b0bc32afb GPU/HW: Use texture samplers rather than fetching for batches
Enables wrap-around.
2020-08-04 14:40:00 +10:00
Connor McLaughlin
0fc301d654 GPU/HW: Use wrap texture address modes 2020-08-04 14:40:00 +10:00
Connor McLaughlin
231c0b5ff6 GPU/SW: Wrap texture coordinates when sampling 2020-08-04 14:40:00 +10:00
Connor McLaughlin
818892cb1b GPU: Claer interlaced field buffer when enabling
Fixes old frames getting briefly displayed.
2020-08-03 03:26:13 +10:00
Connor McLaughlin
23df239469 GPU/HW: Debug build compile fix 2020-08-03 03:26:00 +10:00
Connor McLaughlin
f712c42c21 GPU/HW: Add more details to debug window 2020-08-03 03:06:23 +10:00
Connor McLaughlin
9b7512f7b8 GPU/HW: Implement automatic resolution scale from window size 2020-08-03 03:06:03 +10:00
Connor McLaughlin
be6ae8b70b GPU/Vulkan: Work around Mali crash with readbacks 2020-08-03 02:03:33 +10:00
Connor McLaughlin
b527118c0a GPU/HW: Fix macOS compile 2020-08-02 18:04:00 +10:00
Connor McLaughlin
92975b2e81 GPU/HW: Tiny performance optimization in polygon loading 2020-08-02 17:32:43 +10:00
Connor McLaughlin
96ba9198ef GPU/HW: Expand lines into triangles before rendering
Fewer batches, consistent upscaling behavior.
2020-08-02 17:17:11 +10:00
Connor McLaughlin
568cfa1865 GPU/OpenGL: Fix possible error on shutdown 2020-08-02 17:16:51 +10:00
Connor McLaughlin
4d9c2c1b6c GPU: Ensure pending time is used in events
Fixes long delay in Syphon Filter.
2020-08-02 14:09:22 +10:00
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