Commit graph

2242 commits

Author SHA1 Message Date
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