Flyinghead
20bff396c3
win32: more build fix
2019-06-30 21:46:33 +02:00
Flyinghead
40c841a057
win32: build fix
2019-06-30 21:39:38 +02:00
Flyinghead
7bcd985276
win32: logging fixes
2019-06-30 21:28:30 +02:00
Flyinghead
8404c6322c
New logging framework stolen from dolphin
2019-06-30 21:06:46 +02:00
Flyinghead
ec0d21148d
L.O.L and Miss Moonlight need RTT to vram option
2019-06-30 13:33:15 +02:00
Flyinghead
838cbe59e3
gl4: get rid of scaling params and use normalized coords in abuffer
...
add Eternal Arcadia and Yu Suzuki Game Works to render rtt to vram game list
2019-06-30 11:40:42 +02:00
Flyinghead
a14bf29f5f
gl4: scaling and coords must be different with rtt vs screen
2019-06-28 18:26:36 +02:00
Flyinghead
5f5f300604
gl4: fix issue with RTT regarding buffer dimension
...
fixes shadow in THPS 1 & 2
2019-06-28 17:37:06 +02:00
Flyinghead
0a95a60ac6
less verbose logs. unbuffered stdout when test automation
2019-06-28 11:42:35 +02:00
Flyinghead
99778a7715
per-pixel renderer: RTT might need bigger buffers than screen
2019-06-27 22:41:16 +02:00
Flyinghead
e6b8c46557
atomiswave: fix coin error
2019-06-27 09:03:49 +02:00
Flyinghead
871260cfcf
naomi: better error handling when loading a gdrom
...
x64 and arm64 dynarecs: Support 64-bit immediate readm (ninjaslt)
2019-06-26 19:06:30 +02:00
Flyinghead
927298f353
naomi: fix coin chute (compiler bug?). Disable verify in TA parsing
...
Fix F1 World Grand Prix for Dreamcast
2019-06-25 19:10:20 +02:00
Flyinghead
7dab84fd80
vmem handlers: last block wasn't mapped
2019-06-24 22:56:07 +02:00
Flyinghead
c27975fb37
ssa: don't propagate const over interpreter fallback, sync_sr and sync_fpscr
...
rec-x64: support immediate args for xtract
Set write rtt to vram for Super Speed Racing (a.k.a Flag to Flag)
2019-06-24 18:56:09 +02:00
Flyinghead
f862903a74
Don't unprotect vram when a texture is updated
...
Adjacent textures in other pages still need vram protection
Fixes texture corruption in many games since ad5ab6240b
2019-06-23 21:30:46 +02:00
Flyinghead
91717d706a
wince: disable vmem32 for Marionette Company 1 & 2 and Rune Jade
2019-06-23 17:06:59 +02:00
Flyinghead
112e272075
renderer: support non-integer v-scaling factor
...
Fixes missing half-screen in Wacky Races (PAL), Buzz Lightyear of Star Command (PAL),
Tom Clancy's Rainbow Six - Rogue Spear + Mission Pack - Urban Operations (PAL), Sega Worldwide Soccer 2000 (PAL)
Input record and replay support for test automation
2019-06-23 12:17:24 +02:00
Flyinghead
862d892e89
texture corruption resulting from misaligned page unprotection
2019-06-21 23:31:45 +02:00
Flyinghead
49b49c5207
don't write-protect BIOS and IP.BIN blocks
...
Fixes Grandia II crash at start on arm.
Fix bug in bm_GetBlock()
2019-06-21 16:18:34 +02:00
Flyinghead
b226544d03
Merge remote-tracking branch 'origin/master' into fh/wince-dynarec
2019-06-21 14:37:32 +02:00
Flyinghead
aa36a65d13
log tag name change
2019-06-21 14:29:22 +02:00
Flyinghead
d1550357ce
fix verify failed when switching to overview (app list) on android
2019-06-21 14:10:04 +02:00
Flyinghead
5b2ad02fa2
this wasn't supposed to be committed
2019-06-21 13:33:55 +02:00
Flyinghead
3e8cdc76f3
wince: fix load state hanging
2019-06-21 13:17:34 +02:00
Flyinghead
f29569cf5d
more name change
2019-06-20 23:46:20 +02:00
flyinghead
a49fbc797f
more name change
2019-06-20 22:57:32 +02:00
Flyinghead
9f66847469
name change
2019-06-20 21:50:19 +02:00
Flyinghead
af2ba55bac
rec-arm: fix immediate writem bug. clean up
...
get rid of unused and unstable opts
div32p2 implementation (untested)
Fixed canonical test mode
2019-06-20 19:31:43 +02:00
Flyinghead
70ea7c4d76
ssa: use canonical implementations to compute const ops
2019-06-20 19:27:21 +02:00
Flyinghead
6ed098a929
wince: enable code block protection
2019-06-19 22:55:47 +02:00
Flyinghead
cb338ae106
enable NoBatch when FullMMU is on for WinCE games
2019-06-19 22:52:19 +02:00
Flyinghead
becb0a5efe
renderer: when a RTT frame is rendered, swap any pending frame first
...
Fixes Tony Hawks 1 & 2 black screen issue
2019-06-19 15:10:28 +02:00
Flyinghead
ad5ab6240b
refactor vram lock/unlock code into new vmem.cpp functions
2019-06-19 14:49:14 +02:00
Flyinghead
13a2f8bc61
win32: build fix
2019-06-19 11:14:12 +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
8d8e694e23
swap setpeq args in ssa if first is imm
2019-06-18 13:25:43 +02:00
Flyinghead
3d8b0df789
rec-x64: setpeq native impl. Fix imm mem write for byte and short
...
Optimize fneg, fabs and sub
Fix cvt_f2i
Fix fsca with imm arg
2019-06-18 13:16:42 +02:00
Flyinghead
419370084e
rec-x86: ssa support
2019-06-14 23:34:18 +02:00
Flyinghead
8506355447
wrap aica ram to 8MB instead of only 2MB (dc)
...
fix crash with GuruGuru Onsen 2 and HeadHunter
2019-06-13 21:58:09 +02:00
Flyinghead
7120512205
wince: use exceptions in dyna/decoder.cpp and catch them in driver.cpp
2019-06-13 18:36:08 +02:00
Flyinghead
e0949fb9aa
Fix div matching: support 64-bit div and correct handling of negative
...
Some games do 64-bit / 32-bit division (Pro Pinball Trilogy)
DIV0s/1 use and output 1's complement numbers
The final reminder fixup wasn't correct for negative dividend
2019-06-13 18:27:21 +02:00
Flyinghead
de86aae73e
rec-arm: XTRCT implementation
2019-06-12 17:46:53 +02:00
Flyinghead
c49694599c
rec-arm: use ssa regalloc
...
add `subc a,a` expression to simplify
2019-06-12 17:31:37 +02:00
Flyinghead
e537d92bcc
ssa: don't simplify FPU ops because of Inf of NaN
2019-06-12 08:52:42 +02:00
Flyinghead
ff745ee4fe
fix xtrct canonical implementation
2019-06-10 19:17:24 +02:00
Flyinghead
a4453c0a81
Fix vmem in 512MB mode
2019-06-10 19:01:56 +02:00
Flyinghead
2c3b516341
x64: use eax instead of ecx for mem reads return value
2019-06-10 14:48:54 +02:00
Flyinghead
8819c9d536
arm64: handle pref with imm arg. some refactoring
2019-06-10 14:35:27 +02:00
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