Commit Graph

52 Commits

Author SHA1 Message Date
twinaphex bd36c9c77d Add osx-arm64 target 2021-03-09 22:05:36 +01:00
David Guillen Fandos 56dc6ecb70 Remove libco
This removes libco and all the usages of it (+pthreads).
Rewired all dynarecs and interpreter to return after every frame so that
libretro can process events. This required to make dynarec re-entrant.

Dynarecs were updated to check for new frame on every update (IRQ, cycle
exhaustion, I/O write, etc). The performance impact of doing so should
be minimal (and definitely outweight the libco gains). While at it,
fixed small issues to get a bit more perf: arm dynarec was not idling
correctly, mips was using stack when not needed, etc.

Tested on PSP (mips), OGA (armv7), Linux (x86 and interpreter). Not
tested on Android though.
2021-03-08 18:44:03 +01:00
jdgleaver 908be08be5 Optimise interframe blending 2020-11-09 13:04:00 +00:00
jdgleaver 226bd8283a Overhaul frameskip options 2020-10-24 14:58:40 +01:00
jdgleaver 00406feed9 Add build-time option to run the emulator in a thread instead of libco (fixes OpenDingux target) 2020-10-23 15:37:48 +01:00
twinaphex b10c73f00f Cleanups 2020-10-06 03:13:01 +02:00
jdgleaver aa7feb70ca Add optional colour correction + interframe blending 2020-09-21 18:03:58 +01:00
negativeExponent a3725fd81f Remove ewram from libretro api
- Removing RETRO_SYSTEM_MEMORY from retro_get_memory_data/size
  since its incompatible for 2 reasons:
1. gba uses at least 2 blocks of memory, which is not supported
2. the way gpsp's memory block are not contiguous (see memory
   descriptors)
2020-09-05 20:54:57 +08:00
negativeExponent d8225bb313 Add optional battery save using libretro save api
- Adds core option to allow battery saves using the libretro api
  (retro_get_memory_data/size)
- Initial save size set at 128KB and actual size is automatically
  determined internally by gba.
- This will always assume that a save file is supported since save
  size or type cannot be determined until gba tries to write to backup memory.
- A 128KB block of memory is used as buffer, similar method to VBA
  Next/Beetle GBA workarounds.

Fix https://github.com/libretro/gpsp/issues/72
2020-09-05 20:47:59 +08:00
negativeExponent fea026fec4 Fix cheevos support 2020-04-05 16:35:23 +08:00
bmaupin f484239f9c Add automatic frame skipping 2020-03-10 13:51:03 -04:00
hizzlekizzle 3f2f57c982
Merge pull request #64 from justinweiss/3ds-fix-prefetch-abort
[3DS] Fix dynarec prefetch aborts
2020-02-29 17:23:57 -06:00
Justin Weiss 6a50b8a68d [3DS] Fix dynarec prefetch aborts
Similar fix to https://github.com/libretro/pcsx_rearmed/pull/390. The
Nintendo svcBackdoor can cause stack corruption if an interrupt
happens during it, this uses Luma3DS/Rosalina's svcCustomBackdoor instead.
2020-02-29 10:55:58 -08:00
bmaupin 3df169d3e8 Add manual frame skipping 2020-02-28 13:23:56 -05:00
bmaupin 59c4f7f5c7 Fix periodic ram_translation_cache crashes 2020-02-27 13:52:59 -05:00
Francisco Javier Trujillo Mata e040afd35d Make PSP version to render the image it-self instead of using RetroArch 2019-11-23 17:34:35 +01:00
Sven 89e311b489 add memory hooks for cheat/rumble 2018-08-11 14:35:49 -04:00
Hedonium c7959bb001 Update libretro.c: Add missing input descriptors
Add missing L and R descriptors. Fixes #48
2018-05-03 10:34:34 -04:00
Tatsuya79 c745ed8229
Recover 1 frame of input lag 2018-01-06 17:27:48 +01:00
twinaphex c31b3e857c Better error handling 2017-01-24 18:24:03 +01:00
Gregor Richards 415b5ba67b Report git version with library_version 2016-12-09 18:42:12 -05:00
Francisco José García García adcf1c6f73 (VITA) Dynarec changes 2016-10-04 07:32:54 +00:00
Francisco José García García 6bfb7e1b47 (VITA) Dynarec working 2016-10-03 20:19:11 +02:00
Francisco José García García 44b63e7d28 (VITA) Dynarec WIP 2016-08-14 18:28:25 +02:00
Francisco José García García 177abe6a22 (VITA) Continue WIP - Fix Block for VM alignment 2016-08-08 13:13:22 +02:00
Francisco José García García 6ab0992ecf (VITA) Dynarec WIP 2016-08-08 00:31:21 +02:00
aliaspider f1d14fbe7c (3ds) dynarec: map the translation caches to specific addresses at
runtime, increases compatibility with loaders that can reloacate each
program section seperately.
move the svc enabling functions to the frontend.
2015-11-04 15:46:27 +01:00
aliaspider a93bb43bc8 (ctr/3ds) fix handle leak. 2015-09-27 14:47:06 +01:00
radius 7c4c6baa5e add input descriptors 2015-09-26 22:35:31 -05:00
aliaspider c1d061e204 (3DS) add dynarec support when started from a .cia install
use libkhax for ninjhax 1.0
2015-09-11 22:02:04 +01:00
aliaspider 69b5bfc05e allocate gba_screen_pixels on the heap.
use linearMemAlign for the 3DS target.
2015-04-13 02:43:42 +01:00
aliaspider 5b6683bb93 (3DS) enable dynarec support, works only with ninjahax. 2015-04-08 10:20:32 +01:00
twinaphex ba834beeb1 Change load_gamepak signature 2014-12-20 08:35:53 +01:00
twinaphex 5820d8be94 Create memmap_win32.c for Win32 systems - a mman wrapper 2014-12-13 05:50:15 +01:00
twinaphex c1375c871f Put ifdef around <sys/mman.h> include 2014-12-13 01:20:10 +01:00
Alcaro a42f3c57ff Allow core to work without GET_PERF_INTERFACE. 2014-12-11 23:21:27 +01:00
twinaphex 8d8bb64ef6 Put 'var' variable inside HAVE_DYNAREC ifdef for now to silence
warning
2014-12-11 19:47:36 +01:00
twinaphex 19f05cf36a ARM needs special optimized routines for video blending, etc. 2014-12-10 18:39:54 +01:00
twinaphex b3f8e39a80 Turn dynarec enable/disable into core option if HAVE_DYNAREC
is defined
2014-12-10 17:48:43 +01:00
twinaphex 82731290ee We don't need to get rid of idle loop patching for non-dynarec
core
2014-12-10 17:27:18 +01:00
twinaphex 51d78afa09 Add HAVE_DYNAREC ifdef 2014-12-10 17:06:09 +01:00
aliaspider 6d7fd87e07 add a HAVE_MMAP check, cleanups. 2014-12-10 12:29:19 +01:00
aliaspider 41484cd73c use correct save directory. 2014-12-10 12:00:12 +01:00
aliaspider ad485d434a implement retro_serialize/unserialize 2014-12-10 11:06:17 +01:00
aliaspider e2d6ea9082 fix display name/version. 2014-12-09 10:18:05 +01:00
aliaspider 1a6a136801 dynamic recompiler now works when the core is compiled as a shared
library.
2014-12-09 09:54:33 +01:00
aliaspider cd185c849b enable sound ( still broken ) 2014-12-09 05:36:30 +01:00
aliaspider b69fee8b31 video output now works in statically linked builds.
core can't be used as a shared library yet due to the dynarec not
working when compiled with -fPIC
2014-12-09 05:16:09 +01:00
aliaspider 3cc3944725 add debug build option to x86 standalone target. 2014-12-09 02:43:59 +01:00
aliaspider 50df6df600 fix undefined referances. 2014-12-09 01:59:02 +01:00