Commit Graph

82 Commits (013497cf209b6f5da95fbdccae84a7ca003c34f4)

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