Commit graph

94 commits

Author SHA1 Message Date
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +10:00
Connor McLaughlin e9882a10aa System: Move restore/reset graphics API state to System
Fixes frame stepping.
2020-08-01 16:45:07 +10:00
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
2020-07-31 17:09:18 +10:00
Connor McLaughlin 0317541477 libretro: Remove VRAM resolution from scale text 2020-07-29 20:01:22 +10:00
Connor McLaughlin 415c21dc84 libretro: Possible fix for crash when reloading content 2020-07-29 03:00:00 +10:00
Connor McLaughlin 99b0ba3f20 libretro: Use correct path for shared mode memcards 2020-07-24 02:40:46 +10:00
Connor McLaughlin 90aaee86c7 libretro: Use duckstation_shared_card_N.mcd in shared mode
shared_card_n.mcd is too ambiguious when it's sharing a directory with
other cores.
2020-07-24 02:40:46 +10:00
Connor McLaughlin a6acd33ce6 libretro: Include m3u in valid_extensions 2020-07-23 03:00:49 +10:00
Connor McLaughlin f3df4f91a2 libretro: Implement disk control interface 2020-07-23 02:36:23 +10:00
jdgleaver 7478e75ed6 (libretro) Fix 'Fast Boot' option 2020-07-21 16:32:36 +01:00
Connor McLaughlin 68d98af497 Qt: Remove usage of QString where possible for settings 2020-07-21 20:10:06 +10:00
Connor McLaughlin 2702eb90bf libretro: Add widescreen hack option 2020-07-18 00:28:37 +10:00
Connor McLaughlin 5f76140aa5 libretro: Expose main RAM to frontend 2020-07-18 00:28:37 +10:00
Connor McLaughlin 35093818c6 libretro: Add resolutions up to 16x 2020-07-12 23:31:21 +10:00
Connor McLaughlin 113b0f57d6 libretro: Fix Vulkan context creation on Mali
We don't use the loader functions here anyway, so no need to try to
retrieve them.
2020-07-12 00:41:53 +10:00
Connor McLaughlin 3ad780b52e libretro: Fix logging breaking when retro_set_environment called twice 2020-07-12 00:41:09 +10:00
Connor McLaughlin a5fe740e30 Fix a bunch of compiler warnings 2020-07-09 13:30:16 +10:00
Connor McLaughlin 532c2a0c15 cmake: Drop msbuild-based libretro dll in top-level dir too 2020-07-08 15:18:49 +10:00
Connor McLaughlin 068b244303 libretro: Do SET_CORE_OPTIONS unconditionally 2020-07-08 12:48:57 +10:00
Connor McLaughlin 922003ba50 libretro: Ignore renderer changes
RetroArch does not support hot swapping renderers.
2020-07-08 02:05:36 +10:00
Connor McLaughlin 01287cb7da build: Support building libretro core for Android 2020-07-07 20:27:14 +10:00
Connor McLaughlin c242d4707f build: Drop Linux libretro core in current directory too 2020-07-07 20:27:14 +10:00
Connor McLaughlin 089b1d465f build: Drop libretro DLL in build directory 2020-07-07 19:09:14 +10:00
Connor McLaughlin 547e8b239b libretro: Reduce base width/height
Stops the window opening so large.
2020-07-06 02:47:33 +10:00
Connor McLaughlin 11c0601a67 libretro: Work around hw render interface pointer being freed 2020-07-06 02:47:33 +10:00
Connor McLaughlin 67bc14dac9 CI: Use libretro core naming convention 2020-07-05 13:15:12 +10:00
Connor McLaughlin b0b3901722 libretro: Fix DualShock analog mode auto-enable 2020-07-05 00:05:14 +10:00
Connor McLaughlin c76bb5eb6a libretro: Fix display aspect ratio 2020-07-04 22:33:07 +10:00
Connor McLaughlin 343e3ba3b7 libretro: Better handle resolution changes 2020-07-04 22:14:07 +10:00
Connor McLaughlin e15fafe428 libretro: Reduce OSD message durations 2020-07-04 22:14:07 +10:00
Connor McLaughlin 8408d3b6bf libretro: Disable shader cache
Can't seem to see somewhere we can save shader blobs. It wasn't working
anyway because it would generate invalid paths.
2020-07-04 22:14:07 +10:00
Connor McLaughlin f9622b2450 libretro: Fix memory card save locations 2020-07-04 22:14:07 +10:00
Connor McLaughlin b9ffca1ddf libretro: Vulkan renderer support 2020-07-04 22:14:07 +10:00
Connor McLaughlin 218f6721d3 libretro: Fix display rendering in D3D11/OpenGL 2020-07-04 20:05:49 +10:00
Connor McLaughlin 8cd9e0887e libretro: Use framebuffer view dimensions not texture dimensions 2020-07-01 01:57:25 +10:00
Connor McLaughlin 70f4ce7cde libretro: Add auto analog mode option for controllers 2020-07-01 01:57:25 +10:00
Connor McLaughlin bf08385051 WindowInfo: Add surface_scale field 2020-07-01 01:57:25 +10:00
Connor McLaughlin 4dc9e10777 HostInterface: Support per-controller-type settings 2020-07-01 00:56:46 +10:00
Connor McLaughlin 38aa485f8f libretro: Analog controller/DualShock support 2020-06-30 03:03:56 +10:00
Connor McLaughlin 51b4776b8f libretro: Work around video driver switching crash in RetroArch 2020-06-30 03:03:56 +10:00
Connor McLaughlin 861b98ed3b libretro: Additional work
- Reliable resolution switching.
 - Hook up logging.
 - Memory cards and controller type settings.
 - Save state support.
 - Direct3D support.
2020-06-30 03:03:56 +10:00
Albert Liu 28d38c9867 LibretroHostInterface: Report aspect ratio setting to frontend 2020-06-23 09:24:50 -07:00
Albert Liu 7c206766ae HostInterface: Save default setting to AspectRatio, not PixelAspectRatio
Fixes inconsistency with default settings saving to PixelAspectRatio,
but loading from AspectRatio instead. PixelAspectRatio was not being
used elsewhere.
2020-06-23 09:24:50 -07:00
Connor McLaughlin d7f083559e Add initial libretro implementation 2020-06-09 02:44:42 +10:00