Flyinghead
855836d9aa
switch: arm rec EntryPoints need rx. fix arm & dsp cache flush
2021-07-14 14:57:43 +02:00
Flyinghead
44213bf830
lr: fix res change for rotated games. display version. vmem: simplify
2021-07-13 13:45:01 +02:00
Flyinghead
63a3f02368
libretro: better switch support
2021-07-12 20:14:21 +02:00
Flyinghead
673c2988d6
libretro: backport libnx support. Fix log source paths
2021-07-07 19:01:37 +02:00
scribam
d6545b253b
Misc cleanup
2021-06-06 11:15:06 +02:00
Flyinghead
373dffc65a
wince: ditch vmem32. use address LUT in dynarec. finer grained flush
2021-05-17 11:59:34 +02:00
Flyinghead
1464c02903
mmu: add address cache to mem slow path. better fastmmu hashtable.
...
mmu: add address cache to Read/WriteMemNoEx
fastmmu: ignore 1k pages. optimize hashtable
get rid of NO_MMU
2021-05-14 19:03:57 +02:00
scribam
1cc3490f51
Remove HOST_OS references
2021-03-13 11:38:34 +01:00
Flyinghead
478b9a9f68
linux: vmem conflict with malloc. Ignore savestate with future version
2021-03-07 17:05:34 +01:00
C.W. Betts
4d5c6e1551
Fix an oversight.
2021-03-03 01:00:08 -07:00
C.W. Betts
3c8a2f2372
Don't compile rec_arm64 on non ARM64 machines.
...
Include header in posix_vmem that makes calls to sys_cache_control compile on Mac ARM64.
Replaces flyinghead#184
2021-03-03 00:57:53 -07:00
C.W. Betts
af650c7c31
Add Apple Silicon capability to context_segfault
...
Based off of 15971d0ab5
and updated to work.
2021-03-02 18:18:19 -07:00
Flyinghead
0c8815549c
Merge branch 'fh/x64-arm-jit'
...
# Conflicts:
# core/hw/aica/aica.cpp
# core/nullDC.cpp
2021-03-02 19:42:15 +01:00
Flyinghead
c3a95594f9
New option system
...
Fix per-game settings (Issue #115 )
Automatic load/save state (Issue #173 )
Reload Naomi/AW BIOS after per-game settings are loaded to allow
per-game BIOS region. (Issue #96 )
Restrict Soul Reaver widescreen cheat to the EU version (Issue #188 )
Disable UI elements for overridden settings
Clean up/simplify legacy Naomi ROM loading
2021-03-01 10:13:40 +01:00
Flyinghead
89fe36b881
arm7 rec: lr wasn't updated in conditional bl
...
missing changes for previous arm64rec commit
more aica arm tests
wince vmem handler now uses direct ram access
2021-01-31 12:02:20 +01:00
Flyinghead
80782475da
x64 rec: get rid of setjmp. standardize ngen_Rewrite/HandleException
...
move rewrite code from exception handlers to x86/x64 dynarecs
use same host context info on linux/win
x64: stack alignment issue in mem handlers
2021-01-30 16:14:44 +01:00
Flyinghead
882e14f13f
aica: x64 jit for arm
...
aica arm x86: use pc-relative addressing to access arm registers
OSX project fix
arm7: add simple ldm/stm handling. optimize arm32 and x64 recs
update CMakeLists.txt and Makefile. finish rebase
2021-01-26 21:32:43 +01:00
flyinghead
4215f7090f
android: use ASharedMemory_create instead of /dev/ashmem if available
2021-01-26 14:02:14 +01:00
Flyinghead
8f77a5482a
config/data folders improvements
...
linux: look for legacy ~/.reicast and ~/.reicast/data
else look for ~/.config/flycast and ~/.local/share/flycast
and ~/.config/reicast and ~/.local/share/reicast
(defaults to flycast)
look for bios files in home folder and data folders (android, windows
,macos), then in game folder.
on linux, search in /usr/share/flycast and /usr/local/share/flycast and
legacy locations
2020-11-26 16:45:57 +01:00
Flyinghead
2a5b303b70
delete nixprof
2020-11-22 17:37:27 +01:00
scribam
6ee4b6de85
Replace OS_DARWIN by __APPLE__
2020-04-26 14:19:21 +02:00
scribam
a155282fd0
Cleanup compiler warnings (mostly sign-compare)
2020-03-30 23:00:43 +02:00
scribam
e99aac3575
Remove "using namespace std;"
2020-03-30 23:00:43 +02:00
scribam
c1b37b56bc
Remove "sh4_if.h" and "stdclass.h" from "types.h"
2020-03-30 23:00:43 +02:00
scribam
4bf6802855
Cleanup include headers
2020-03-29 14:26:21 +02:00
Flyinghead
17501e880e
vmem: unmap all reserved vmem at exit
2020-01-07 20:45:44 +01:00
Flyinghead
76b7970589
osx: xcode 11 / swift 5
2019-12-26 21:41:44 +01:00
scribam
49b7e0682b
Cleanup
2019-09-07 20:36:13 +02:00
Flyinghead
b4d33a6c70
Merge remote-tracking branch 'origin/master' into fh/hle-bios
2019-09-03 19:14:39 +02:00
scribam
314f25ea38
linux: Use header <sys/personality.h> only on linux platforms
2019-09-01 14:15:29 +02:00
Flyinghead
61f4cd4ecd
Merge remote-tracking branch 'origin/master' into fh/hle-bios
2019-08-31 22:10:09 +02:00
Flyinghead
2015d9a696
rename and clean up
2019-08-30 23:35:10 +02:00
scribam
79f801d314
Remove Emscripten support entirely
...
Makefile for Emscripten build has been dropped in commit 1333d6f776
2019-08-30 20:01:14 +02:00
scribam
61382316c9
Use __ANDROID__ to handle specific Android code
2019-08-28 20:37:53 +02:00
Flyinghead
1333d6f776
Remove TARGET_BOUNDED_EXECUTION. Build warnings and clean up
2019-07-28 17:37:04 +02:00
Flyinghead
9932d9bf43
OSX: fix bios files path (now in /data/)
2019-07-24 18:24:58 +02:00
Flyinghead
dbbc1819e8
remove NACL
2019-07-07 22:56:23 +02:00
Flyinghead
8404c6322c
New logging framework stolen from dolphin
2019-06-30 21:06:46 +02:00
Flyinghead
6ed098a929
wince: enable code block protection
2019-06-19 22:55:47 +02:00
Flyinghead
318852e261
dynarec: use mprotect to protect code areas
...
All ram pages containing code are write protected. In that case, no need
for block checks. Memory reads in the same block(s) can also be executed
at compile time and the results propagated as constants.
When a write is detected in a protected area, the corresponding blocks
are discarded and recompiled using traditional (slow) block checks.
Backported the blkmap code finding change from upstream.
Use smart pointers for block management to avoid reference issues.
Added WriteAfterWrite ssa pass
Fixed crash in ssa ConstProp pass when op list is modified
2019-06-19 11:01:33 +02:00
Flyinghead
0b8a312fea
rec-arm64: simplify read/write mem rewrite logic
...
pass exception pc in x2 reg for both slow/fast paths
infer the op type and size from the armv8 op encoding
rewrite doesn't need access to the block anymore
add support for some imm args
2019-06-18 15:07:32 +02:00
Flyinghead
5b2cef3fdd
dynarec: add negc and xtrct op codes
...
native implementation of negc and xtrct for x64 and arm64
rec-arm64: pass exception pc in w27 instead of sh4 context
inline mmu_intruction_translation() and clean up
2019-05-26 13:30:05 +02:00
Flyinghead
e7e387b443
wince: enable/disable vmem32 based on mmu state
2019-05-24 18:19:33 +02:00
Flyinghead
61a867e1ad
FPCB was only partially mprotected
2019-05-24 17:40:10 +02:00
Flyinghead
e3d95f2258
wince: unify _vmem and vmem32. Use 4GB virtual space on 64-bit arch
...
On 64-bit architectures, _vmem first tries to allocate 4GB then falls
back to 512 MB.
The same virtual space is now used by _vmem and vmem32 (mmu)
2019-05-23 11:40:33 +02:00
Flyinghead
c2c0215e1b
Merge remote-tracking branch 'origin/master' into fh/wince-dynarec
2019-05-22 14:13:00 +02:00
Flyinghead
fb76efb08d
Standard functions for virtual mem alloc/protect/map/...
2019-05-22 11:41:12 +02:00
David Guillen Fandos
65e2218792
Fix ARM64 rewrites with NO_RWX_PAGES
...
Tested on nvidia jetson and Android, so far works great.
2019-05-13 00:23:18 +02:00
David Guillen Fandos
aa4fc8dd60
Move cache invalidation to vmem_platform and implement NO_RWX on arm64
...
Still not functional yet, this commit breaks arm64 on android for instance.
Rewrites are not yet figured out, will push them in the next commit.
2019-05-12 23:25:43 +02:00
David Guillen Fandos
3b760f9869
Add FEAT_NO_RWX_PAGES and implement it for x64 CPU (Win and Linux)
...
Tested: Both with and without the feature, works only for x64 CPUs for
now, but supported in both windows and linux (see vmem implementation
for it, using mem-mapped files).
2019-05-12 22:02:57 +02:00
David Guillen Fandos
1a2b1c8672
Remove traces of memory manager from Jit driver.
...
Still stuff to be removed in the Naomi file handler and the ARM
AREC, which need to get ported to the new vmem interface.
2019-05-12 19:47:11 +02:00
Flyinghead
15ce3ab5fa
OSX build fixes
2019-05-12 16:53:30 +02:00
David Guillen Fandos
55e7c17030
Fix minor build issue with madvise flags.
2019-05-12 13:40:18 +02:00
David Guillen Fandos
b74db6ef53
Moving vmem to separate files with a proper interface.
...
Works so far for Linux and Android, need to do some testing on Windows.
2019-05-11 22:09:52 +02:00
David Guillen Fandos
be1ecbaa8b
Fix TARGET_NO_NVMEM and deprecate TARGET_NO_EXCEPTIONS
...
Linked them both toghether since you can't really define one and
not the other (plus Linux honors one windows the other in some
cases).
More refactoring on this area to follow.
2019-05-10 18:57:28 +02:00
Flyinghead
f2696a4b47
osx: add new files to project
2019-05-03 11:53:14 +02:00
Flyinghead
810b8a59da
wince: 32-bit virtual mem space
...
use fast mem read/write for x64 and arm64 dynarecs
2019-04-29 18:23:00 +02:00
David Guillen Fandos
3692ea7ae6
Improve stdclass.h/cpp support for non-Linux non-Windows platforms
...
Simplifies having implementation on platform separated files, which is a
pain for platforms which are not Windows but not Linux either (and yet
support pthreads).
Some minor cleanup here and there while we are at it.
2019-04-27 14:34:10 +02:00
Flyinghead
c809c6c56f
Merge branch 'fh/mymaster' into fh/master-merge
2019-03-25 16:47:47 +01:00
Flyinghead
cb8e81d473
arm64: direct memory access and jit rewrite
...
generates direct vmem read & write accesses
trap sigsegv and rewrite using slow path
add w29 to allocatable registers
get rid of literals and use pc-rel branching
minor optimizations and cleanup
2019-01-16 13:04:16 +01:00
Flyinghead
67a4eb8f1f
arm64 dynarec using vixl
2019-01-07 21:50:46 +01:00
Flyinghead
2b25244c95
cResetEvent: needs absolute timeout value. Fixes Android FPS drop.
2018-10-30 10:56:25 +01:00
Flyinghead
a1745801f0
cResetEvent: convert to ns instead of us
2018-10-29 21:41:57 +01:00
Flyinghead
dd7d0a1ac2
Android: deadlock due to cResetEvent.Wait() bug
2018-10-29 20:56:45 +01:00
Flyinghead
dc9780eb46
Android: fix black screen at boot on some devices
2018-10-29 20:03:47 +01:00
Michał Janiszewski
a69bd937c3
Add missing include guards
2018-10-28 13:45:46 +01:00
Flyinghead
7ce4fccb37
Merge remote-tracking branch 'origin/master' into fh/mymaster
2018-09-20 17:28:41 +02:00
Ender's Games
62c76475eb
Android: Implement trial disk swapping code
2018-08-28 14:08:36 -04:00
Ender's Games
14b1e66ed4
Mac: Reference / implement preprocessor directives
2018-08-25 13:03:29 -04:00
Ender's Games
75215ec0d1
Core: Address some obvious lgtm issues
2018-08-21 02:52:03 -04:00
Ender's Games
8d9d40dffc
Core: Changes provided by Android NDK compiler
2018-08-19 01:54:15 -04:00
Flyinghead
46c0d545ec
OSX: Fix previous merge
2018-08-01 18:31:20 +02:00
Flyinghead
9942bfc86e
Merge branch clean-exit-light
2018-08-01 18:02:50 +02:00
Flyinghead
b28e1505c5
Fix dynarec on OSX/x64. Clean exit when window closed.
2018-07-24 13:26:31 +02:00
Greg V
5d69e19ed1
Build on FreeBSD (and potentially other BSD)
2018-07-08 15:43:10 +03:00
Flyinghead
46b40ad043
OSX: enable exceptions for vmem
2018-05-15 11:14:48 +02:00
Flyinghead
39e0f378cb
OSX: add x64 target. Use JIT compiler. Clean exit. Use semaphore in core audio driver. Use layout-independent key codes to support int'l keyboards. Fixed GL window scaling.
2018-04-29 16:07:54 +02:00
gizmo98
4a7d0b9e7e
rpi: add option to use mesa or new vendor gl libs
2018-04-11 21:42:57 +02:00
Nicolas HOUDELOT
5c343a219c
fix typo
2018-03-05 01:57:00 +01:00
Stefanos Kornilios Mitsis Poiitidis
1dbc0d73df
nixprof: Fix printf, PRI & friends don't exist on android
2015-09-17 01:06:47 +02:00
Stefanos Kornilios Mitsis Poiitidis
56f8ffac0e
Merge pull request #807 from randomstuff/nixprof
...
Nixprof: some enchancements
2015-09-04 19:55:19 +02:00
Gabriel Corona
2a469b1def
nixprof: fix notation for Hz
2015-09-03 21:08:39 +02:00
Gabriel Corona
8fc2d5d069
nixprof: only save STT_FUNC
2015-09-03 21:08:35 +02:00
Gabriel Corona
ceca8c72bf
nixprof: make it work with ELF64
2015-09-03 21:08:29 +02:00
Gabriel Corona
c87307162d
nixprof: Use sh_type insteaf of sh_name for section identification and use SHT_SYMTAB
2015-09-03 21:08:24 +02:00
Gabriel Corona
ad068dcff2
Bind profiling in X11 to F10
2015-09-03 21:08:13 +02:00
Jan Holthuis
4267d51f90
stdclass: Make path getter function names more verbose
2015-09-02 15:49:00 +02:00
Jan Holthuis
b6d0cddcaa
stdclass: Add support for separate config/data dirs and system wide dirs
...
This adds support for separate config and data dirs.
On Linux, these will be compliant XDG Basedir Specification, i.e.
XDG_CONFIG_HOME and XDG_CONFIG_DIRS (or XDG_DATA_HOME and XDG_DATA_DIRS
respectively). On all other platforms, there currently just set to the
homedir path (so no previous behaviour has been changed).
If reicast wants to read and write a data file, it just calls
get_data_path("/samplefile.txt"). If it does not need to write to
that file, it just uses get_data_path("/samplefile.txt", false). That
way, we can also use system-wide dirs (like /usr/share/reicast on
linux), that the user usually doesn't have write access to.
The same applies for config file, where you use get_config_path(args)
respectively.
2015-09-02 15:48:53 +02:00
Gabriel Corona
4ad6db345b
nixprof: make private stuff static
2015-08-28 18:26:41 +02:00
TwistedUmbrella
e138cca4b9
Remove internal conditionals to use defined flag
2015-08-20 17:21:47 -04:00
TwistedUmbrella
bf75c95ae8
Update project for #755 and fix warnings
2015-08-17 07:59:39 -04:00
Stefanos Kornilios Mitsis Poiitidis
1908ade464
Update context.h
2015-08-11 08:05:09 -04:00
Stefanos Kornilios Mitsis Poiitidis
26cfcd79e9
OSX: Fiddling to get the rec-cpp/noexcept path running
2015-08-11 07:57:22 -04:00
Stefanos Kornilios Mitsis Poiitidis
289aa393c0
nacl: fixing affected android build
2015-07-29 05:17:16 +02:00
Stefanos Kornilios Mitsis Poiitidis
4f86496773
linux/common: Stub out LockRegion/UnLockRegion when TARGET_NO_EXCEPTIONS
2015-07-29 04:21:54 +02:00
Stefanos Kornilios Mitsis Poiitidis
255d1bdb42
nacl: Stub out LockRegion/UnLockRegion as no mprotect logic
2015-07-29 04:19:12 +02:00
Stefanos Kornilios Mitsis Poiitidis
2eb9d7908f
A first hackthrough to get nacl compiling working
2015-07-29 04:17:31 +02:00
Stefanos Kornilios Mitsis Poiitidis
c8f982b8f5
linux-common: TARGET_NO_EXCEPTIONS, TARGET_NO_THREADS
2015-07-29 04:08:05 +02:00
~skmp
518c547fb5
nixprof: move to its own module, TARGET_NO_NIXPROF, NO_NIXPROF
2015-07-29 04:08:04 +02:00
Jan Holthuis
3faf51c6ce
Removed mode variable in print_mem_addr()
...
This removes the mode variable in core/linux/common.cpp's
print_mem_addr(). It not neccessary and produces compiler warnings.
2015-07-27 19:12:28 +02:00