Commit graph

2916 commits

Author SHA1 Message Date
Connor McLaughlin e11c7190b5 Linux build fix 2020-01-30 20:20:21 +10:00
Connor McLaughlin 070e6c32d6 Frontends: Add .chd files to open filter 2020-01-30 20:06:15 +10:00
Connor McLaughlin c1c82eb3f3 Common/CDImage: Support CHD format 2020-01-30 20:06:15 +10:00
Connor McLaughlin 18d5086e4c Common/CDImage: Changes to support CHD interfaces 2020-01-30 20:06:15 +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 288b680e07 FileSystem: Add ReplaceExtension() helper 2020-01-30 16:22:05 +10:00
Connor McLaughlin 6624df1e8c Qt: Add CPU settings/emulation speed to console settings 2020-01-29 00:01:44 +10:00
Connor McLaughlin 5272ecd572 Qt: Support binding settings to QSliders 2020-01-29 00:01:35 +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 82da9a4505 D3D11: Add a shader bytecode cache class 2020-01-24 14:52:00 +10:00
Connor McLaughlin 2276975d62 Qt: Implement GitHub Repository/Issue Tracker links 2020-01-24 14:51:59 +10:00
Connor McLaughlin 1ed187fd57 Qt: Add hotkey for increasing/decreasing resolution scale 2020-01-24 14:51:57 +10:00
Connor McLaughlin 40799d0f77 HostInterface: Move ModifyResolutionScale() to base class 2020-01-24 14:51:56 +10:00
Connor McLaughlin 8148486a9f Qt: Add hotkey to toggle software rendering 2020-01-24 14:51:55 +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 736d85b0f3 Qt: Implement display linear filtering 2020-01-24 14:51:34 +10:00
Connor McLaughlin abf48b6cc2 Qt: Update GPU settings when enhancements are changed 2020-01-24 14:51:33 +10:00
Connor McLaughlin f05f5aeb2b Qt: Implement browse button for BIOS path 2020-01-24 14:51:31 +10:00
Connor McLaughlin 2694181811 Qt: Hook up HostInterface::Report{Error,Message} 2020-01-24 14:51:30 +10:00
Connor McLaughlin 19cd91a684 Qt: Fix crash on exit when boot fails 2020-01-24 14:51:28 +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 b937275073 Qt: Link with and copy Qt5Network library 2020-01-24 14:51:24 +10:00
Connor McLaughlin 65ae85eb7b Qt: Skeleton for audio settings 2020-01-24 14:51:13 +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 feb48899c3 Qt: Don't double-create game list 2020-01-24 14:51:07 +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 7afb79aee6 Common: Add FileSystem::{Get,Set}WorkingDirectory functions 2020-01-24 14:50:58 +10:00
Connor McLaughlin de4e45a433 Common: Add a function to get the path to the running program 2020-01-24 14:50:57 +10:00
Connor McLaughlin 9456dc5d9b Qt: Power off system correctly when exiting 2020-01-24 14:50:56 +10:00
Connor McLaughlin 069bdd471c Qt: Stub saving resume state when powering off 2020-01-24 14:50:54 +10:00
Connor McLaughlin 0200b9ffc1 Qt: Hook up 'Add Game List Directory' function 2020-01-24 14:50:53 +10:00
Connor McLaughlin 98eb71aa3f Qt: Fix extra margins in pad settings panel 2020-01-24 14:50:52 +10:00
Connor McLaughlin 1cdd4e01fb Qt: Reorder settings categories 2020-01-24 14:50:51 +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 f2d5ce74df Qt: Fix bug where render window is not focused leaving fullscreen 2020-01-24 14:50:47 +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 183928b0f6 Qt: Skeleton of load/save state menus 2020-01-24 14:50:42 +10:00
Connor McLaughlin 1998aa96a4 Qt: Simplify Change Disc menu logic 2020-01-24 14:50:40 +10:00
Connor McLaughlin 69841d0a09 Qt: Move quick CPU/GPU switch to Debug menu 2020-01-24 14:49:54 +10:00
Connor McLaughlin 6737b3ec44 Qt: Drop Settings accessor from HostInterface
This should only be accessed on the emulation thread.
2020-01-24 14:49:53 +10:00
Connor McLaughlin d343743768 Qt: Safer GPU renderer switching 2020-01-24 14:49:51 +10:00
Connor McLaughlin c5282b99e1 Qt: Thread-safe QSettings access and updating 2020-01-24 14:49:49 +10:00
Connor McLaughlin 9562cbea56 Frontends: Add frame time performance counters 2020-01-24 14:49:47 +10:00
Connor McLaughlin 67710ca184 Qt: Add a signal when the game list selection is changed 2020-01-24 14:49:46 +10:00
Connor McLaughlin 99af858562 Qt/GameList: Fix incorrect game booting when sorted 2020-01-24 14:49:44 +10:00
Connor McLaughlin bfef42f4cb GPU: Fix possible driver crash on oversized update/fill 2020-01-23 00:01:05 +10:00
Connor McLaughlin d2db6bf9c3 Common/Rectangle: Add clamp methods 2020-01-22 23:57:12 +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 ed1ac6df4a Frontend: Fix error in swap chain ResizeBuffers() 2020-01-20 17:26:57 +10:00
Connor McLaughlin b9538a55f5 Settings: Add option for creating a debug GPU device 2020-01-19 14:54:19 +10:00
Connor McLaughlin 8378e5ed0d Frontend: Don't use debug D3D11 device 2020-01-19 12:24:26 +10:00
Connor McLaughlin 46033898ba Frontends: Use DXGI_PRESENT_FLAG_ALLOW_TEARING for presentatation 2020-01-18 18:12:09 +10:00
Connor McLaughlin 159786c3f1 Common/Assert: Fix incorrect windows platform detection 2020-01-17 21:36:31 +10:00
Connor McLaughlin 25004f882e SDL: Fix multiple entries for settings being created in ini 2020-01-16 14:36:31 +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 0861a1e579 Common: Remove unused type declarations 2020-01-13 12:01:39 +10:00
Connor McLaughlin 4de82bda6d Linux build for cubeb 2020-01-12 15:17:15 +10:00
Connor McLaughlin 28efc50a04 Qt: Fix worker thread lockup on shutdown 2020-01-11 14:21:08 +10:00
Connor McLaughlin 1911ab2e1c CubebAudioStream: Initialize COM on Windows if it isn't already initialized 2020-01-11 14:20:51 +10:00
Connor McLaughlin d52d6252a9 Qt: Remove QAudioOutput-based audio stream 2020-01-11 14:04:58 +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 9586970a9f AudioStream: Add cubeb implementation 2020-01-11 13:51:41 +10:00
Connor McLaughlin c6119c210a Revert "DMA: Delay GPU transfers by block count"
This reverts commit 0639f4264f.

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 e68e67f161 SDL: Fix log spam in Release builds 2020-01-11 13:29:22 +10:00
Connor McLaughlin 71c1e243fe Remove YBaseLib dependency 2020-01-10 13:40:53 +10:00
Connor McLaughlin 1c2c4c8489 Qt: Fix emulation thread using 100% CPU when idle 2020-01-10 13:28:13 +10:00
Connor McLaughlin c52040434a Core: Linux warning fixes 2020-01-09 08:46:52 +10:00
Connor McLaughlin 06d26084fb Frontend: Linux compile fix 2020-01-08 15:06:31 +10:00
Connor McLaughlin 2611e64459 Qt: Implement game list sorting 2020-01-08 15:01:04 +10:00
Connor McLaughlin 64426a0be2 Qt: Fix shutdown-and-restart failing in D3D11 renderer 2020-01-08 14:00:28 +10:00
Connor McLaughlin 25f55690f2 Qt: Add icons for game list entry type (disc/exe) 2020-01-08 13:50:44 +10:00
Connor McLaughlin ecc8109d43 Qt: Show flags for region instead of text 2020-01-08 13:39:19 +10:00
Connor McLaughlin 9402c7c145 Qt: Fix double-free/crash on shutdown 2020-01-08 13:39:04 +10:00
Connor McLaughlin 048c6835e5 Qt: Don't highlight headings in game list 2020-01-08 13:38:31 +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 e7bebb0105 Qt: Support runtime renderer switching 2020-01-07 18:55:36 +10:00
Connor McLaughlin c6d6b0405f Qt: Don't create imgui.ini 2020-01-07 18:55:26 +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 168eb5fe2d Qt: Add D3D11 display window implementation 2020-01-07 15:54:44 +10:00
Connor McLaughlin 5076d7dfe8 Qt: Fix handling of display window size in hidpi 2020-01-07 14:27:48 +10:00
Connor McLaughlin 1b7be01507 Qt: Implement audio output 2020-01-07 14:18:51 +10:00
Connor McLaughlin 207c75e6eb Qt: Implement fullscreen 2020-01-06 16:27:39 +10:00
Connor McLaughlin 87889a13e0 Qt: Properly handle modifier keys for input 2020-01-06 15:14:47 +10:00
Connor McLaughlin 6d5eca13a6 Qt: Ignore key repeat events for input 2020-01-06 14:08:15 +10:00
Connor McLaughlin d61f12cb4e Qt: Set focus to display window when starting 2020-01-06 14:08:00 +10:00
Connor McLaughlin 40e1b7af23 Qt: Initial hotkey implementation 2020-01-05 12:46:03 +10:00
Connor McLaughlin 0590f0935c HostInterface: Fix compile error on Linux 2020-01-04 15:25:15 +10:00
Connor McLaughlin d88fc20434 Qt: GPU settings tab 2020-01-03 17:51:58 +10:00
Connor McLaughlin fbf5e7f0e3 Qt: Enable DPI scaling 2020-01-03 17:51:45 +10:00
Connor McLaughlin bea15c97cd Qt: ImGui support 2020-01-02 19:14:16 +10:00
Connor McLaughlin 9de0bf0aaf HostInterface: Most some imgui logic from SDL to core 2020-01-02 19:14:06 +10:00
Connor McLaughlin 9436ffc806 Qt: Move some functionalty from OpenGLDisplayWindow into QtDisplayWindow 2020-01-02 17:45:25 +10:00
Connor McLaughlin ac6a7bad3f Qt: Hack for setting swap interval at runtime (currently Windows only) 2020-01-02 16:33:52 +10:00
Connor McLaughlin b135b32159 Qt: Add config and implementation for basic controller input 2020-01-02 16:13:03 +10:00
Connor McLaughlin eb7659368e Qt: Add natvis file for Qt data structures 2020-01-02 16:11:22 +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 3bdafa1932 Qt: Fix double-scanning of game list at start 2020-01-01 14:02:45 +10:00
Connor McLaughlin 77a47c87d2 Qt: Hook up console settings 2020-01-01 14:01:58 +10:00
Connor McLaughlin 62e1829ec9 Qt: Fix recursive setting toggle in game list settings 2019-12-31 16:40:24 +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 6176fc4486 NullAudioStream: Provide factory function 2019-12-30 00:45:50 +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 9f45c67b1d JitCodeBuffer: Fix compilation on AArch64 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 0eab6435fe Frontend: Use configured audio backend when creating stream 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 ed7aabe5f2 Common: Add a NullAudioStream implementation 2019-12-23 17:02:11 +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 ad93d83421 JitCodeBuffer: Don't leak code space on Windows 2019-12-21 22:09:08 +10:00
Connor McLaughlin decf416aee JitCodeBuffer: Expose FlushInstructionCache() to callers 2019-12-20 21:55:25 +10:00
Connor McLaughlin 1de096224c JitCodeBuffer: Fix far code pointer not being initialized without reset 2019-12-20 21:55:21 +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 0df741a799 Frontend: Disable controller input for navigating UI
It seems to interfere too much with normal gameplay.
2019-12-16 00:05:33 +10:00
Connor McLaughlin 6f7154fbef Frontend: Rumble support 2019-12-15 23:24:34 +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 e4595992a5 Frontend: Fix crash in controller input 2019-12-15 21:58:10 +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 bf44f72169 Frontend: Remove unused texture for icon 2019-12-11 00:06:44 +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 b53e32e84f GL/Program: Add IsBound() method 2019-12-07 01:36:14 +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 c1e9617c77 Frontend: Disable KHR_debug for speed 2019-12-06 21:57:24 +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 d41a76ac5e CDImage: Fix incorrect file offset being used for pregap 2019-12-06 00:33:21 +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 2c645d9e93 JitCodeBuffer: Use __builtin___clear_cache instead of __clear_cache
The former exists on Android.
2019-12-04 20:33:02 +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 98e67616ec JitCodeBuffer: Flush cache after committing code on ARM CPUs
ARM's instruction and data caches are not coherent, so we need to flush
before executing to ensure there's no stale data left over.
2019-12-03 20:21:32 +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 3b11d936df Common: Add a basic ISO reader class 2019-11-29 23:36:25 +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 457743e109 Common/CDImage: Fix double increment of sectors_read 2019-11-28 01:55:09 +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 897e75fa8e CPU/Recompiler: Fix code generation crash on Linux 2019-11-23 21:38:38 +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 9da4e642af CMake: Include SDL2 module in-tree 2019-11-23 19:07:54 +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 ff398a3f77 Revert "Frontend: Swap L1/R1 and L2/R2 bindings"
This reverts commit a25fe54a4b.
2019-11-22 18:28:41 +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 b5c799ba81.
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 1f4dbd1060 Frontend: Implement D3D<->GL renderer switching 2019-11-17 19:37:10 +10:00
Connor McLaughlin d1f7ad2512 HostInterface: Fix display classes not getting destructed 2019-11-17 19:36:56 +10:00
Connor McLaughlin 55550798e4 Frontend: Call timeBeginPeriod() to increase timer resolution
Hopefully will prevent FPS fluctuations due to sleep variation.
2019-11-17 01:47:52 +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 4524172573 Frontend: Use flip model swap chains in D3D 2019-11-16 01:45:31 +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 a25fe54a4b Frontend: Swap L1/R1 and L2/R2 bindings 2019-11-15 14:13:05 +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 878a76e258 Common: Fix issues in utility classes for readbacks 2019-11-14 16:57:58 +10:00
Connor McLaughlin 4bab3bffc0 Frontend: Fix display linear filtering setting not applying 2019-11-14 01:22:35 +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 525bbf48d7 CDImage: Set data bit in Q subchannel for bin images 2019-11-13 16:28:43 +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 6bb4f8e728 CDImage: Support generating Q Sub-Channel 2019-11-10 22:44:53 +10:00
Connor McLaughlin 2cc5084dd1 CDImage: Handle cue sheets where pregap is in file 2019-11-10 15:16: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 e8ebead23d Frontend: Use Roboto font 2019-11-08 00:22:25 +10:00
Connor McLaughlin 52caf312d9 Frontend: Make about window modal 2019-11-08 00:22:25 +10:00
Connor McLaughlin b5a8e562e8 Frontend: Add 'Darker' style 2019-11-08 00:22:25 +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 65197d4350 Common: Add Rectangle helper class 2019-11-05 19:19:20 +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 39850af147 Common: Add GS support to D3D11 shader compiler 2019-11-05 00:23:31 +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 f244da86a2 Common: Add helper classes for D3D11 2019-11-04 00:39:25 +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 d5150ec790 Common: Add unregistered uniform mutators to GL::Program 2019-11-03 15:18:28 +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 e3a9aa1c4f Common: Add uniform block binding to GL::Program 2019-11-03 13:14:50 +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 f59e08b564 Common: Add Unbind() to GL::StreamBuffer 2019-11-02 23:42:44 +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 d8a02d7a15 common: Add macro for generating static/friend enum class operators 2019-11-01 21:47:40 +10:00
Connor McLaughlin f5e1d443fa Frontend: Implement Resume functionality 2019-10-31 23:02:52 +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 6f7b9c8e28 Frontend: Fix last two slots missing from quick load 2019-10-29 02:08:46 +10:00
Connor McLaughlin 3ad6b005a8 Frontend: Add hotkey for toggling speed limiter 2019-10-29 01:59:53 +10:00
Connor McLaughlin 772ef27a55 GPU: Implement display disable command GP1(03h) 2019-10-28 17:43:34 +10:00
Connor McLaughlin 9bda6c5ef7 Frontend: Hook up change disc menu item 2019-10-28 17:34:59 +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 d1be9460b9 Frontend: Ignore key repeat events for controller/speed limit 2019-10-27 21:44:08 +10:00
Connor McLaughlin 2b419fcb08 Frontend: Add frame step hotkey (SPACE)/menu item 2019-10-27 21:35:13 +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 5f0980c684 dep: Update imgui 2019-10-27 20:52:02 +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 83b67b3c4c Frontend: Clear focus after loading/saving state 2019-10-27 13:44:48 +10:00
Connor McLaughlin 4181b8c6b5 CDROM: Fix XA sectors overwriting unfetched data sectors 2019-10-27 13:44:23 +10:00
Connor McLaughlin 273d807e31 Common: Add HeapArray class 2019-10-27 13:34:13 +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 f22de715c7 Frontend: Hook up right stick button to main menu bar 2019-10-27 01:05:43 +10:00
Connor McLaughlin f538123210 Frontend: Use imgui functions for handling SDL events 2019-10-27 00:08:01 +10:00
Connor McLaughlin 0d71ebccc8 Frontend: Add display linear filtering option 2019-10-27 00:02:01 +10:00
Connor McLaughlin f9e964e34d CDImage: Relational operators for Position 2019-10-27 00:01:32 +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 3b32053065 Build: Disable LTCG in Release builds 2019-10-26 21:12:23 +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 27674c2dc9 FIFOQueue: Support copying from another queue (pop -> push) 2019-10-26 17:41:29 +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 c7a7d682bc Common: Force inlining of BitField/SignExtend/ZeroExtend functions 2019-10-26 15:41:43 +10:00
Connor McLaughlin a9e0fe6db2 cpu: Remove superfluous logging for syscall 2019-10-26 15:39:10 +10:00
Connor McLaughlin 2500f9d3af Build: Disable LTCG on common project in Release 2019-10-26 15:36:48 +10:00
Connor McLaughlin 2b137190c8 Frontend: Fix occasional power-off crash 2019-10-26 13:33:13 +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 ca48b21ffc StateWrapper: Support switching modes 2019-10-25 23:30:44 +10:00
Connor McLaughlin e98d109da2 Frontend: Support game controllers 2019-10-23 21:39:48 +10:00
Connor McLaughlin 2d0dd03705 GPU: Implement weave deinterlacing 2019-10-23 15:36:37 +10:00
Connor McLaughlin 87f9f99938 Frontend: Extract keyboard handling to seperate function 2019-10-23 15:34:39 +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 9410685807 Common: Optionally create framebuffer with GL textures 2019-10-23 00:35:08 +10:00
Connor McLaughlin c97089b775 Frontend: Fix Help menu placement when running 2019-10-22 23:09:01 +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 e0173cbb4d Frontend: Popup menu for load state in powered-off state 2019-10-21 00:38:20 +10:00
Connor McLaughlin 6c73dc6efb Frontend: Support loading state while powered off 2019-10-21 00:38:04 +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 b9e0c329d0 Remove unused common classes 2019-10-20 22:28:19 +10:00
Connor McLaughlin 9058a79184 Remove libsamplerate dependency 2019-10-20 22:26:49 +10:00
Connor McLaughlin cac09bcedc Frontend: Add about window 2019-10-20 21:19:54 +10:00
Connor McLaughlin d389fcaa13 Frontend: Force powered-off screen through seperate render path 2019-10-20 21:19:54 +10:00
Connor McLaughlin 0b58f1facf Frontend: Hook up "Start Disc" 2019-10-20 21:19:54 +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 1cc3e4d5f2 CDImage: Only add implicit two seconds pregap for track 1 2019-10-20 15:32:02 +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 9b6a59329e Common: Support dual-source blend in GL::Program 2019-10-19 17:35:36 +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 2b6ebf9955 Common: Add helper functions for decoding CD-XA ADPCM 2019-10-15 17:24:11 +10:00
Connor McLaughlin b2632db0a7 build: Use C++17 for MSBuild in common library 2019-10-15 17:23:38 +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 058fc28248 Frontend: Sync to audio 2019-10-11 16:17:17 +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 135e282f8d common: Add sync-to-audio support 2019-10-11 13:24:41 +10:00
Connor McLaughlin f852b8dd90 Further work on SPU implementation 2019-10-11 02:20:21 +10:00
Connor McLaughlin bc51cc6d7d common: Add AudioStream class 2019-10-11 02:20:10 +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
Connor McLaughlin bc8e035e37 GPU: Implement texture window 2019-10-05 23:27:48 +10:00
Connor McLaughlin f59d35023c GPU: Stub out more commands 2019-10-05 22:22:49 +10:00
Connor McLaughlin 751f348fd2 MDEC: Improve decoding 2019-10-05 22:21:31 +10:00
Connor McLaughlin ec85ae7a40 Bus: Properly handle byte/word reads of DMA registers
Fixes FF7 locking up on game start.
2019-10-05 16:29:16 +10:00
Connor McLaughlin 73ab741d4c Frontend: Fix invalid FPS values when loading state 2019-10-05 16:29:00 +10:00
Connor McLaughlin 20a011a074 CDROM: Improve timings 2019-10-05 16:07:15 +10:00
Connor McLaughlin ebe44ccc0b GPU: Fix broken VRAM->CPU transfers at >1x resolution scale 2019-10-05 15:15:00 +10:00
Connor McLaughlin 7f8c7aa71c GPU: Invalidate VRAM read texture when recreating framebuffer 2019-10-05 15:05:46 +10:00
Connor McLaughlin e1578ad063 GPU: Fix initial resolution scale not applying 2019-10-05 15:05:30 +10:00
Connor McLaughlin 1998a74ff4 GPU: Fix warnings in RGB24 shader 2019-10-05 14:52:52 +10:00
Connor McLaughlin e80775ed82 Frontend: Fix invalid FPS showing when reset 2019-10-05 14:50:23 +10:00
Connor McLaughlin ae260b924c GPU: Use GL_DRAW_FRAMEBUFFER binding instead of GL_FRAMEBUFFER 2019-10-05 14:48:41 +10:00
Connor McLaughlin 88d59a774f Frontend: Fix broken fast-forward 2019-10-05 14:43:24 +10:00
Connor McLaughlin 431313156a GPU: Fix invalid rectangle passed to glScissor 2019-10-05 14:36:48 +10:00
Connor McLaughlin c2baa7e834 GPU: 24-bit display depth support 2019-10-05 12:31:48 +10:00
Connor McLaughlin 64aa3f56c3 GPU: Fix transparency mode update not being applied 2019-10-05 00:01:45 +10:00
Connor McLaughlin 6541c82071 GPU: Use 12-bit int (sign plus 11 bits) for vertex position
Fixes whacky polygons in Crash 2 and logo in Crash 1.
2019-10-04 23:48:31 +10:00
Connor McLaughlin a9313b2958 GPU: Fix transparency not being enabled in shader 2019-10-04 23:31:26 +10:00
Connor McLaughlin 27bc65fc2a GPU: Use BitField sign extending for position 2019-10-04 23:21:20 +10:00
Connor McLaughlin e7d68ba304 common/BitField: Support sign extension 2019-10-04 23:20:42 +10:00
Connor McLaughlin 004c22f031 Frontend: Prevent drawing imgui into the vram texture 2019-10-04 22:27:18 +10:00
Connor McLaughlin 4fa79f1503 GL: Eliminiate most redundant state setting calls at draw time 2019-10-04 22:10:43 +10:00
Connor McLaughlin 8987fa93c2 GPU: Set line width at higher internal resolutions 2019-10-04 21:08:53 +10:00
Connor McLaughlin d3ecad391d Frontend: Move fullscreen to settings menu 2019-10-04 20:49:43 +10:00
Connor McLaughlin 162a0df922 Frontend: Display emulation speed 2019-10-04 20:48:29 +10:00
Connor McLaughlin 4d22bec8fd GPU: Add some missing state reset 2019-10-04 20:34:29 +10:00
Connor McLaughlin 4422fb0545 CPU: Memory access timings 2019-10-04 20:30:54 +10:00
Connor McLaughlin fd1c4f1457 Bus: Calculation of memory timings for external devices 2019-10-04 19:41:18 +10:00
Connor McLaughlin 0b46a8cfc4 CDROM: Implement GetlocP/GetlocL commands 2019-10-04 19:05:19 +10:00
Connor McLaughlin bbe1fc062f GTE: Implement OP 2019-10-04 17:50:05 +10:00
Connor McLaughlin 7c600ed6fa GTE: Implement CDP 2019-10-04 17:38:31 +10:00
Connor McLaughlin b133f96c24 GTE: Implement CC 2019-10-04 17:35:01 +10:00
Connor McLaughlin 13389caa60 GTE: Implement NCS/NCT 2019-10-04 17:26:56 +10:00
Connor McLaughlin 6a7ed5d8bc GTE: Fix NCDS 2019-10-04 16:14:49 +10:00
Connor McLaughlin 4a4af8d0ca GTE: Fix DCPS/DCPT 2019-10-04 16:06:47 +10:00
Connor McLaughlin 98dc15cd17 GTE: Fix DCPL 2019-10-04 15:58:52 +10:00
Connor McLaughlin 55aefa2f27 GTE: Implement INTPL 2019-10-04 15:35:48 +10:00
Connor McLaughlin 1aa846e0f8 CPU: Clean up exception disassembly dumping 2019-10-04 15:35:39 +10:00
Connor McLaughlin 8362b8e43b UI: Beginning of customizable settings, debug menu 2019-10-04 15:00:32 +10:00
Connor McLaughlin 15f75a89ac Frontend: Window icon and title 2019-10-04 14:24:52 +10:00
Connor McLaughlin bddbab9d60 Rename to DuckStation 2019-10-04 13:54:09 +10:00
Connor McLaughlin 92ec5a0a14 CPU: Handle reserved instructions/bus errors 2019-10-04 13:41:12 +10:00
Connor McLaughlin 01ad2fa5b6 HostInterface: Replace psxexe extension check with psexe 2019-10-04 13:38:54 +10:00
Connor McLaughlin 74d51c80fc CPU: Implement TAR COP0 register 2019-10-04 02:48:19 +10:00
Connor McLaughlin eddd2c1990 CPU: Correct bits for CAUSE.CE, EPC for fetch 2019-10-04 02:27:34 +10:00
Connor McLaughlin 48563c74cf GPU: Implement resolution scaling 2019-10-03 16:46:13 +10:00
Connor McLaughlin 1f6130f04a CPU: Restore faster IPS 2019-10-03 16:45:54 +10:00
Connor McLaughlin 40dceacc7c CDROM: Detection of XA audio sectors 2019-09-30 20:02:38 +10:00
Connor McLaughlin 8b4ec87055 CPU: Support printing instruction operands when tracing 2019-09-30 17:32:58 +10:00
Connor McLaughlin 65c9dfa4fd Bus: Handle unaligned writes to DMA 2019-09-30 17:21:57 +10:00
Connor McLaughlin 68883168cd MemoryCard: Fix reading in games 2019-09-30 14:22:57 +10:00
Connor McLaughlin 1667da66dd Pad: Fix loading save state issues with memory cards 2019-09-30 14:22:30 +10:00
Connor McLaughlin 9fc608aa34 MemoryCard: Save state support 2019-09-30 01:59:35 +10:00
Connor McLaughlin 623b9996c7 MemoryCard: Formatting 2019-09-30 01:53:47 +10:00
Connor McLaughlin f3663fa018 GTE: Implement GPF instruction 2019-09-30 01:13:56 +10:00
Connor McLaughlin 53ff458754 CDROM: Don't crash when booting the BIOS without media 2019-09-30 01:08:17 +10:00
Connor McLaughlin c4574027e0 CDROM: Save sector buffer to state 2019-09-30 01:07:57 +10:00
Connor McLaughlin 71022e9cca Implement memory cards 2019-09-30 01:07:38 +10:00
Connor McLaughlin 314fad27f1 SDL: Fix flickering outside of display area 2019-09-29 18:11:38 +10:00
Connor McLaughlin e8fc05fef5 MDEC: More implementation work 2019-09-29 18:11:18 +10:00
Connor McLaughlin a23a353dbb FIFOQueue: Add PopRange 2019-09-29 18:11:07 +10:00
Connor McLaughlin 9ee8c0194e StateWrapper: Add std::array overload 2019-09-29 18:05:22 +10:00
Connor McLaughlin a48b856a62 Skeleton for MDEC 2019-09-29 12:51:34 +10:00
Connor McLaughlin d47717fdd6 SDL: Add hotkeys (F1-F8) for loading/saving state 2019-09-28 16:21:24 +10:00
Connor McLaughlin e11d98e5e0 StateWrapper: Fix FIFO corruption on loading 2019-09-28 16:21:09 +10:00
Connor McLaughlin c32dc917ff GTE: NCCS/NCCT tests passing 2019-09-28 15:45:50 +10:00
Connor McLaughlin 1a30815109 GTE: GPL instruction passing tests 2019-09-28 15:25:07 +10:00
Connor McLaughlin 8841934009 GTE: Fix MVMVA flags due to missing 43-bit-sign-extend 2019-09-28 15:19:35 +10:00
Connor McLaughlin d3893bc9f2 CPU: Make it run a bit faster, but needs proper timings 2019-09-28 01:43:10 +10:00
Connor McLaughlin 9d7fb64cdf SDL: Default to vsync, tab to disable 2019-09-28 01:31:08 +10:00
Connor McLaughlin a216c8414c GTE: Implement GPL instruction 2019-09-28 01:28:09 +10:00
Connor McLaughlin 8aed0cc174 SDL: Display internal FPS/VPS seperately 2019-09-28 01:09:58 +10:00
Connor McLaughlin 1400534127 GPU/SDL: Correct aspect ratio when displaying 2019-09-28 00:53:11 +10:00
Connor McLaughlin 5184ad9d8b GPU: Fix line rendering with larger coordinates 2019-09-28 00:36:30 +10:00
Connor McLaughlin da0ad66080 GTE: Implement DPCL instruction 2019-09-27 23:44:33 +10:00
Connor McLaughlin a479d820d4 CPU: Delay interrupts if the instruction in the pipeline is a TE instruction 2019-09-27 23:43:52 +10:00
Connor McLaughlin e8cd174732 GTE: Implement DPCT 2019-09-27 22:57:07 +10:00
Connor McLaughlin fc74d08641 GTE: Add some missing flag clear/updates 2019-09-27 22:48:56 +10:00
Connor McLaughlin 390639e795 GPU: Implement line rendering 2019-09-27 22:45:57 +10:00
Connor McLaughlin f2a3629016 GPU: Support displaying only active region 2019-09-27 22:10:25 +10:00
Connor McLaughlin c0a3a4176d GPU: Enable batching of polygons with the different texture pages 2019-09-27 21:20:35 +10:00
Connor McLaughlin 69f6788f9f GPU: Show stats from previous frame if no rendering occured 2019-09-27 21:20:20 +10:00
Connor McLaughlin c02cbc57e8 GPU: Properly handle semitransparent pixels 2019-09-27 17:40:26 +10:00
Connor McLaughlin 40d2497087 GPU: Fix incorrect palette used on some polygons 2019-09-27 16:17:09 +10:00
Connor McLaughlin 7ec3343ee6 Timers: Minor fixes 2019-09-27 00:08:36 +10:00
Connor McLaughlin 792ec27b1a GPU: Improve batching by sampling a VRAM copy 2019-09-26 23:33:20 +10:00
Connor McLaughlin 332b5481e8 common: Log bad shaders to disk 2019-09-26 23:32:56 +10:00
Connor McLaughlin b75674b149 SDL: Fix FPS counter disappearing behind menu 2019-09-26 23:31:44 +10:00
Connor McLaughlin e9bb3d79b8 SDL: Add a shoddy FPS counter 2019-09-26 21:44:02 +10:00
Connor McLaughlin 2a63dbce64 GPU: Add stats interface 2019-09-26 14:03:32 +10:00
Connor McLaughlin 27cf3c99ac GTE: Fix incorrect source in MVMVA 2019-09-26 13:43:41 +10:00
Connor McLaughlin 4d1837acb1 GTE: Special case for RTPS 2019-09-26 02:43:28 +10:00
Connor McLaughlin d885abc528 GTE: More cleanups 2019-09-26 01:40:55 +10:00
Connor McLaughlin f704d8fc63 GTE: Cleanup 2019-09-26 01:39:35 +10:00
Connor McLaughlin ea3ba8b342 GPU: Various fixes (textures, blending) 2019-09-26 00:15:21 +10:00
Connor McLaughlin 767e8f08e0 CDROM: Move pregap handling to image class 2019-09-26 00:15:06 +10:00
Connor McLaughlin ba67f69c2a GTE: Implement NCCS/NCCT/NCDT/DPCS 2019-09-25 20:24:50 +10:00
Connor McLaughlin b9b286e93d GPU: Fix shader compile error on Intel 2019-09-25 20:24:19 +10:00
Connor McLaughlin c18597c3bf GTE: Implement unverified MVMVA 2019-09-25 15:58:33 +10:00
Connor McLaughlin 3df7b22c37 GTE: Fix NCDS 2019-09-25 15:40:08 +10:00
Connor McLaughlin 607cd4d3e4 CDROM: Stub out Setfilter 2019-09-25 00:44:41 +10:00
Connor McLaughlin 9359d0778e Clean up memory access handlers, reduce template specializations 2019-09-25 00:36:24 +10:00
Connor McLaughlin 4aca52cdf4 CPU: Silence some debug spam 2019-09-24 23:56:30 +10:00
Connor McLaughlin 6aa36c2ead SPU: Hook up DMA reads/writes to RAM 2019-09-24 23:55:57 +10:00
Connor McLaughlin 575a3b36f5 CDROM: Store the image path/current lba as part of the save state 2019-09-24 23:55:34 +10:00
Connor McLaughlin 1276241622 SPU: Create stub needed for DMA to work 2019-09-24 23:44:38 +10:00
Connor McLaughlin 7a413b4031 CDROM: Proper handling of request register 2019-09-24 21:39:38 +10:00
Connor McLaughlin 4bb8fb211d DMA: Delay transfer/interrupt 2019-09-24 21:39:13 +10:00
Connor McLaughlin 4cc83e2228 DMA: Implement interrupts 2019-09-24 19:43:10 +10:00
Connor McLaughlin db777fdabb CDROM: Various fixes 2019-09-24 01:33:18 +10:00
Connor McLaughlin 1f13c4ad2c Pad: Fix long transmit delay breaking other things 2019-09-24 01:31:17 +10:00
Connor McLaughlin d65c9b3592 CDROM: Read timing and demute command, seek on ReadN 2019-09-23 23:31:51 +10:00
Connor McLaughlin 20f14688ca System: Support loading expansion ROMs 2019-09-23 01:38:21 +10:00
Connor McLaughlin 5d1c12c9ad Pad: Fix timing issues w/ BIOS 2019-09-23 01:25:58 +10:00
Connor McLaughlin 734d1a7ee1 InterruptController: Masked interrupts are still set in the status register 2019-09-23 01:24:36 +10:00
Connor McLaughlin fbd7fcec48 GTE: Implement NCDS (but incorrectly) 2019-09-22 21:41:11 +10:00
Connor McLaughlin f2d62fcce0 CDROM: Hack timings to get further with booting 2019-09-22 21:40:44 +10:00
Connor McLaughlin c772047715 GTE: Add AVSZ3/AVSZ4 2019-09-22 20:38:11 +10:00
Connor McLaughlin 005b06ae0c GTE: More implementation work, Reg+NCLIP+STR tests passing 2019-09-22 17:33:11 +10:00
Connor McLaughlin 3fb08a72a4 CDROM: Hack around missing pregap in images 2019-09-22 02:32:45 +10:00
Connor McLaughlin 948ac50020 CPU: Refactoring, implement LWC/SWC 2019-09-22 02:06:47 +10:00
Connor McLaughlin 2875a22987 CDROM: Reads appear to be functioning 2019-09-22 01:12:16 +10:00
Connor McLaughlin c988af453c Refactor timing to allow sync/updates in the middle of a slice 2019-09-21 01:24:33 +10:00
Connor McLaughlin ad316162f3 Basic timer implementation 2019-09-20 23:40:19 +10:00
Connor McLaughlin ad652c47ed Basic CD image loading 2019-09-20 20:14:00 +10:00
Connor McLaughlin 53e755aa68 Pad: Save state support 2019-09-20 19:21:45 +10:00
Connor McLaughlin 8cd75a4937 PAD: Basic support for digital controllers 2019-09-20 16:47:41 +10:00
Connor McLaughlin d84bffead1 GPU: Implement transparency mode 2019-09-19 00:55:06 +10:00
Connor McLaughlin 23ef1cafbd GPU: Force 16-bit precision when filling VRAM, clear mask bit 2019-09-18 15:54:57 +10:00
Connor McLaughlin d8150c996b GPU: Support dumping copies out to file 2019-09-18 15:43:25 +10:00
Connor McLaughlin 4d624946d6 GPU: Texpage attribute can change texture mode too 2019-09-18 15:24:29 +10:00
Connor McLaughlin 4d4ab898c0 GPU: Flush rendering before VRAM->VRAM copies 2019-09-18 15:15:03 +10:00
Connor McLaughlin 2c07db6dd5 GPU: Flush rendering before VRAM reads 2019-09-18 15:14:31 +10:00
Connor McLaughlin 4d38213f23 GPU: Implement VRAM-to-VRAM copies 2019-09-18 00:58:30 +10:00
Connor McLaughlin 0a8bce8936 GPU: Hook up vblank interrupt 2019-09-18 00:22:41 +10:00
Connor McLaughlin a84b3d7a2b CPU: Fix interrupts in branch delay slots messing up PC 2019-09-18 00:22:17 +10:00
Connor McLaughlin 4025d6e4a6 GTE: Stub and register read/write function 2019-09-17 23:38:04 +10:00
Connor McLaughlin 6df8d42480 CDROM: Add missing fields to save state 2019-09-17 23:04:00 +10:00
Connor McLaughlin e3c6035152 CDROM: Implement get version and getstat commands 2019-09-17 22:18:58 +10:00
Connor McLaughlin b951f27381 CDROM: Stub implementation 2019-09-17 21:07:56 +10:00
Connor McLaughlin a0e7dff37c common: Add a FIFOQueue helper class 2019-09-17 19:22:23 +10:00
Connor McLaughlin 2128a2984b Add interrupt controller emulation 2019-09-17 16:26:00 +10:00
Connor McLaughlin c615e007c0 GPU: Serialization for CRTC state 2019-09-17 14:40:23 +10:00
Connor McLaughlin f47688b61f System: Basic timings for GPU scanout 2019-09-17 14:25:25 +10:00
Connor McLaughlin 9475c281bd Build: Set /MP on projects which are missing it 2019-09-17 14:25:17 +10:00
Connor McLaughlin 540f282213 CPU: Fix incorrect exception vector for break 2019-09-15 12:43:54 +10:00
Connor McLaughlin 5babc076f5 Bitfield: Fix incorrect shift in operator<<= 2019-09-15 12:42:43 +10:00
Connor McLaughlin d58dbe04c0 CPU: Fix load delay register reads for same register in delay slot 2019-09-15 12:16:51 +10:00
Connor McLaughlin 1bb794dd39 GPU: Use max vertex count based on buffer size 2019-09-15 01:18:58 +10:00
Connor McLaughlin a58b687352 GPU: Cap batch sizes at 1024 vertices, flush if exceeded 2019-09-15 01:13:23 +10:00
Connor McLaughlin 4ca3b4b570 CPU: Fix alignment exception on register indirect branch 2019-09-15 01:13:11 +10:00
Connor McLaughlin bea727bbe4 CPU: Fix BGEZAL with rs == ra 2019-09-15 01:02:35 +10:00
Connor McLaughlin 273f010d17 GPU: Use degenerate triangles to split strips and batch them 2019-09-15 00:17:43 +10:00
Connor McLaughlin 1c8e326624 GPU: Fix off-by-one in rectangle rendering 2019-09-14 23:50:34 +10:00
Connor McLaughlin 77b15d156d System: Periodically flush GPU
Needs real timings...
2019-09-14 23:50:24 +10:00
Connor McLaughlin 03bd135060 SDL: Make GL debug output less noisy in Release 2019-09-14 23:49:21 +10:00
Connor McLaughlin b5d51f47cd GPU: Use texel fetch for creating page textures 2019-09-14 23:48:32 +10:00
Connor McLaughlin 19d9322e67 GPU: Fix texture coordinates when rendering paletted textures 2019-09-14 23:05:10 +10:00
Connor McLaughlin e40393fec4 GPU: Use scissor test for drawing area 2019-09-14 21:54:58 +10:00
Connor McLaughlin 3d6b8e485e Interface: Support loading filenames on command line 2019-09-14 21:54:46 +10:00
Connor McLaughlin 363d62e5c1 GPU: Various HW renderer fixes 2019-09-14 21:34:55 +10:00
Connor McLaughlin d94d608ad7 GPU: Implment actual data copy of VRAM->CPU readbacks 2019-09-14 20:48:15 +10:00
Connor McLaughlin f6ef3f7ba6 GPU: Saving/loading of VRAM 2019-09-14 20:45:26 +10:00
Connor McLaughlin 2560efbebd Save state support 2019-09-14 20:28:47 +10:00
Connor McLaughlin 851ef67814 GPU: Implement fill VRAM command 2019-09-14 16:43:53 +10:00
Connor McLaughlin 46870c6a7a GPU: Implement basic rectangle rendering 2019-09-14 16:27:24 +10:00
Connor McLaughlin f47d44c151 CPU: Implement break instruction 2019-09-14 14:41:41 +10:00
Connor McLaughlin 32a36ef1bc CPU: Implement alignment (memory) exception 2019-09-14 14:29:23 +10:00
Connor McLaughlin 0726095f00 CPU: Implement fixed dcache/scratchpad 2019-09-14 14:18:42 +10:00
Connor McLaughlin ced3038e73 CPU: Implement sub instruction 2019-09-14 13:39:36 +10:00
Connor McLaughlin 1afa02d475 CPU: Fix overflowed register written back in add instruction 2019-09-14 13:33:29 +10:00
Connor McLaughlin 459db392e7 CPU: Add missing cop0 register reads 2019-09-14 13:31:44 +10:00
Connor McLaughlin 9f36384752 System: Support sideloading EXE files via BIOS patch 2019-09-14 13:22:34 +10:00
Connor McLaughlin ae43cc838b GPU: Partially implemented texture support 2019-09-14 02:07:31 +10:00
Connor McLaughlin cfe361c1a6 GPU: Basic/hacky CPU->VRAM transfers 2019-09-13 01:10:08 +10:00
Connor McLaughlin 52b619facc DMA: Implement block transfers 2019-09-13 01:09:44 +10:00
Connor McLaughlin aea7a18ac2 GPU: More work on OpenGL renderer 2019-09-13 01:09:07 +10:00
Connor McLaughlin 4706a906d5 GPU: Base work for hardware renderer 2019-09-12 12:53:04 +10:00
Connor McLaughlin c0853de6a6 GPU: Partial render polygon command processing 2019-09-11 16:04:31 +10:00
Connor McLaughlin 162f94337e DMA: Implement linked list mode 2019-09-11 15:02:22 +10:00
Connor McLaughlin 27913cd20a Partial implementation of DMA controller and GPU stubs 2019-09-11 14:01:19 +10:00
Connor McLaughlin 2149ab4d69 Initial commit 2019-09-11 14:00:42 +10:00