* add memory map setup
* move retroarch memory map setup to device.c
* update retroarch memory map setup to map address space properly
* add memory map flags for the retroarch memory maps
* refactor to map the entirety of KSEG0 and KSEG1
* finish mapping the whole KSEG1 address space and improve code readability
* remove the -1 for the romsize mapping
* set dd_rom_size when setting the pointer for it
* fix pointers to dd regs and rom
* adjust retroarch memory mapping to use the existing struct from init_device
* revise use of the other mappings struct and fix broken pointers
Platform buildfix - is this accurate enough?
WIP Dynarec
Speed workaround at perf cost
C89 fix
Remove dummy_rsp
Fix awk
Fix savestates, some ground work for cheats
cleanup
Transition fixes (CBFD etc)
Fix cheats
Fix Savefiles
[LIBNX] Small dynarec perf hack
ASM defines for android, currently not generated.
Libnx transition cleanup
Add Fullspeed Core option (simliar to ParaLLEl)
Add CountPerScanlineOverride (VI Refresh Overclock)
Similar to ParaLLEl
new_dynarec: add assembler defines for ARM platform
* Right now if the platform generates them they will pop up in
`asm_defines` and that takes priority over the backend folders,
so lets just commit them for the time being (m4xw).
Fix deinit
Potential mitigation for Indiana Jones (aarch64)
Only relevant with new GLideN64
Check inputs using poll callback.
[NXJIT] Cleanup, use RW/RX bases
Still missing Horizon ver. detection
GLideN64 needed changes (WIP)
Minor cleanup
stop_after_jal for all but libnx
Added core option: ForceDisableExtraMem
N64DD Support via Subsystems
Fix new_dynarec uncached code execution
Add alternative loading of DD image files
- Relevant for broken Subsystem on static Platforms, like Switch
Add CXD4. ParallelRSP Preperations
Implement angrylion core-options and multi-plugin handling
Co-authored-by: twinaphex <[email protected]>
First revision of new Core options
- Deprecated GLN header for Core options
- Add Hybrid Filter Core option
- Add Dithering Pattern Core option
- Add Dithering Quantization Core option
- Add RDRAM Image Dithering Mode Core option
- Additional thanks to Tatsuya79 and dmrlawson
Update & Revert to Stock INI Headers
- Removes OoT Subscreen fix, might've caused Issues
[GLN64] Implement Threaded Renderer
[NX] Test JIT Changes
- Lowers platform requirements
[Core] Remove CountPerOp=1 for Quake 2 and Goldfinger
- This cripples perf on Switch and Android with GLN64
- No regression has been found so far
Remove Bone displacement fix after testing for DK64, update INI headers
Add IgnoreTLBExceptions Options
- Current workaround for the tricky Dynarec Issue for OoT
- Added 3 Modes, one only skips if the game doesn't use TLB, one always skips (useful for GdbStub) and one is upstream behaviour
Integrate paraLLEl-RDP.
Fix build without new_dynarec
Better handling for dynarec tlb exception filter
Add GET_CLEAR_ALL_THREAD_WAITS_CB, fixes all freezes with thr on several platforms.
Also force early polling instead of late for it.
Update pre-created asm defines for aarch64
Only relevant for Android
Backport 07f09151 to arm/x64/x86 dynarec backends
Add asm defines for Android x86 / x86_64 and allow Android x86_64 core to be built
Fix macro after libretro-common rebase
[Fixme] Remove all baked headers
Liberate rdram_size after rebase again
[Squash me] Fixes after rebase
Experimental transferpak
Experimental netplay
Hacky expose fast fwd w/o env cb (needs v/a sync off)
Fix storage sharing for netplay
Fast fwd extension (unreleased, amend and remove libretro.h later)
Fix PIC for x86 new_dynarec, enable Android x86
TODO: Try ndk bump
Trivial perf improvement on initial recompilation
Use original delta method for android, fallback to new method for nasm
Explicitly declare fPIC flags
Misc fixes & disable netplay support
Add asm_defines headers for Android
Add sys/types.h for u_int declaration
Fixes after rebase
Cleanup & Update INI Headers
Placeholder for DD disk saves
Update asm_defines for Android
Fix file_storage_save
Strdup all globals and let the inner core handle their lifetime
Cleanup global paths garbage collection, add cleanup_global_paths
Use ifile_storage_ro handler for save types
Lower logs in dd_controller
Note: Maybe causes netplay shenanigans as-is, verify
DD disk name shenanigans
Move mempak filestorage to readonly (handled via libretro)
Sanity checks
Add CountPerOpDenomPot (Overclock)
Cache flush optimization for pointer invalidation
TODO: Port to ARMv7
Update asm_defines headers for Android
Build on OSX arm64
binutils switched to using C99 bool at some point and they were
transitively including bfd.h which defined TRUE/FALSE as 1/0
respectively.
The rest of the file uses 0 and 1 everywhere.
VidExt_GL_SetAttribute(M64P_GL_CONTEXT_PROFILE_MASK, ...) clears
l_ForceCompatibilityContext only for M64P_GL_CONTEXT_PROFILE_CORE. An
M64P_GL_CONTEXT_PROFILE_ES request sets the SDL attribute but leaves the
flag armed, so VidExt_SetVideoMode re-sets the profile to
SDL_GL_CONTEXT_PROFILE_COMPATIBILITY right before creating the window,
clobbering the plugin's ES request.
On platforms whose desktop GL is limited (e.g. Raspberry Pi 5 / Mesa V3D,
compatibility profile capped at GLSL 1.40) a video plugin that requested
an ES 3.1 context silently gets a desktop compatibility context instead;
every #version 310 es shader then fails to compile and the emulator shows
a plain black screen with no error in Release builds.
Clear the force flag for the ES case exactly like the CORE case (same
ifndef USE_GLES guard: the flag does not exist in GLES builds).
- src/device/r4300/new_dynarec/new_dynarec.h:35-36 now defines shared
constants for the code-cache size and an extra 2 MB padding window so every
component uses the same expectations when reserving executable memory.
- src/device/r4300/r4300_core.h:184-186 replaces the fixed 4 KB–aligned cache
array with a padded backing buffer plus a cached pointer, so we can realign
the dynarec code cache at runtime without relying on the toolchain’s maximum
alignment.
- src/device/r4300/new_dynarec/new_dynarec.c:83-127,8686-8753 adds helpers
that query the host page size (sysconf/GetSystemInfo), align the cache
buffer, warn if the host page size exceeds the padding, and use the aligned
pointer during new_dynarec_init, keeping all subsequent
mprotect/VirtualProtect calls page-safe.
- src/device/r4300/new_dynarec/recomp_dbg.c:135-138,816-823 mirrors the same
padded-buffer/realignment logic for the recompilation debugger build so the
debug cache also respects larger host page sizes.