Flyinghead
0bd95cbba8
Delay Frame Swapping option to enable FB_R_SOF == FB_W_SOF detection
2019-09-09 14:58:53 +02:00
Flyinghead
fbdbd2491d
aica: implement pitch LFO and LPF envelope
...
simplify channel serialization
optimize aica channel reg write callbacks
2019-09-09 11:32:03 +02:00
scribam
49b7e0682b
Cleanup
2019-09-07 20:36:13 +02:00
scribam
e0fb50488d
deps: Update xxhash integration
2019-09-06 21:05:19 +02:00
Flyinghead
d1c3d31259
aica: save quantization and last sample when entering loop for normal adpcm
2019-09-06 13:53:01 +02:00
Flyinghead
7287b3816b
aica: don't reset the adpcm decoder when looping
...
also don't decode past LEA, use LSA instead
2019-09-05 18:17:53 +02:00
Flyinghead
a50ed2cc7d
dsp: fix SHIFTER and ACC shift values. Simplify
2019-09-05 15:45:14 +02:00
Flyinghead
713705a6fe
dsp: fix errors in PACK and UNPACK functions
2019-09-05 15:45:14 +02:00
scribam
bdf2029e99
Simplify libpng/zlib integration
2019-09-04 19:59:51 +02:00
Flyinghead
5b9892425f
naomi: game detection fails on windows when mixing / and \
2019-09-03 19:18:11 +02:00
Flyinghead
b4d33a6c70
Merge remote-tracking branch 'origin/master' into fh/hle-bios
2019-09-03 19:14:39 +02:00
Flyinghead
ee1ee56824
proper hard reset of sh4 mm registers
...
more clean up
2019-09-01 23:10:04 +02:00
Flyinghead
aadc9c3bfc
Detect game region/vga support and set options accordingly
...
Better IP.BIN parsing (wince, vga)
Use wince flag and boot filename for wince detection
Switch to TV composite if vga unsupported
Switch to supported BIOS region if current is unsupported or default
2019-09-01 16:35:12 +02:00
Flyinghead
61f4cd4ecd
Merge remote-tracking branch 'origin/master' into fh/hle-bios
2019-08-31 22:10:09 +02:00
Flyinghead
5ca6cacf25
reios: fix wince exception due to unaligned pio xfer
2019-08-31 20:53:42 +02:00
Flyinghead
936cd6781b
clean up
2019-08-31 17:36:34 +02:00
scribam
d826d8123a
msvc: Fix DYNACALL/__fastcall usage
2019-08-31 14:46:30 +02:00
Flyinghead
e07879e43c
maple: std controller input mask was applied to all gamepad devices
2019-08-30 23:37:43 +02:00
Flyinghead
2015d9a696
rename and clean up
2019-08-30 23:35:10 +02:00
Flyinghead
79231d8961
missing change
2019-08-30 14:39:33 +02:00
Flyinghead
bae43c236e
dynarec: use paddr to check for bios blocks + more
2019-08-30 14:11:15 +02:00
Flyinghead
cc6190f261
flash: use rewritten blocks when allocating a new one
2019-08-30 13:59:15 +02:00
Flyinghead
e173b83574
New option to force WinCE mode
2019-08-28 20:47:47 +02:00
scribam
269297be18
Use _WIN32 to handle Windows specific code
2019-08-28 20:37:53 +02:00
scribam
1b002ae0da
Use __GNUC__ to handle GCC specific code
2019-08-28 20:37:53 +02:00
scribam
51d181a46c
Use _MSC_VER to handle specific Visual Studio code
2019-08-28 20:37:53 +02:00
scribam
61382316c9
Use __ANDROID__ to handle specific Android code
2019-08-28 20:37:53 +02:00
flyinghead
02b450ff19
Fix vram and code block protection in 32-bit mode
2019-08-28 14:08:13 +02:00
scribam
148033625c
wince: Add missing preprocessor TRACE_WINCE_SYSCALLS
...
unresolved_ascii_string and unresolved_unicode_string only exist if
TRACE_WINCE_SYSCALLS is defined
2019-08-22 20:22:56 +02:00
Flyinghead
cc8bab249f
reios: serialize hle bios state. Fix save state compat with upstream and libretro
2019-08-19 18:19:27 +03:00
Flyinghead
7c8ce6267a
use lroundf(x) instead of x + 0.5f
2019-08-17 18:19:33 +03:00
Flyinghead
aaf950d470
Add default ISP information to flashrom
2019-08-14 20:05:42 +02:00
Flyinghead
e34df4fed1
Support for Internet Game Pack game
2019-08-14 09:17:07 +02:00
Flyinghead
3e1956b949
reios: hle bios option now forces hle use
...
fallback to hle bios happens if no bios file found regardless of option
2019-08-13 17:12:29 +02:00
Flyinghead
93e009bf1a
gl: use matrices for ndc and viewport calculations
...
Support VO_STARTX and VO_STARTY for shifting displayed frame
Add glm to deps
Calculate NDC, scissoring and viewport matrices once
Reduce code duplication
2019-08-12 19:56:44 +02:00
Flyinghead
7ff225bfa0
PVR: detect direct FB writes in non-interlace. Fix packed 888 FB format
2019-08-09 12:03:09 +02:00
Flyinghead
8bd2450608
comments/logs clean up
2019-08-08 08:20:15 +02:00
Flyinghead
e162f3ac83
reios: cdda support
2019-07-31 22:08:56 +02:00
Flyinghead
55f76d02c0
reios: fix flashrom write
...
Fixed language selection that was being ignored (also w/ bios)
2019-07-31 17:59:53 +02:00
Flyinghead
6059831ec7
reios fixes
2019-07-30 19:04:51 +02:00
Flyinghead
1fffbad9fc
Fix build warnings. config.h for flac
2019-07-28 18:49:59 +02:00
Flyinghead
9791ebebce
wince: fix wince page lookup
2019-07-28 18:28:22 +02:00
Flyinghead
1333d6f776
Remove TARGET_BOUNDED_EXECUTION. Build warnings and clean up
2019-07-28 17:37:04 +02:00
Flyinghead
a9dbbccf93
Unprotect VRAM before switching system. Fix texture cache clean
2019-07-28 17:06:12 +02:00
Flyinghead
591ebf0ba6
Merge branch 'fh/wince-dynarec' of https://github.com/flyinghead/flycast into fh/wince-dynarec
2019-07-28 13:04:05 +02:00
Flyinghead
d27ab0361c
arm build fix
2019-07-25 21:51:48 +02:00
Flyinghead
4dfa83079a
aica and arm7 clean up
2019-07-25 21:34:43 +02:00
Flyinghead
2529b5048e
get rid of useless macro
2019-07-24 19:09:54 +02:00
Flyinghead
32055c3bf9
Better error messages when BIOS files missing
2019-07-24 18:53:09 +02:00
Flyinghead
9932d9bf43
OSX: fix bios files path (now in /data/)
2019-07-24 18:24:58 +02:00
Flyinghead
1375536534
fix android intent-filter. fix spurious maple warning
2019-07-13 15:30:10 +02:00
Flyinghead
326bc580ec
Merge branch 'fh/unified' into fh/wince-dynarec
2019-07-13 12:50:19 +02:00
Flyinghead
bbc11a30aa
Naomi rename vars and clean up. Logging changes.
2019-07-13 12:44:10 +02:00
Flyinghead
e63d7d717e
Fix Restart crash. Clear texture cache during reset
2019-07-13 10:59:20 +02:00
Flyinghead
68acf48d64
Support for Twin Stick and Ascii FT Stick
2019-07-12 19:18:39 +02:00
Flyinghead
14ddd01e39
compilation warnings
2019-07-12 17:53:17 +02:00
Flyinghead
4f8e18215b
Fixed savestates: restore compatibility with lr and master
...
Add new maple devices from lr
Clean up shil.cpp
2019-07-12 17:20:43 +02:00
Flyinghead
eb38564922
use exceptions for startup errors
2019-07-11 19:23:21 +02:00
Flyinghead
5285911133
Mirror writable aica ram to 8mb in 512mb vmem mode
...
Fixes switching from dc to naomi on windows
Should help games reading past end of aica ram (HeadHunter and others)
2019-07-10 20:17:59 +02:00
Flyinghead
ad98e583c8
win32: fix vmem reset
2019-07-10 18:58:55 +02:00
Flyinghead
58cb50f587
fix reset hang on naomi
2019-07-10 17:25:11 +02:00
Flyinghead
449d150eba
android: build fix
...
clean up files comitted by mistake
2019-07-10 09:57:08 +02:00
Flyinghead
f3a91de1af
Unify dreamcast, naomi and atomiswave builds WIP
2019-07-09 23:52:19 +02:00
Flyinghead
d5e24d8aed
Cleaner init. Get rid of LastImage
2019-07-08 18:10:43 +02:00
Flyinghead
10e6b296c5
fix cue issue. better logging
2019-07-08 00:03:44 +02:00
Flyinghead
c3a42b0b22
wince: online support
...
Use default asyncmap for LCP control packets
Delay reading from picotcp ppp stream when connecting
Accept [PSH,SYN] as valid tcp connect packet
Add PBA Tour Bowling 2001 as wince game
Disable vmem32 for StarLancer and Maximum Pool (req'd for online support)
2019-07-07 20:31:36 +02:00
Flyinghead
18bcb81682
naomi: minimal emulation of 840-0001E comm board
...
makes gunsur2 and gunsur2j boot
various minor naomi changes
2019-07-04 17:33:26 +02:00
flyinghead
b540b437ee
win32: unprotect ram regions individually in blockmanager
...
fixes abort when starting game in windows
2019-07-04 09:36:22 +02:00
Flyinghead
ad4218d617
audio: use new logging
...
other logging changes
2019-07-01 17:17:08 +02:00
Flyinghead
b388fa4377
imgread: use new logging
2019-07-01 16:10:28 +02:00
Flyinghead
35cd1fcf14
sh4: use new logging
2019-07-01 15:22:04 +02:00
Flyinghead
feb1b79353
sh4/dyna: use new logging
2019-07-01 12:17:51 +02:00
Flyinghead
cd0849a8f5
pvr: use new logging
2019-07-01 11:42:00 +02:00
Flyinghead
74186d2518
naomi: use new logging
2019-07-01 11:14:18 +02:00
Flyinghead
c60e2d29e8
modem: add termination function to stop pico thread
...
use new logging
log: set max verbosity to warning for release builds
2019-07-01 10:28:31 +02:00
Flyinghead
a31f573c69
maple: use new logging
2019-06-30 23:38:58 +02:00
Flyinghead
fcc6fd784c
holly: use new logging
2019-06-30 23:02:26 +02:00
Flyinghead
58e1c68eb8
flashrom, gdrom: use new logging
2019-06-30 22:41:55 +02:00
Flyinghead
cf6887a5d0
aica: use new logging
2019-06-30 22:09:32 +02:00
Flyinghead
8404c6322c
New logging framework stolen from dolphin
2019-06-30 21:06:46 +02:00
Flyinghead
0a95a60ac6
less verbose logs. unbuffered stdout when test automation
2019-06-28 11:42:35 +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
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
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
d1550357ce
fix verify failed when switching to overview (app list) on android
2019-06-21 14:10:04 +02:00
Flyinghead
3e8cdc76f3
wince: fix load state hanging
2019-06-21 13:17:34 +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
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
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
8d8e694e23
swap setpeq args in ssa if first is imm
2019-06-18 13:25:43 +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
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
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
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
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
5b7d07315b
wince: clean up unused stuff
2019-05-22 15:15:53 +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
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
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
433590b610
rend: Add per-strip TR sort option
2019-05-21 11:24:03 +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
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
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
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
55e7c17030
Fix minor build issue with madvise flags.
2019-05-12 13:40:18 +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
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
05577b64f7
wince: return actual vmu system area in GetMediaInfo
...
revert previous default vmu change
2019-05-09 11:25:17 +02:00
Flyinghead
dc7f608461
wince: fix vmu issues
2019-05-08 22:31:59 +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
flyinghead
0d19da2b4b
wince: disable vmem32 on windows
2019-04-30 17:43:21 +02:00