summaryrefslogtreecommitdiff
path: root/libretro.c
AgeCommit message (Collapse)Author
2021-07-03Merge remote-tracking branch 'libretro/master' into pico-feneonloop
2021-05-17Add turbo A/B buttonsjdgleaver
2021-05-13Add dedicated RetroPad fast-forward buttonjdgleaver
2021-05-07Small optimization (~2-4%) and whitespace cleanup!David Guillen Fandos
Cleans up a ton of whitespace in cpu.c (like 100KB!) and improves readability of some massive decode statements. Added an optimization for PC-relative loads (pool load) in ROM (since it's read only and cannot possibily change) that directly emits an immediate load. This is way faster, specially in MIPS/x86, ARM can be even faster if we rewrite the immediate load macros to also use a pool.
2021-05-05Fix small buf and add cheat error messagesDavid Guillen Fandos
Some minor formating too
2021-05-05Adding Code Breaker cheat supportDavid Guillen Fandos
This works on both interpreter and dynarec. Tested in MIPS, ARM and x86, still needs some more testing, some edge cases can be buggy.
2021-05-05Merge remote-tracking branch 'libretro/master' into pico-feneonloop
2021-05-05Revert "Remove BIOS reserved translation area"neonloop
This reverts commit fb7ca09b019248b9a0aba481ea55386f71053d73. It seems that commit broke rolling in Minish Cap when using the ARM dynarec.
2021-04-28Fix invalid memory map entriesnegativeExponent
2021-03-31Merge remote-tracking branch 'libretro/master' into pico-feneonloop
2021-03-30Improve indirect jumps in ARMDavid Guillen Fandos
Handle already translated blocks in the ARM asm to speed up indirect branches (affect some games more than others)
2021-03-23Make ewram memory linealDavid Guillen Fandos
This saves a few cycles in MIPS and simplifies a bit the core. Removed the write map, only affects interpreter performance very minimally. Rewired ARM and x86 handlers to support direct access to I/EWRAM (and VRAM on ARM) to compensate. Overall performance is slightly better but code is cleaner and allows for further improvements in the dynarecs.
2021-03-22Adding Normmatt's BIOS as a built-in BIOSDavid Guillen Fandos
Add options to select whether to boot from BIOS (default is no, as it is now) and whether to use the original bios or the builtin one (default is auto, which tries to use the official but falls back to the builtin if not found).
2021-03-21Adds a libpicofe frontend and menusneonloop
Implements: - fast-forward (toggle) - audio-buffer-based frameskip and frame limiting - color-correction (using the libretro code) - lcd ghosting (using the libretro code) - FPS display - input rebinding - emulator key rebinding - scaling (with the old gpsp filters and drowsnug's scaled-nofilter) - saving and savestates - game-specific configuration Not yet implemented: - cheats - fast-forward (hold)
2021-03-17Enable runtime dynarec enable/disableDavid Guillen Fandos
Added a more thorough cache cleanup for reset/mode-change too. Fixed the mmap initialization that ends up leaking memory. Minor x86 asm fixes for Android.
2021-03-17Remove BIOS reserved translation areaDavid Guillen Fandos
This is not really necessary since it can share area with ROM. Performance impact should be very minimal (haven't noticed it myself) and could be compensated (even by a positive offset) if we bump the ROM cache area size. Tested with several dynarecs.
2021-03-16Ensure post processing configuration is correctly reset in retro_deinit()jdgleaver
2021-03-09Add osx-arm64 targettwinaphex
2021-03-08Remove libcoDavid Guillen Fandos
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.
2020-11-09Optimise interframe blendingjdgleaver
2020-10-24Overhaul frameskip optionsjdgleaver
2020-10-23Add build-time option to run the emulator in a thread instead of libco ↵jdgleaver
(fixes OpenDingux target)
2020-10-06Cleanupstwinaphex
2020-09-21Add optional colour correction + interframe blendingjdgleaver
2020-09-05Remove ewram from libretro apinegativeExponent
- 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-05Add optional battery save using libretro save apinegativeExponent
- 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-04-05Fix cheevos supportnegativeExponent
2020-03-10Add automatic frame skippingbmaupin
2020-02-29Merge pull request #64 from justinweiss/3ds-fix-prefetch-aborthizzlekizzle
[3DS] Fix dynarec prefetch aborts
2020-02-29[3DS] Fix dynarec prefetch abortsJustin Weiss
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-28Add manual frame skippingbmaupin
2020-02-27Fix periodic ram_translation_cache crashesbmaupin
2019-11-23Make PSP version to render the image it-self instead of using RetroArchFrancisco Javier Trujillo Mata
2018-08-11add memory hooks for cheat/rumbleSven
2018-05-03Update libretro.c: Add missing input descriptorsHedonium
Add missing L and R descriptors. Fixes #48
2018-01-06Recover 1 frame of input lagTatsuya79
2017-01-24Better error handlingtwinaphex
2016-12-09Report git version with library_versionGregor Richards
2016-10-04(VITA) Dynarec changesFrancisco José García García
2016-10-03(VITA) Dynarec workingFrancisco José García García
2016-08-14(VITA) Dynarec WIPFrancisco José García García
2016-08-08(VITA) Continue WIP - Fix Block for VM alignmentFrancisco José García García
2016-08-08(VITA) Dynarec WIPFrancisco José García García
2015-11-04(3ds) dynarec: map the translation caches to specific addresses ataliaspider
runtime, increases compatibility with loaders that can reloacate each program section seperately. move the svc enabling functions to the frontend.
2015-09-27(ctr/3ds) fix handle leak.aliaspider
2015-09-26add input descriptorsradius
2015-09-11(3DS) add dynarec support when started from a .cia installaliaspider
use libkhax for ninjhax 1.0
2015-04-13allocate gba_screen_pixels on the heap.aliaspider
use linearMemAlign for the 3DS target.
2015-04-08(3DS) enable dynarec support, works only with ninjahax.aliaspider
2014-12-20Change load_gamepak signaturetwinaphex