Commit Graph

142 Commits (54f55633214b8e32366b1d8bcdccd7cfc041c70e)

Author SHA1 Message Date
Connor McLaughlin 19d6037b99 CPU: Implement instruction cache simulation
Implemented for all execution modes. Disabled by default in the cached
interpreter and recompiler, always enabled in the pure interpreter.
5 years ago
Connor McLaughlin 17b5c749bf libretro: Re-enable hw context switch, add auto option 5 years ago
Connor McLaughlin ab002e78e1 Support translating strings in emulator core 5 years ago
Connor McLaughlin bca609a2a6 Qt: Add option to disable per-game settings 5 years ago
Connor McLaughlin 60d3fffec1 Add per-game overrides (mainly for compatibility) 5 years ago
Connor McLaughlin 2e9f656546 CPU: Implement PGXP CPU Mode
This is *very* slow. You don't want to enable it if you don't need it.
It is also incompatible with the recompiler and will disable it if the
option is enabled.
5 years ago
Connor McLaughlin 10a46a7fd8 OSD: Add option to show display resolution 5 years ago
Connor McLaughlin d9893bb127 System: Add option to use a single memory card for playlists 5 years ago
Connor McLaughlin 1d5f810a4b CPU/Recompiler: Disable memory access exceptions by default
This means it'll no longer pass amidog's CPU test in the default config.
But no games rely on this. You can enable it in advanced options if you
want to pass the CPU test.
5 years ago
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 5 years ago
Connor McLaughlin b6f871d2b9
JIT optimizations and refactoring (#675)
* CPU/Recompiler: Use rel32 call where possible for no-args

* JitCodeBuffer: Support using preallocated buffer

* CPU/Recompiler/AArch64: Use bl instead of blr for short branches

* CPU/CodeCache: Allocate recompiler buffer in program space

This means we don't need 64-bit moves for every call out of the
recompiler.

* GTE: Don't store as u16 and load as u32

* CPU/Recompiler: Add methods to emit global load/stores

* GTE: Convert class to namespace

* CPU/Recompiler: Call GTE functions directly

* Settings: Turn into a global variable

* GPU: Replace local pointers with global

* InterruptController: Turn into a global pointer

* System: Replace local pointers with global

* Timers: Turn into a global instance

* DMA: Turn into a global instance

* SPU: Turn into a global instance

* CDROM: Turn into a global instance

* MDEC: Turn into a global instance

* Pad: Turn into a global instance

* SIO: Turn into a global instance

* CDROM: Move audio FIFO to the heap

* CPU/Recompiler: Drop ASMFunctions

No longer needed since we have code in the same 4GB window.

* CPUCodeCache: Turn class into namespace

* Bus: Local pointer -> global pointers

* CPU: Turn class into namespace

* Bus: Turn into namespace

* GTE: Store registers in CPU state struct

Allows relative addressing on ARM.

* CPU/Recompiler: Align code storage to page size

* CPU/Recompiler: Fix relative branches on A64

* HostInterface: Local references to global

* System: Turn into a namespace, move events out

* Add guard pages

* Android: Fix build
5 years ago
Connor McLaughlin 9496c992f7 System: Add an option to preload CD image to RAM 5 years ago
Connor McLaughlin 75a8a7fcca Settings: Make per-game memory cards for slot 1 the default 5 years ago
Connor McLaughlin 5c1c467e38 GTE: Add widescreen hack 5 years ago
Connor McLaughlin 7ba1bed37b Settings: Leave interlacing on by default
Too many games break without it.
5 years ago
Albert Liu 91f51c2833 Settings: Add 1:1 pixel aspect ratio 5 years ago
Albert Liu 9e316e4502 Settings: Add 8:7 display aspect ratio
Requested by users for some 256-width 240p titles (effectively 1:1 PAR
at 256x224 when overscan cropping is turned on).
5 years ago
Connor McLaughlin b471d1043a Settings: Load Memory Cards From State -> Load Devices From State
Makes it apply to controllers too.
5 years ago
Connor McLaughlin e374853cf5 HostInterface: Better configuration of custom crosshair/software cursor 5 years ago
Connor McLaughlin 0b11a14e24 Qt: Better handling of default settings not in ini 5 years ago
Connor McLaughlin 4dc9e10777 HostInterface: Support per-controller-type settings 5 years ago
Connor McLaughlin 2a38090e7a HostDisplay: Move most backend logic to FrontendCommon 5 years ago
Connor McLaughlin eec37df1e0 Settings: Make the recompiler the default CPU mode 5 years ago
Connor McLaughlin f6aae5e67c Settings: Add 2:1 (VRAM 1:1) display aspect ratio 5 years ago
Connor McLaughlin 77291096db Settings: Add GPU adapter option and hook up to D3D11/Vulkan 5 years ago
Connor McLaughlin 3cd5b7ae74 Core: Add Vulkan renderer types 5 years ago
Connor McLaughlin 075380f8e0 Move most helper logic from base HostInterface to FrontendCommon 5 years ago
Connor McLaughlin f9eb3719e3 HostInterface: Add software cursor mode
This will probably need to be extended in the future.
5 years ago
Connor McLaughlin 531c3ad5fa AudioStream: Replace buffer queue with ring buffer
Should achieve a decent overall minimum latency reduction.
5 years ago
Connor McLaughlin 88502e130e Settings: Fix memory cards not syncing with disc change in title mode 5 years ago
Albert Liu ee3a96011e Controller: Add NeGcon support 5 years ago
Connor McLaughlin 81a7b147fc System: Add option to disable loading memory cards from save states 5 years ago
Connor McLaughlin 8fd3a83ea8 Settings: Save DMA timing hacks to ini 5 years ago
Connor McLaughlin d781de2ce6 GameList: Add support for compatibility database 5 years ago
Connor McLaughlin c329f58afe HostInterface: Add audio buffer/count/volume/mute settings 5 years ago
Connor McLaughlin b4c31e55e2 HostDisplay: Add integer upscaling option 5 years ago
Connor McLaughlin e37962009e HostInterface: Add log lettings to ini 5 years ago
Connor McLaughlin 940b725c1d Settings: Make DMA performance parameters tweakable 5 years ago
Connor McLaughlin 8f82987341 Controller: Add basic PlayStation Mouse support
Still needs capture/relative movement for a better experience.
5 years ago
Connor McLaughlin e20fd61f0b System: Add option to use per-game memory cards with game title as filename 5 years ago
Connor McLaughlin 74e455a5f7 System: Support per-game memory cards 5 years ago
Connor McLaughlin e6bd6587fd Controller: Add emulation of Namco GunCon 5 years ago
Connor McLaughlin 1757932b3a GPU: Implement FIFO and timings
This will cause a slight performance loss. I've left some knobs in which
can be tweaked to mitigate this, but the goal is to be compatible with
all games which require them.
5 years ago
Connor McLaughlin 7779a54bc5 GPU: Rename 'Force Progressive Scan' to 'Disable Interlacing'
It affects rendering as well as display/scanout now, after all.
5 years ago
Connor McLaughlin fbfd838e22 GPU: Add pixel aspect ratio option
Can display in 4:3, 16:9, 1:1 ratios.
5 years ago
Connor McLaughlin 3325d2c42c GPU: Add Force NTSC timings option
This option forces NTSC timings for PAL games, causing them to either
run faster (more likely) or smoother (less likely).
5 years ago
Connor McLaughlin 15c33ebedb CDROM: Add "Enable Region Check" option 5 years ago
Connor McLaughlin 21ddfacd40 Settings: Add missing crop mode save 6 years ago
Connor McLaughlin 7e36195f44 HostInterface: Enable on-screen FPS/VPS/Speed display via config 6 years ago
Connor McLaughlin 8e20d0d4ff SPU: Add audio dumping support 6 years ago
Connor McLaughlin 8f39a0f154 Qt: Properly implement "Start Fullscreen" 6 years ago
Connor McLaughlin db1070a683 Settings: Fix start paused not applying 6 years ago
Connor McLaughlin e0a339ca96 GameList: Seperate disc region and console region 6 years ago
Connor McLaughlin 635ab72b37 GPU: Implement "Scaled Dithering" option
Fixes #29.
6 years ago
Connor McLaughlin fcc0ae9571 GPU: Implement "Crop Mode" (none, overscan, all borders) 6 years ago
Connor McLaughlin f35970fcac FrontendCommon: Move input binding and some other logic from Qt to common 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 e4ff8b0936 Qt: Add power off hotkey and confirmation message 6 years ago
Connor McLaughlin 959a555274 CDROM: Implement asynchronous disc reading 6 years ago
Connor McLaughlin e01cf0dccb Frontends: Implement auto save on exit/resume 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 8eba4b379c Settings: Default to D3D11 renderer on Windows
This point it's less buggy and slightly more performant.
6 years ago
Connor McLaughlin 70fe43a3ec System: Implement variable emulation speed 6 years ago
Stenzek 733ab1bca0 Settings: Store debug settings to ini 6 years ago
Connor McLaughlin faf2308695 Settings: Move set defaults to HostInterface so it can use user paths 6 years ago
Connor McLaughlin a832138191 Settings: Add missing Cubeb entry to audio backend names 6 years ago
Connor McLaughlin 8096dc510d Settings: Add missing load/store of GPU/ForceProgressiveScan 6 years ago
Connor McLaughlin b9538a55f5 Settings: Add option for creating a debug GPU device 6 years ago
Connor McLaughlin 71c1e243fe Remove YBaseLib dependency 6 years ago
Connor McLaughlin c52040434a Core: Linux warning fixes 6 years ago
Connor McLaughlin d32383bd95 Settings: Don't include D3D11 renderer on non-WIN32 platforms 6 years ago
Connor McLaughlin 0528a2a1f9 Settings: Put each controller in its own config section 6 years ago
Connor McLaughlin 0f1f5a4f49 Settings: Define an abstract settings retrieval interface
Can be used by both Android and Qt to access their platform-dependent
formats.
6 years ago
Connor McLaughlin 03a36645a2 Settings: Save fullscreen setting to ini 6 years ago
Connor McLaughlin 16317d077e Settings: Add audio backend, move sync settings to Display/Audio 6 years ago
Connor McLaughlin ad21f48a67 Fix Android build after controller changes 6 years ago
Connor McLaughlin 1d2bd11b02 Frontend: Add controller settings 6 years ago
Connor McLaughlin a347b3606e Implement support for analog controllers 6 years ago
Connor McLaughlin c65279f944 System: Create controllers dynamically based on config 6 years ago
Connor McLaughlin 0d293c4be4 Settings: Disable fast boot and TTY output by default
The latter can cause crashes in some games.
6 years ago
Connor McLaughlin df6e079920 GPU: Add a Force Progressive Scan option (disable interlacing) 6 years ago
Connor McLaughlin 67c67bbb66 GPU: Add basic texture filtering support
Still has issues around the edges of text.
6 years ago
Connor McLaughlin 889bd73ac8 CPU: Add settings for execution mode 6 years ago
Connor McLaughlin 8fb4f73d17 Settings: Add audio sync and additional cleanup 6 years ago
Connor McLaughlin f1289d6161 Settings: Hook up console region 6 years ago
Connor McLaughlin 246c97ccb3 System: Scaffolding for multi-system/multi-bios 6 years ago
Connor McLaughlin a47492382c System: Add "fast boot" option (skip boot logo) 6 years ago
Connor McLaughlin 8c51abaf37 System: Move settings to HostInterface 6 years ago
Connor McLaughlin 36b7690056 Frontend: Add settings window 6 years ago
Connor McLaughlin 98a5c4980d Settings: Use simpleini for settings load/save 6 years ago
Connor McLaughlin 8362b8e43b UI: Beginning of customizable settings, debug menu 6 years ago