Flyinghead
3dd16e80d2
arm64 and x64 recs use ssa regalloc
2019-06-10 13:57:10 +02:00
Flyinghead
623d70d710
ssa register allocator and more ssa stuff
2019-06-09 19:41:42 +02:00
Flyinghead
bd30752b86
Use auto& to avoid copy when iterating. Inline mmu_Read/WriteMemNoEx
2019-06-08 13:04:35 +02:00
Flyinghead
0890150dda
dynarec: ssa missing changes
2019-06-04 21:27:45 +02:00
Flyinghead
692556ca5d
dynarec: ssa initial commit
2019-06-04 21:20:34 +02:00
Flyinghead
b8a00b9c7d
rec-arm64/x64: only do regalloc on rewrite when needed
2019-05-28 20:03:08 +02:00
Flyinghead
714de0303e
rec-x64: don't save fp regs when calling mem access handlers
2019-05-28 19:43:56 +02:00
Flyinghead
cafd1c3c49
rec-arm64: do a full regalloc when rewriting mem access in mmu mode
2019-05-28 19:43:17 +02:00
Flyinghead
4540acc22e
mmu: optimize mmu_full_SQ()
2019-05-28 19:41:21 +02:00
Flyinghead
8cb86de026
Make SMCCheck=Fast work on arm64
...
The issue is that flushing the dynarec cache makes rewriting fail for
the currently executing block. So this avoids flushing the cache too
often but the problem remains.
2019-05-28 19:40:30 +02:00
Flyinghead
51cf6cf271
regalloc: handle mem ops differently in wince mode
...
Flush all current writeback spans before the op
Flush instead of killing spans in case the mem access throws an
exception
Some optimizations
2019-05-28 19:37:24 +02:00
Flyinghead
c6e92028f2
regalloc: cleanup. no functional change
2019-05-27 22:44:51 +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
506756ea37
android: use common rend_thread() instead of a specific one
...
fixes the swap pending issue (double swap) on android
2019-05-25 18:48:00 +02:00
Flyinghead
2c91ca96fc
rec-arm64: fix transitions to/from mmu
...
exit mainloop() before regenerating it
make sure dynarec cache is cleared between runs
when deserializing, clear dynarec cache after setting mmu state
2019-05-25 18:03:18 +02:00
Flyinghead
e7e387b443
wince: enable/disable vmem32 based on mmu state
2019-05-24 18:19:33 +02:00
Flyinghead
cc4b59f5fa
rec-arm64: generate main loop dynamically
...
different code for mmu vs. !mmu
Switching mmu state not yet supported
2019-05-24 18:18:32 +02:00
Flyinghead
fa10b9ed2f
Wrong offset in VramLockedWrite
2019-05-24 17:44:54 +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
bc42f8a785
wince: revert prior serialize changes
2019-05-22 16:44:45 +02:00
Flyinghead
5b7d07315b
wince: clean up unused stuff
2019-05-22 15:15:53 +02:00
Flyinghead
94e03b2cfd
win32: fix build. disable appveyor msvc build
2019-05-22 14:28:11 +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
Flyinghead
86cabf8553
wince: delete bogus half-life game id
2019-05-21 19:28:54 +02:00
Flyinghead
d55d803c16
gles2 build fix
2019-05-21 19:11:47 +02:00
Flyinghead
2e5eaa6e2b
Log error when writing to flash ram
2019-05-21 18:27:43 +02:00
Flyinghead
37f379fe6b
Better HBlank implementation
2019-05-21 18:27:15 +02:00
Flyinghead
582c9f358c
rec-cpp: crash when running rom
2019-05-21 18:18:47 +02:00
Flyinghead
3d67d39187
fix warning
2019-05-21 16:50:38 +02:00
Flyinghead
3bf32f5adf
Merge remote-tracking branch 'origin/fh/limitfps-option'
2019-05-21 11:42:07 +02:00
Flyinghead
a17b8355e5
gdrom: use memset to reset read_buff
2019-05-21 11:34:51 +02:00
Flyinghead
74e7a95484
simplify test
2019-05-21 11:34:15 +02:00
Flyinghead
121e6b200b
Reset gdrom params when changing disk
2019-05-21 11:29:44 +02:00
Flyinghead
a5ae8eeef0
Reset flashrom on reset
2019-05-21 11:29:25 +02:00
Flyinghead
25a7fede2e
save states: don't serialize gamepad state
2019-05-21 11:29:10 +02:00
Flyinghead
05f461c3c5
Use FB_R_SOF2 only to detect direct FB writes
...
Fixes flashing video in Virtua Fighter 3tb
2019-05-21 11:26:48 +02:00
Flyinghead
74844c8940
disable per-pixel renderer on OSX
2019-05-21 11:26:18 +02:00
Flyinghead
433590b610
rend: Add per-strip TR sort option
2019-05-21 11:24:03 +02:00
Flyinghead
4cfcf2ea83
alsa: don't spam console if underrun
2019-05-20 19:13:08 +02:00
Flyinghead
07b3f83343
audio: new option for automatic limitFPS
...
LimitFPS now can be enabled, disabled or automatic. The latter option
doesn't wait for audio if the emulator is running slow (over the last 2
secs)
Renamed `Audio Backend` to `Audio Driver` in the UI.
2019-05-20 19:12:28 +02:00
Flyinghead
ac43a8c54e
don't swap gl buffer until FB_R_SOF is set to the rendered framebuffer
...
Fixes flashing screens in South Park: Chef's Luv Shack, NFL Quarterback
Club 2000
Glitchy videos: The Next Tetris, Nightmare Creatures II, Rune Jade
Flashing rear-view mirror in Metropolis Street Racer
2019-05-17 17:13:48 +02:00
Flyinghead
8d078a923b
wince: force aica.NoBatch (missing change)
2019-05-17 17:01:20 +02:00
flyinghead
a6b773a23e
Merge pull request #1603 from reicast/fh/gles-dynload
...
Fix build errors on GL ES 2.0 platforms (RPi...)
2019-05-17 12:15:07 +02:00
flyinghead
37d95e9fea
Merge pull request #1606 from reicast/dd/cmake-msvc-fixes
...
Fixes for cmake + msvc
2019-05-16 18:40:08 +02:00
hissingshark
b0b63d4894
Fix typo induced build error
2019-05-16 16:05:47 +01:00
flyinghead
3ef363733d
wince: fix setjmp/longjmp on windows
2019-05-16 16:57:35 +02:00
drhilarius
c92a997f11
Fixes for cmake + msvc
...
Also now builds .asm file for dynarec jit with msvc
2019-05-16 03:05:16 -07:00
flyinghead
66cbc0acf6
wince: dynarec boost 1.2 -> 1.5
2019-05-15 15:26:08 +02:00
Flyinghead
f0ebd2b818
wince: force aica.NoBatch
2019-05-15 14:00:36 +02:00
Flyinghead
6053a465f7
fix win32 build
2019-05-15 13:07:52 +02:00
Flyinghead
d9f2f9ae1d
rend: define GLES2 and GLES3
...
GLES2 will only use GL ES 2.0 API functions, compile-time linked
GLES3 loads functions dynamically and supports both GL ES 2.0 and 3.0
2019-05-15 12:54:03 +02:00
Flyinghead
0dd555c5c8
Merge branch 'master' into fh/gles-dynload
2019-05-15 11:49:57 +02:00
Flyinghead
2434d0183e
wince: better sh4 instr cycle counting. Don't hash blocks if mmu on
...
Use actual instr latency cycles, including fp instr
Decrease the WinCE boost ratio to 1.2
Don't hash blocks when mmu on
2019-05-14 12:38:56 +02:00
David Guillen Fandos
3463872fdf
Fix small clang build issue.
2019-05-13 01:35:40 +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
David Guillen Fandos
cbc2af29ad
Fix small issues for mingw builds on Linux
...
Doenst like the paths, big surprise. I tipically build it like:
make platform=win32 CXX=x86_64-w64-mingw32-g++ \
WINDRES=x86_64-w64-mingw32-windres \
CC=x86_64-w64-mingw32-gcc
2019-05-12 17:44:19 +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
6cba98b70a
Allocate missing SH4CB and make lock more forgiving.
2019-05-12 00:02:24 +02:00
David Guillen Fandos
1a4323c1ce
Fix runtime issue in Windows target, was not mapping pages correctly.
2019-05-11 23:13:58 +02:00
David Guillen Fandos
4458dac49a
Fixing some missing imports and a bug in pointer tracking.
2019-05-11 22:35:17 +02:00
David Guillen Fandos
555b39b7e5
Merge remote-tracking branch 'origin/master' into vmemstuff2
2019-05-11 22:11:24 +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
flyinghead
ec9706876c
Merge pull request #1596 from davidgfnet/x86fix
...
Hack-fix the x86 JIT so that it builds.
2019-05-11 14:27:41 +02:00
David Guillen Fandos
08285cf49c
Hack-fix the x86 JIT so that it builds. I guess that's why Win32 fails too
2019-05-11 13:37:13 +02:00
flyinghead
95a13d79b7
Merge pull request #1593 from reicast/fh/gl3-fallback
...
x11: fix fallback to gl 3.0. fix crash when switching renderer.
2019-05-11 00:38:44 +02:00
flyinghead
7f2fcfde6f
wince: don't use setjmp/longjmp on windows
2019-05-10 22:31:59 +02:00
flyinghead
e6794743ad
wince: rec-x64 fix for win32
...
fix GDI on windows
2019-05-10 21:21:30 +02:00
David Guillen Fandos
2389903a30
Add dummy serialization for non-modem builds (right now only Win)
2019-05-10 19:38:45 +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
c5a74ccfb7
Fix Sort-DMA
2019-05-10 16:10:07 +02:00
Flyinghead
eb725f9e66
x11: fix fallback to gl 3.0. fix crash when switching renderer.
...
Fallback to GL 3.1 when GL 4.3 isn't available was broken.
Fallback to GL 3.0 instead of 3.1.
Fix crash when switching renderer (per-pixel, per-triangle)
2019-05-10 11:15:44 +02:00
David G. F
afcd7a08a3
Merge pull request #1571 from davidgfnet/modemfix
...
Add ENABLE_MODEM and rework makefiles to support it.
2019-05-10 01:09:35 +02:00
Flyinghead
77c1389921
wince: disable vmem32 for games that abuse it
2019-05-09 21:47:01 +02:00
David G. F
1b89fcd5ba
Merge pull request #1587 from davidgfnet/master
...
Minor improvements for ARMv8
2019-05-09 18:45:30 +02:00
Flyinghead
05577b64f7
wince: return actual vmu system area in GetMediaInfo
...
revert previous default vmu change
2019-05-09 11:25:17 +02:00
David GF
5ba56627a9
Optimize rec-ARM64 by emitting less instructions on loads.
...
Fast load uses 3 or 4 insts, whereas slow load takes 2+.
On A57 measured ~3% perf, which is expected for an OOO CPU, hopefully
perf will be much better on A53 and other in-order CPUs.
2019-05-09 00:10:01 +02:00
Flyinghead
dc7f608461
wince: fix vmu issues
2019-05-08 22:31:59 +02:00
David G. F
15c7e982ca
Merge pull request #1585 from davidgfnet/sdl2audio
...
Add SDL2 audio backend.
2019-05-08 22:20:49 +02:00
Flyinghead
3cd9736fca
Ignore vscalefactor if < 1
...
fix black screen on some intel platforms
2019-05-08 21:33:49 +02:00
David Guillen Fandos
ed8bcd7329
Add SDL2 audio backend.
...
The backend supports 44.1KHz and 48KHz (with resamping). The resampler
is not great, has some noise but no idea where it comes from.
This enables the switch port, since using SDL2 is the quickest way
to get audio working.
TODO: Add support in the cmake, once cmake is fixed at master/HEAD.
2019-05-08 21:04:11 +02:00
Flyinghead
c330cdd88e
fix scissor test and vertical scaling when using the Y scaler
...
Fixes missing bottom half-screen in Mr Driller (PAL, 60 Hz), Kaen Seibo,
Mahjong Taikai II Special, Pon'n'Music 1 and 2 when in TV Composite and
RGB.
Fixes stretched screen in Cho - Hatsumei Boy Kanipan.
2019-05-06 15:23:54 +02:00
Flyinghead
f2696a4b47
osx: add new files to project
2019-05-03 11:53:14 +02:00
skmp
3f8328da25
Merge pull request #1568 from reicast/baka/audio_options
...
AUDIO: Allow backend specific settings
2019-05-03 03:57:17 +03:00
skmp
397302b379
Merge pull request #1579 from reicast/ghz/speedlimit
...
audio wait only if fullspeed (improvements over #1577 )
2019-05-03 03:53:43 +03:00
Christoph "baka0815" Schwerdtfeger
99033e297c
AUDIO: Implement integer and checkbox options
...
I remove "text" as a possibility for the moment as we're currently not having **any** text option.
2019-05-02 20:24:49 +02:00
Christoph "baka0815" Schwerdtfeger
139ef22408
AUDIO: compile fixes for coreaudio, dsound and libao
2019-05-02 19:02:34 +02:00
Christoph "baka0815" Schwerdtfeger
dc709c604f
ALSA: prefix output with "ALSA:"
2019-05-02 18:49:44 +02:00
Christoph "baka0815" Schwerdtfeger
5678556cb6
ALSA: Rework initialization of pcm device
...
As we can now configure the alsa device in the GUI, it's no longer necessary to write the first working device back to the configuration.
Also there is now the "auto" device to automatically try to initialize the alsa device.
2019-05-02 18:48:09 +02:00
Christoph "baka0815" Schwerdtfeger
684ba26ec0
AUDIO: Reorganize settings
...
Move DSP and FPS above the slug selection so that all slug specific settings are after the slug selection.
2019-05-02 18:41:45 +02:00
David Quintana
f307f9d5ad
Simplify. Smoothing adds no value there.
2019-05-02 03:36:10 +02:00
David Quintana
ac9e6d147d
Change speed-dependant limiting to rely on time dilation instead of frame rate.
2019-05-02 03:21:22 +02:00
david miller
c681dc77dc
Win32 fullscreen via alt-enter
2019-05-01 19:11:35 -04:00
David Miller
d6f682a329
audiostream only wait if at speed
2019-05-01 12:01:45 -04:00
flyinghead
0d19da2b4b
wince: disable vmem32 on windows
2019-04-30 17:43:21 +02:00
Flyinghead
f0fab09d7c
yet more win32 fix
2019-04-29 18:49:31 +02:00
Flyinghead
920a93b19c
more win32 fix
2019-04-29 18:38:28 +02:00
Flyinghead
4f4d99872b
win32 build fix
2019-04-29 18:33: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
Flyinghead
693a6c97f3
vmem: revert aica ram mapping change. Fix ptr diff overflow in 64-bit
...
Aica ram mapping conflicts with P4 store queues in arm dynarecs
2019-04-28 20:46:18 +02:00
Flyinghead
6b78e1f879
fix dynarec regression
2019-04-28 20:41:39 +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
David Guillen Fandos
7b50d5df8c
Add ENABLE_MODEM and rework makefiles to support it.
2019-04-27 12:05:13 +02:00
Christoph "baka0815" Schwerdtfeger
0a3c361da2
AUDIO: Allow backend specific settings
2019-04-24 21:41:38 +02:00
Flyinghead
011849ea74
wince: arm64 dynarec fixes
2019-04-19 17:20:55 +02:00
Flyinghead
553f6054ce
NO_MMU build fixes
2019-04-19 11:56:11 +02:00
Flyinghead
9920880987
dynarec: reserve code cache space for frequently changing blocks
...
detect frequent SMC check failures and use a specific code cache area
for these blocks.
flush the temp area when full but keep the main code cache area
2019-04-19 11:45:05 +02:00
Flyinghead
76348b13ce
wince: use cpu ratio of 2 in dynarec
2019-04-19 09:58:25 +02:00
Flyinghead
d82e5e2017
don't use mmu for dma
2019-04-18 22:48:37 +02:00
Flyinghead
0f34d776f6
wince: delete sr.FD hack, restore FD block check in x64 rec
...
use longjmp for interpreter fallback exceptions
2019-04-18 14:15:01 +02:00
Flyinghead
d68da6bdd4
wince: let fp disable exception run before compiling a block
2019-04-18 13:55:10 +02:00
Flyinghead
a25918839b
save fpu regs when sr.FD is set, and restore them when unset
2019-04-15 19:02:10 +02:00
Flyinghead
5d6e96463c
x64 and win32 build fixes
2019-04-15 18:31:15 +02:00
Flyinghead
dece3fc13e
wince: use setjmp/longjmp instead of try/catch for dynarecs
...
WinCE fast mmu implementation
WIP arm64 dynarec
2019-04-15 18:02:34 +02:00
david miller
3157520dee
mingw64 fixes
2019-04-12 19:15:31 -04:00
david miller
6539b8c247
_mkdir guard
2019-04-12 18:24:11 -04:00
david miller
803cad95f9
gcc flags & misc
2019-04-12 18:13:09 -04:00
david miller
68ee192ad4
compiler def. fixes
2019-04-12 18:08:36 -04:00
david miller
b6c234b71b
revert to using strcasecmp for other platforms
2019-04-12 17:19:40 -04:00
david miller
cc9d5ec55b
CMake/Master working, tested on windows with Clang && MSC (x86,x64)
2019-04-12 16:59:39 -04:00
David Miller
3d1b82854e
Merge branch 'master' into fh/win32-winresize
2019-04-12 13:03:30 -04:00
flyinghead
8cdbb9c2fd
Merge pull request #1548 from reicast/fh/float-vmu
...
Float VMU option. Android renderer native thread. 90° screen rotation option. AW fixes.
2019-04-10 21:53:41 +02:00
Flyinghead
13341ecd59
maple: process_kcode -> transform_kcode
2019-04-10 11:31:08 +02:00
Flyinghead
0445542ec2
gl: 90deg screen rotation option. Fix scissor/clip wrt scale/stretch
...
90deg CC screen rotation option for some arcade games
Fix scissoring and clipping when screen scaling/stretching/rotating
Clear shader cache when screen rotation changes
Properly delete all gl programs and shaders when needed
2019-04-09 15:18:48 +02:00
Flyinghead
37a533740b
win32: close thread handle when finished
2019-04-09 10:37:49 +02:00
Flyinghead
1b04ef4cb1
Get rid of RTC in settings
2019-04-08 22:09:22 +02:00
Flyinghead
0a6f503efc
Don't use screen stretching parameter for RTT
2019-04-08 21:51:59 +02:00
Flyinghead
b87a1cc31a
atomiswave: setup maple controls depending on game
...
more lightgun fixes but still not working
2019-04-08 19:14:55 +02:00
baka0815
56374377dd
Merge pull request #1543 from reicast/baka/select_audio
...
AUDIO: Make backend configurable
2019-04-08 18:33:53 +02:00
Flyinghead
cf7434a9e6
atomiswave: fix coin input. Subclass sega controller instead of #def
2019-04-08 17:09:10 +02:00
Flyinghead
f5a60ee5f1
New option to display VMUs in game
2019-04-08 15:54:37 +02:00
Flyinghead
47bb509f02
Add horizontal screen stretching option
...
fix scissor test when scaling/stretching
fix infiniloop when starting a game fails
2019-04-08 00:21:06 +02:00
Flyinghead
408d16b299
imgui: clear color buffer before drawing background tex
...
fixes blinking edges on nvidia shield and other glitches
2019-04-07 23:33:24 +02:00
Flyinghead
4b7e4f4677
custom textures: fix race conditions
2019-04-06 19:38:00 +02:00
Flyinghead
e8205e568b
naomi/aw: fix atomiswave and naomi inputs
...
atomiswave analog axes support
map atomiswave and naomi driving games inputs
2019-04-06 19:36:57 +02:00
Christoph "baka0815" Schwerdtfeger
16f9200bfa
AUDIO: Allow selection of backend
2019-04-05 22:22:46 +02:00
Christoph "baka0815" Schwerdtfeger
b8ae61bc5c
AUDIO: Sort audio plugins by name
2019-04-05 21:14:42 +02:00
Christoph "baka0815" Schwerdtfeger
b443fe9b25
AUDIO: make the plugins self-registering
...
No need anymore for the RegisterAllBackends() function and all plugins in one place.
Use a static boolean to register every plugin by itself.
2019-04-05 21:05:18 +02:00
flyinghead
7e11e7aff6
Merge pull request #1541 from reicast/fh/dpad-fix
...
Avoid opposite dpad buttons being both down. Ignore android key repeats
2019-04-05 15:42:34 +02:00
Flyinghead
0b7024f6a0
Avoid opposite dpad buttons being both down. Ignore android key repeats
2019-04-05 14:48:59 +02:00
Flyinghead
d524e3381d
only update the fog texture if fog is enabled
2019-04-04 22:54:36 +02:00
Flyinghead
05df2f06e2
imgui: use glcache, don't save/restore state
...
gl4: backport shader map changes from gl renderer
2019-04-04 22:26:21 +02:00
Flyinghead
3a73938240
UI for fog disable option
2019-04-04 20:05:13 +02:00
Flyinghead
ec95c95b89
add option to disable fog effects
2019-04-04 19:26:15 +02:00
Flyinghead
994d52e012
gl: put shaders in a map and set uniforms once for all before each frame
2019-04-04 19:08:21 +02:00