Commit graph

1806 commits

Author SHA1 Message Date
Connor McLaughlin 045e6dff61 Common: Add Win32ProgressCallback 2020-08-06 19:33:08 +10:00
Connor McLaughlin 7cafb8c515 Common: Add MinizipHelpers (RAM and UTF-8 compatible fopen) 2020-08-06 19:33:02 +10:00
Connor McLaughlin 6e586311e8 Common: Add title, modal information to ProgressCallback 2020-08-06 19:32:53 +10:00
Connor McLaughlin 8c1a72f640 Qt: Unmark window info error for translation 2020-08-06 19:30:47 +10:00
Connor McLaughlin 05f0ce6da8 libretro: Fix build 2020-08-06 01:50:02 +10:00
Connor McLaughlin 2cc1fe9c02 libretro: Expose CD-ROM preload option 2020-08-06 01:20:12 +10:00
RibShark 1ebbb1e42a
Only force 2 second pregap for track 1
Fixes #579
2020-08-05 15:19:28 +01:00
Connor McLaughlin b6d25c46e4 Qt: Add de language to update_translations.bat 2020-08-05 20:42:48 +10:00
Connor McLaughlin a7dbb9ab28 CDImage: Work around cue parser requiring new line at end 2020-08-05 03:14:06 +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 fbdc9ae631 CommonHostInterface: Remove additional API reset/restore on screenshot 2020-08-04 21:08:56 +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 69cbc0b5a2 GL/Texture: Add wrap texture mode option 2020-08-04 14:40:00 +10:00
Connor McLaughlin 3df1670809 libretro: Try for a GLES context first depending on preferred renderer 2020-08-04 14:40:00 +10:00
Connor McLaughlin e198e31598 Qt: Add German/Deutsch translation 2020-08-03 13:32:55 +10:00
Connor McLaughlin 8b4624a98e Update Portuguese (Br) translation 2020-08-03 13:23:34 +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 75156b76af CMake: Fix Linux build 2020-08-02 13:21:16 +10:00
Connor McLaughlin ba9ada1100 Qt: Add Portuguese (Pt) translation 2020-08-02 13:14:52 +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 5f9481dd3d Qt: Fix game list settings headings not being translatable 2020-08-02 03:06:23 +10:00
Connor McLaughlin 9a9d66882c Qt: Fix game list headings not being translatable 2020-08-02 03:06:23 +10:00
jdgleaver 363804c48b (libretro/Vulkan) Fix glslang shader-related crashes 2020-08-01 15:29:59 +01:00
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +10:00
Connor McLaughlin 013497cf20 Qt/GPUSettings: Fix typo in force NTSC timing description 2020-08-01 22:35:28 +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 3532ab8d72 Qt: Update interlaced rendering option help 2020-08-01 14:04:52 +10:00
Connor McLaughlin 7067b8f6e3 CDImage/CHD: Handle UTF-8 strings when opening 2020-08-01 14:01:23 +10:00
Connor McLaughlin ede8de92f6 FileSystem: Use wide strings for FindFiles and StatFile on Windows 2020-08-01 14:00:58 +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 8b0c3f0dc8 FileSystem: Use wide strings for fopen on Windows 2020-07-31 16:04:06 +10:00
Connor McLaughlin 3edb8e113e StringUtil: Add wide string<->utf8 conversion for Windows 2020-07-31 16:04:00 +10:00
Connor McLaughlin f443691ad0 Qt: Fix deprecreated errors with 5.15 2020-07-31 03:40:51 +10:00
Connor McLaughlin fb85e2b441 Qt: Update Portuguese (Br) translation 2020-07-31 03:32:48 +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 167169a03b Qt: Update Portuguese translation 2020-07-30 00:49:32 +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 0317541477 libretro: Remove VRAM resolution from scale text 2020-07-29 20:01:22 +10:00
Connor McLaughlin 415c21dc84 libretro: Possible fix for crash when reloading content 2020-07-29 03:00:00 +10:00
Connor McLaughlin 77481f5b23 Qt: Add context menu and open directory to game directory list 2020-07-29 02:51:52 +10:00
Connor McLaughlin 8956fc27ce Qt: Make about dialog more translation-friendly 2020-07-29 02:38:04 +10:00
Connor McLaughlin c7b457de9e CubebAudioStream: Continue even without minimum latency
Fixes audio not functioning on Android.
2020-07-29 02:38:04 +10:00
Connor McLaughlin 982c428074 Qt: Improve auto-sizing for settings dialog 2020-07-29 02:38:04 +10:00
Connor McLaughlin bc6f6d1a6d Qt: Display Portuguese language as Portuguese (Br) 2020-07-29 02:38:04 +10:00
Connor McLaughlin f82e64a60c Qt/Settings: Add recommended resolution to scale
Apparently the framebuffer/VRAM dimensions were too confusing.
2020-07-28 20:33:09 +10:00
Connor McLaughlin b894b882ed Qt/Settings: Add help for GPU adapter 2020-07-28 20:33:09 +10:00
Connor McLaughlin 20ff075c3f Qt: Mark individual setting help as translatable 2020-07-28 20:33:09 +10:00
Connor McLaughlin e187597dec Qt: Make settings main help text translatable 2020-07-28 20:33:09 +10:00
Connor McLaughlin 27f62723c7 Qt: Make gmae list headings translatable 2020-07-28 20:33:09 +10:00
Connor McLaughlin 79c8b9f52c Qt: Add Portuguese translation 2020-07-28 20:33:09 +10:00
Connor McLaughlin 3edb255eca Qt: Add translation support and language setting 2020-07-28 19:14:44 +10:00
Connor McLaughlin 8665a24eee CommonHostInterface: Fix crash when there's no controller interface 2020-07-26 23:59:47 +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 08b26edceb CDImage: Fix incorrect track length
Shouldn't affect much, other than the game properties window.
2020-07-25 02:36:41 +10:00
Connor McLaughlin 10f23667c9 CDImage: Fix incorrect pregap file offset calculation
Should fix repeating audio at the start of some tracks.
2020-07-24 13:47:21 +10:00
Connor McLaughlin 5a955a4fdc Qt: Fix audio volume/mute being lost when restarting emulation 2020-07-24 02:55:00 +10:00
Connor McLaughlin 4a3e5ed644 VulkanHostDisplay: Fix custom crosshair rendering on NVIDIA 2020-07-24 02:40:46 +10:00
Connor McLaughlin 99b0ba3f20 libretro: Use correct path for shared mode memcards 2020-07-24 02:40:46 +10:00
Connor McLaughlin 90aaee86c7 libretro: Use duckstation_shared_card_N.mcd in shared mode
shared_card_n.mcd is too ambiguious when it's sharing a directory with
other cores.
2020-07-24 02:40:46 +10:00
Connor McLaughlin e30c0a6881 Qt: Don't allow booting when changing disc from game list 2020-07-24 02:40:46 +10:00
Albert Liu bf597aab44 Settings: Specify GPU resolution scale as VRAM size 2020-07-23 01:03:18 -07:00
Albert Liu e782b678b6 Qt/GPUSettings: Update aspect ratio help text 2020-07-22 12:08:01 -07:00
Connor McLaughlin a6acd33ce6 libretro: Include m3u in valid_extensions 2020-07-23 03:00:49 +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 961afdf765 Qt: Ignore resume states when "Save state on exit" is unchecked 2020-07-23 02:44:06 +10:00
Connor McLaughlin f3df4f91a2 libretro: Implement disk control interface 2020-07-23 02:36:23 +10:00
Connor McLaughlin 8e1c0a4fe4 System: Support loading m3u playlists 2020-07-23 02:36:05 +10:00
Connor McLaughlin 266d70c629 Common/FileSystem: Add IsAbsolutePath() and tests 2020-07-23 02:35:37 +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 6c162eb3c5 Qt: Support binding multiple buttons/axis to controllers 2020-07-23 02:35:15 +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
Connor McLaughlin 622e50fa73
Merge pull request #637 from jdgleaver/psp-660-bios
Finish adding support for PSX BIOS included in PSP firmware 6.60
2020-07-22 13:01:11 +10:00
Albert Liu 855fc9a31c CommonHostInterface: Prevent some potential null pointer dereferences 2020-07-21 17:14:11 -07: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 3187d07d03 CDImage: Add memory CD image class 2020-07-22 00:03:07 +10:00
Connor McLaughlin 8b91bf5e57 Core: Add loading screen based progress callbacks 2020-07-22 00:03:01 +10:00
Connor McLaughlin cf366d3fba CDImage: Fix crash reading subq from lead-in 2020-07-22 00:02:51 +10:00
Connor McLaughlin 03c3b10054 CDSubChannelReplacement: Use subq union directly 2020-07-22 00:02:44 +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 b2595a3b3b Qt: Fix volume slider slowing down emulation 2020-07-21 20:10:17 +10:00
Connor McLaughlin 2fb00faa67 Qt: Delay settings save by one second 2020-07-21 20:10:11 +10:00
Connor McLaughlin 68d98af497 Qt: Remove usage of QString where possible for settings 2020-07-21 20:10:06 +10:00
Connor McLaughlin eb7da791ea CommonHostInterface: Fix command line help not printing on Windows 2020-07-21 20:09:54 +10:00
Connor McLaughlin bddd098a66
Merge branch 'master' into qt-inisettings 2020-07-21 13:28:18 +10:00
Connor McLaughlin f67862de5f
Merge pull request #622 from ggrtk/qt-gamelistsettings
Qt/GameListSettings: Use native path separators
2020-07-19 12:58:00 +10:00
Elizabeth 39917117d2
Disable Interlacing description "Unchecked"
As noted by Kurayami6, Disable Interlacing should show "Unchecked" as the default option for this enhancement.
2020-07-18 13:21:13 -04:00
Albert Liu 2853bf851a Qt/GameListSettings: Use native path separators
Fixes possible duplicate game list entries on Windows.
2020-07-17 18:43:30 -07:00
Connor McLaughlin 1069e12bff Qt: Add binding how-to text to hotkey page 2020-07-18 01:33:51 +10:00
Connor McLaughlin 389f452e10 Qt/GameListSettings: Use push button for all buttons 2020-07-18 01:33:36 +10:00
Connor McLaughlin 5c5ee17fa7 Qt: Fix widescreen hack option positioning 2020-07-18 01:28:35 +10:00
Connor McLaughlin 2702eb90bf libretro: Add widescreen hack option 2020-07-18 00:28:37 +10:00
Connor McLaughlin 1e6740762d Qt: Add widescreen hack option 2020-07-18 00:28:37 +10:00
Connor McLaughlin 8c3051ae14 SDL: Add widescreen hack option 2020-07-18 00:28:37 +10:00
Connor McLaughlin 5c1c467e38 GTE: Add widescreen hack 2020-07-18 00:28:37 +10:00
Connor McLaughlin 5f76140aa5 libretro: Expose main RAM to frontend 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 a92fd98d7f Qt/GameListSettings: Fix QToolButtons staying highlighted after use 2020-07-17 03:50:02 -07:00
Albert Liu 79adabeb91 CommonHostInterface: Bump to settings version 3
This is required for phasing out QSettings usage because game paths were
being saved using the QSettings multi-value format, which is
incompatible with SimpleIni.
2020-07-16 20:35:49 -07:00
Albert Liu 97be6c922c Fix MSVC build 2020-07-16 20:35:49 -07:00
Albert Liu 4e2b3189b0 Qt: Replace QtSettingsInterface with INISettingsInterface 2020-07-16 20:35:49 -07: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
Albert Liu 9d6325f828 QtHostInterface: Fix compiler warning 2020-07-16 20:32:42 -07:00
Connor McLaughlin 71cef1de3f GL/ContextGLX: Add additional logging 2020-07-15 15:50:30 +10: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 48be73be5a SDL: Fix crash when changing debug settings while running 2020-07-14 01:26:43 +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 1ed57a9fdf Qt: Hook up mouse events to ImGui 2020-07-13 02:39:59 +10:00
Connor McLaughlin dbce58e07d CDROM: Display paused position in debug window 2020-07-13 02:23:56 +10:00
Connor McLaughlin 35093818c6 libretro: Add resolutions up to 16x 2020-07-12 23:31:21 +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 8febf5df04 D3D11HostDisplay: Fix reversed feature level order 2020-07-12 00:44:13 +10:00
Connor McLaughlin 113b0f57d6 libretro: Fix Vulkan context creation on Mali
We don't use the loader functions here anyway, so no need to try to
retrieve them.
2020-07-12 00:41:53 +10:00
Connor McLaughlin 3ad780b52e libretro: Fix logging breaking when retro_set_environment called twice 2020-07-12 00:41:09 +10:00
Connor McLaughlin 282f166e7a Vulkan/StagingBuffer: Don't try to invalidate unmapped buffer
Fixes crash on Mali.
2020-07-12 00:40:05 +10:00
Connor McLaughlin fb6538da35 Vulkan/Context: Allocate SSBO descriptors in global set
Fixes vram write buffer creation failing on Mali.
2020-07-12 00:38:27 +10: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