Commit Graph

1084 Commits (01bc0eb6507bb43dfbe8bd31e23829cb3ea0ac60)

Author SHA1 Message Date
Connor McLaughlin 45050709f2 Qt: Add support for clearing input bindings with right click 6 years ago
Connor McLaughlin 29a09a3685 Introduce ControllerInterface class, port SDL interface over
This breaks controller support in the SDL frontend until it's ported
over to the common interface.
6 years ago
Connor McLaughlin a4486cf6fa CDROM: Don't miss last three frames at end of sector 6 years ago
Connor McLaughlin 8ef1e71ce0 DMA: Channels other than OTC should run based on request in SyncMode 0 6 years ago
Connor McLaughlin f4d172df2f DMA: Fix underflow when block_count == 0 6 years ago
Connor McLaughlin 904ab982e6 GPU: Fix crash when fill rectangles are out-of-bounds 6 years ago
Connor McLaughlin d67bcd654c GPU: Prevent emulator locking up when switching between PAL/NTSC mode 6 years ago
Connor McLaughlin bad5b30a61 CDROM: Fix incorrect volume matrix update/application
Fixes #90.
6 years ago
Connor McLaughlin 3223f87eeb CDROM: Simplify register indexing for write 6 years ago
Connor McLaughlin 1ee68ad12a CommonHostInterface: Add Screenshot hotkey 6 years ago
Connor McLaughlin afe2f96474 Qt: Fix display not updating after resize when paused
Fixes #104.
6 years ago
Connor McLaughlin b86e0bc846 SPU: Implement reverb
Possibly still not complete.
6 years ago
Connor McLaughlin c9e5e3a43e CDROM: Add missing disc/console region check
Fixes #106.
6 years ago
Connor McLaughlin 282998d0bb Qt: Add screenshot button 6 years ago
Connor McLaughlin ffb760c79d SDL: Add screenshot to menu 6 years ago
Connor McLaughlin 6b68512ac1 HostInterface: Add SaveScreenshot() method 6 years ago
Connor McLaughlin 2bb992a702 HostDisplay: Add texture dumping/saving support 6 years ago
Connor McLaughlin b4153266a0 GL/Texture: Add a GetTextureSubImage fallback/helper 6 years ago
Connor McLaughlin 212fddd195 D3D11/StagingTexture: Add auto-resizing staging texture 6 years ago
Connor McLaughlin 97c435a154 CMake: Linux build fix 6 years ago
Connor McLaughlin fe2e6561d3 Qt: Add audio dumping options 6 years ago
Connor McLaughlin c4af353d54 SDL: Add audio dumping options 6 years ago
Connor McLaughlin 8e20d0d4ff SPU: Add audio dumping support 6 years ago
Connor McLaughlin 198a64eb5e HostInterface: Add a helper function for generating timestamp-based filenames 6 years ago
Connor McLaughlin c7a74cabaa Common: Add WAVWriter class 6 years ago
Connor McLaughlin 6a6aa72f3a SPU: Add a tick counter and delay between key on/off writes
Not yet tested on hardware. We believe that writing to a specific
voice's key on/off register within 2 samples/ticks of the first
write will result in the second write being ignored. This still
needs to be tested on hardware for confirmation.

Thanks to @PSI-Rockin for the idea.

Fixes sound effects in Monkey Hero.
6 years ago
Connor McLaughlin d42f155512 SPU: Use "ticks" instead of "sample" in variable names 6 years ago
Connor McLaughlin 90d6babfb0 SPU: Always run, not only when enabled 6 years ago
Connor McLaughlin c3cb6ef393 Qt: Fix debug menu not updating selected GPU renderer
Fixes #93.
6 years ago
Connor McLaughlin 90121aa169 GPU: Fix VRAM display in software renderer 6 years ago
Connor McLaughlin e076526898 CDROM: Rework sector buffering behavior
This has not been tested on hardware yet, but fixes a couple of games.
6 years ago
Connor McLaughlin 86eefbd5d7 System: Fix a possible assertion failure loading state 6 years ago
Connor McLaughlin 21ecf231d9 Qt: Show game list scanning progress visually 6 years ago
Connor McLaughlin 0e3bcfa7b5 Qt/HostInterface: Track main window pointer 6 years ago
Connor McLaughlin 9e08ae6188 GameList: Use ProgressCallback interface when scanning 6 years ago
Connor McLaughlin f71a03202b Qt: Add ProgressCallback implementation 6 years ago
Connor McLaughlin 8028b7b4a3 Common: Add ProgressCallback class 6 years ago
Connor McLaughlin 8f39a0f154 Qt: Properly implement "Start Fullscreen" 6 years ago
Connor McLaughlin 2480624cbe Qt: Replace QWindow for display with QWidget base
Not as elegant, but it solves the input focus issue.
6 years ago
Connor McLaughlin db1070a683 Settings: Fix start paused not applying 6 years ago
Connor McLaughlin 3effa1238f CDROM: Return correct SCEx string based on disc region
Fixes SCEI/SCEE displaying as SCEE in BIOS.
6 years ago
Connor McLaughlin 419422a2d7 CDROM: Return console region string based on system 6 years ago
Connor McLaughlin e0a339ca96 GameList: Seperate disc region and console region 6 years ago
Connor McLaughlin e8a5259e68 Qt: Show save times in save state menu as well 6 years ago
Connor McLaughlin b2d0dd2d6c Qt/GameList: Update entry rather than ignoring same directory added twice 6 years ago
Connor McLaughlin ed0abf3912 Qt: Fix possible assertion failure when removing search directories 6 years ago
Connor McLaughlin bd25aa2f9d Qt: Include .chd in disc image filter
Fixes #77.
6 years ago
Connor McLaughlin c2370c598e CDROM: Don't crash when stopping with no media
Fixes #76.
6 years ago
Connor McLaughlin e98c753d3d CDROM: Delay the first CDDA report by one second
Needs hardware testing...
6 years ago
Connor McLaughlin 776159265a CDROM: Skip pregap when processing CDDA 6 years ago
Connor McLaughlin b81071a65c CDImage: Assume 2 second pregap between tracks if none specified 6 years ago
Connor McLaughlin 631865469d CDROM: Bump up ACK delay timing 6 years ago
Connor McLaughlin 4eeaa38ccd CDROM: Don't persist seek error bit in secondary status
Fixes Viewpoint (#56).
6 years ago
Connor McLaughlin 2249b873ff D3D11/StreamBuffer: Check feature support for MAP_NO_OVERWRITE before using 6 years ago
Connor McLaughlin 99d42c07c2 D3D11/StreamBuffer: Use WRITE_DISCARD at position 0 6 years ago
Connor McLaughlin e19175edae GPU/D3D11: Fix non-vertical line rendering at >1x scale 6 years ago
Connor McLaughlin 34ae0dae13 CDROM: Fix upper bound for XA audio frames and sync SPU 6 years ago
Connor McLaughlin 6fa8031569 GPU/D3D11: Fix uniform buffer creation on Win7 6 years ago
Connor McLaughlin eb6dbbfb13 CDROM: Set seeking bit in stat when seeking 6 years ago
Connor McLaughlin c700913322 CDROM: Implement SetSession command 6 years ago
Connor McLaughlin d0f420de10 CDROM: Log invalid command identifiers 6 years ago
Connor McLaughlin 6bb6249e86 GPU/HW: Print capabilities to log 6 years ago
Connor McLaughlin b5b6a15e40 GPU/D3D11: Always flush render before presenting 6 years ago
Connor McLaughlin ae4767a9ca GPU/HW: Always unmap buffer on flush
Should stop assertions firing in some games.
6 years ago
Connor McLaughlin ef2796b780 CommonHostInterface: Fix controller inputs not binding
Fixes #46.
6 years ago
Connor McLaughlin 2004de7170 Qt: Fix controller rebinding not registering when paused 6 years ago
Connor McLaughlin f9a298f1b7 GPU: Fix incorrect handling of check mask bit
Fixes boxes in Silent Hill in Software Renderer.
6 years ago
Connor McLaughlin 552a01a9b6 Qt: Disable LTCG on Release-only builds
It wasn't being used anyway.
6 years ago
Connor McLaughlin b59e4ffbcb HostInterface: Reset performance counters on unpausing 6 years ago
Connor McLaughlin b405c01652 Qt: Save settings for column visibility/sorting in game list 6 years ago
Connor McLaughlin 5c0660744a Qt: Implement "File Title" column and toggling in game list 6 years ago
Connor McLaughlin c8954a3089 Qt: Fix game list sorting by column 6 years ago
Connor McLaughlin 69f03959aa Qt: Implement context menu in game list 6 years ago
Connor McLaughlin 0c40903f74 Qt: Fix double mutex lock on controller type change
Fixes #39.
6 years ago
Connor McLaughlin 34f1c644f5 GPU: Update GPUSTAT if raster has passed to the next line
Fixes games which poll GPUSTAT, including The Next Tetris (Europe).
6 years ago
Connor McLaughlin b0b1fd8f1a GPU: Timing for CPU->VRAM transfers
Fixes Monkey Hero, probably others.
6 years ago
Connor McLaughlin 6b9c6d3750 GPU: Add a helper function to determine how many GPU ticks are pending 6 years ago
Connor McLaughlin 635ab72b37 GPU: Implement "Scaled Dithering" option
Fixes #29.
6 years ago
Connor McLaughlin d41e6dd28f CommonHostInterface: Add some more default key bindings
Also remove some unused code.
6 years ago
Connor McLaughlin fdcb891ed3 GPU: Fix incorrect detection of 480i mode 6 years ago
Connor McLaughlin ed493c846d GPU: Don't panic on oversized VRAM copies
Fixes #31.
6 years ago
Connor McLaughlin 7412e78aa1 GPU: Move software copy/fill functions to base class so it can be used as fallback 6 years ago
Connor McLaughlin e1d4c0b9d4 HostDisplay: Fudge texture coordinates for better linear filtering 6 years ago
Connor McLaughlin 6bacbf3438 GPU: Fix 480i displays getting cut off in OpenGL and Software 6 years ago
Connor McLaughlin aa56a59f58 GPU: Make resolution info less spammy 6 years ago
Connor McLaughlin 0690491883 GPU/HW: Fix potential crash in rectangle expansion 6 years ago
Connor McLaughlin a298e93004 CMake: Fix Linux build
Fixes #36.
6 years ago
Connor McLaughlin e8e44991db GPU: Fix display in OpenGL renderer 6 years ago
Connor McLaughlin 63064f80c2 HostInterface: Fix default value for Display/CropMode 6 years ago
Connor McLaughlin f2adb71a70 CommonHostInterface: Bind face buttons to keypad by default 6 years ago
Connor McLaughlin 19c1e8b838 StringUtil: Fix for older gcc versions again 6 years ago
Connor McLaughlin fcc0ae9571 GPU: Implement "Crop Mode" (none, overscan, all borders) 6 years ago
Connor McLaughlin 5df7fbd68c Common/Rectangle: Fix typo in assignment operator 6 years ago
Connor McLaughlin 122726fe65 Common/StringUtil: Support compiling on gcc7 6 years ago
Connor McLaughlin bbdee22ea8 SDL: Move SDLSettingsInterface (ini) to frontend-common 6 years ago
Connor McLaughlin 9ab5212833 FrontendCommon: Make SDL2 dependency optional 6 years ago
Connor McLaughlin f35970fcac FrontendCommon: Move input binding and some other logic from Qt to common 6 years ago
Connor McLaughlin ccbe6f0c42 Qt: Don't store floats in settings as QVariant data 6 years ago
Connor McLaughlin da0059fb21 Common/StringUtil: Add a FromChars std::optional wrapper 6 years ago
Connor McLaughlin 86094b8080 Common/String: Don't copy StaticStrings when not writing 6 years ago
Connor McLaughlin 4fe57e64d7 SDL: Add -gstate parameter to load global state 6 years ago
Connor McLaughlin 992bf7c338 SDL: Add GPU debug device option to settings 6 years ago
Connor McLaughlin 07ba2ecd3d Settings: Simplify resolution scale enumeration 6 years ago
Connor McLaughlin f21cb25426 HostInterface: Recreate system on GPU debug device toggle too 6 years ago
Connor McLaughlin 82eb14efb1 Core: Apply DPI scaling to debug windows 6 years ago
Connor McLaughlin ce31c85983 SDL: Support high-dpi displays 6 years ago
Connor McLaughlin a0a0cd48fa SDL: Reimplement improved fullscreen toggling 6 years ago
Connor McLaughlin f03de090c4 SDL: Fix setting changes not applying 6 years ago
Connor McLaughlin 4b94224955 SDL: Use RunLater() for menu actions too 6 years ago
Connor McLaughlin 50a155e775 Settings: Default to relative paths for bios/memcards
Prevents from locking to the directory the first time we run.
6 years ago
Connor McLaughlin 509f26ad7e Qt: Add some more default hotkeys (fullscreen/pause/poweroff)
Along with the previous commit, fixes #32
6 years ago
Connor McLaughlin e4ff8b0936 Qt: Add power off hotkey and confirmation message 6 years ago
Connor McLaughlin 27c9f2d834 Qt: Add a method for the emulation thread to focus the display widget 6 years ago
Connor McLaughlin e9dea6e0f7 HostInterface: Add a ConfirmMessage() method 6 years ago
Connor McLaughlin 8ffdcf1b7e Qt: Add a way for the emulation thread to request fullscreen state 6 years ago
Connor McLaughlin 460ff24248 Qt: Support SDL audio backend 6 years ago
Connor McLaughlin 223b52736f Qt: Populate audio backend drop-down 6 years ago
Connor McLaughlin c68d188029 Disable DXGI handling of ALT+ENTER
We manage fullscreen ourselves.
6 years ago
Connor McLaughlin bfdf343dfe SDL: Move imgui render to display
Fixes crash on renderer switch.
6 years ago
Connor McLaughlin 49c7767ed4 System: Check save state version when loading
Fixes #34.
6 years ago
Connor McLaughlin 959a555274 CDROM: Implement asynchronous disc reading 6 years ago
Connor McLaughlin 7ece901d57 CDImage/CHD: Fix crash when opening invalid/nonexistant file 6 years ago
Connor McLaughlin 1ed8243776 HostInterface: Reset counters when starting from state 6 years ago
Connor McLaughlin 3a0f8bffc5 SDL: Use precompiled D3D11 display shaders 6 years ago
Connor McLaughlin 784a5c789f Qt: Use precompiled D3D11 display shaders 6 years ago
Connor McLaughlin 4f794b1c37 Add precompiled versions of D3D11 display shaders 6 years ago
Connor McLaughlin 46846a10f6 Common: Simplify D3D shader object creation with helpers 6 years ago
Connor McLaughlin 11b90b2beb Qt: Fix mac build again 6 years ago
Connor McLaughlin 262331504f Qt: Support binding controller axes 6 years ago
Connor McLaughlin b7dfe06f74 Qt: Support axes in input binding widgets 6 years ago
Connor McLaughlin 149cbf6457 GPU/HW: Properly implement too-large polygon culling
Replaces triangle strips with triangle lists, which has the added bonus
of not requiring flushing as many batches.

Fixes missing geometry in Vagrant Story.
6 years ago
Connor McLaughlin bbe54df3a8 GPU/HW: Split rectangles on texture page boundaries
Fixes the sky in Ape Escape's menu screen, FF7 menu borders, probably
others.
6 years ago
Connor McLaughlin bd542831a8 GPU: Fix incorrect bit check in DrawMode::IsUsingPalette()
Fixes Sony Computer Entertainment fade in the NTSC-J BIOS.
6 years ago
Connor McLaughlin 0f7365117b SDLControllerInterface: Add missing include 6 years ago
Connor McLaughlin 961bc09979 SDL: Fix crashes on starting emulation 6 years ago
Connor McLaughlin 208928b6dc Qt: Fix load state menu not refreshing after save 6 years ago
Connor McLaughlin 1e0e802fa4 HostInterface: Add a helper to display a 'Loading Screen' during long startup 6 years ago
Connor McLaughlin 9ddb3a8c7a SDL: Use controller interface from frontend-common 6 years ago
Connor McLaughlin 6456c5d63d Qt: Don't resume when booting without game code 6 years ago
Connor McLaughlin dcc9da3f5e HostInterface: Don't try to resume system without game code 6 years ago
Connor McLaughlin 06f4d72631 FrontendCommon: Use SDL_InitSubSystem() for lazy initialization 6 years ago
Connor McLaughlin 78a6666439 SDLAudioStream: Don't allow format to change 6 years ago
Connor McLaughlin e48e6141c8 Qt: Set display window size on context create not constructor
The size isn't known at construction time.
6 years ago
Connor McLaughlin cd2f6d1f68 HostInterface: Only display error when loading resume state if boot anyway flag isn't set 6 years ago
Connor McLaughlin 6d945439eb Qt: Fix possible crash/race when startup fails 6 years ago
Connor McLaughlin 59cf799491 Qt: Implement controller interface/binding 6 years ago
Connor McLaughlin 6a1206dde7 Frontends: Add option for "Increase Timer Resolution" 6 years ago
Connor McLaughlin e01cf0dccb Frontends: Implement auto save on exit/resume 6 years ago
Connor McLaughlin e738b87a25 HostInterface: Add helpers for resume save state 6 years ago
Connor McLaughlin 5f3be68028 HostInterface: Notify host when controller types change 6 years ago
Connor McLaughlin b0c846388e SDL: Only save settings when changes have been made 6 years ago
Connor McLaughlin 37d765e8d7 HostInterface: Support switching audio backends 6 years ago
Connor McLaughlin 6a0c15b649 HostInterface: Move timer resolution increase to base class 6 years ago
Connor McLaughlin 1e009133ae Rename 'Default' audio backend to 'SDL' 6 years ago
Connor McLaughlin d17f0a3923 Qt: Implement disc change in QtHostInterface 6 years ago
Connor McLaughlin e5740a5632 Qt: Pass QStrings by reference in HostInterface 6 years ago
Connor McLaughlin fd8ed08307 Move more logic from frontend to base HostInterface 6 years ago
Connor McLaughlin f0578bb932 HostInterface: Make helper methods const 6 years ago
Connor McLaughlin 153eded978 Qt: Use a single column in hotkey binding list 6 years ago
Connor McLaughlin 5c303705ac Qt: Use scroll area for hotkey binding list 6 years ago
Connor McLaughlin 1ce1e016ae Qt: Implement save state menus 6 years ago
Connor McLaughlin 97ea851097 Qt: Narrowing warning fix 6 years ago
Connor McLaughlin 7290e5cad0 HostInterface: Add per-slot save state helper functions 6 years ago
Connor McLaughlin 9148581213 GPU: Narrowing warning fix 6 years ago
Connor McLaughlin 3bafdf88d4 SDL: Fix uninitialized mapping variables 6 years ago
Connor McLaughlin 745c2785b2 Move shared frontend code from SDL to a seperate project 6 years ago
Connor McLaughlin 24bebf7f59 SDL: Add emulation speed slider 6 years ago
Connor McLaughlin fd2ca2927e Common/FileSystem: Fix recursive directory creation 6 years ago
Connor McLaughlin befa2a27d8 HostInterface: Fix crash in SetUserDirectory 6 years ago
Connor McLaughlin b605a84f7d HostInterface: Set user directory for Linux/macOS, portable.txt support 6 years ago
Connor McLaughlin f5482cb3b6 Don't require OpenGL compatibility profile 6 years ago
Connor McLaughlin 1c17d5495e CMake: Attempting to around SDL2 issues on macOS 6 years ago
Connor McLaughlin 65b5013da0 Qt: Work around indirect include of glext.h by QOpenGLContext on macOS
Hacky, but aside from not using glad I'm not sure what else to do.
6 years ago
Connor McLaughlin 15e49b9f61 Core/TimingEvent: Add missing <string> include 6 years ago
Connor McLaughlin f0910dc948 Common/FileSystem: Include fix 6 years ago
Connor McLaughlin f805764fea Common/FileSystem: More OSX fixes.. 6 years ago
Connor McLaughlin 2ac8f7a6ac Common/FileSystem: uint32 -> u32 6 years ago
Connor McLaughlin 244302557f SDL: Add missing <cmath> include to sdl_host_interface.cpp 6 years ago
Connor McLaughlin 8eba4b379c Settings: Default to D3D11 renderer on Windows
This point it's less buggy and slightly more performant.
6 years ago
Connor McLaughlin 4681f9d744 Common/FileSystem: Don't include malloc.h on macOS 6 years ago
Connor McLaughlin 33f3ab4d86 Common/FIFOQueue: Use posix_memalign instead of memalign 6 years ago
Connor McLaughlin 23c8a5588d Add macOS to some Linux/Android-only-isms 6 years ago
Connor McLaughlin 5aba89091e HostInterface: Fix possible crash in BIOS loading 6 years ago
Connor McLaughlin d7f8884291 Qt: Fix compilation under clang-9
Fixes #23.
6 years ago
Connor McLaughlin c008a5d523 Display: Fix bleeding from adjacent VRAM columns with linear filtering 6 years ago
Connor McLaughlin 5c7ef65a34 HostInterface: Non-standard speeds are <100% too 6 years ago
Connor McLaughlin b8210ecbe3 GPU: Use correct texture page size in overlap tracking 6 years ago
Connor McLaughlin 278aa86d14 SPU: Refactor ADSR/implement exponential mode 6 years ago
Connor McLaughlin e098c83342 HostInterface: Disable vsync/audio sync when running at not-100% speed 6 years ago
Connor McLaughlin 70fe43a3ec System: Implement variable emulation speed 6 years ago
Connor McLaughlin a81a0c0f21 Qt: Add normalized float values to SettingWidgetBinder 6 years ago
Connor McLaughlin 9ac7b002e2 GPU/HW: Improve dirty rectangle tracking
Fixes title screen of Activision Classics and performance regression
from Vagrant Story motion blur fix.
6 years ago
Connor McLaughlin 2bf6912f39 Qt: Simplify emulation thread loop 6 years ago
Connor McLaughlin c820ddba79 HostInterface: Move throttle and perf stats to System class 6 years ago
Connor McLaughlin 895cefec60 Qt: Fix core trying to use core OpenGL shaders on OpenGL ES 6 years ago
Connor McLaughlin 1e45c9c4e1 GPU: Fix incorrect overwrite of set mask bit from draw mode
Fixes motion blur in Vagrant Story.
6 years ago
Connor McLaughlin 287ab93cdc GPU: Fix texture bit15 not propogating when blending enabled 6 years ago
Connor McLaughlin ac5af4658d GPU: Mask bit check should use existing colour not new colour 6 years ago
Connor McLaughlin a36fe8bfe6 GPU: Keep drawing area invalidated after invalidating shadow VRAM copy
Partially fixes the motion blur in Vagrant Story.
6 years ago
Connor McLaughlin d1c8775996 Common/Rectangle: Compile fix when using operator= 6 years ago