Commit Graph

1764 Commits

Author SHA1 Message Date
Flyinghead ed858c029a reios: test automation needs to account for lack of boot swirl 2019-08-14 22:35:07 +02:00
Flyinghead aaf950d470 Add default ISP information to flashrom 2019-08-14 20:05:42 +02:00
Flyinghead 74a96897cc OSX: use SLD2 for gamepads 2019-08-14 09:20:24 +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 1a019b79b0 GL: blending support for punch-through polys
Disable trilinear filtering for PTs
PT alpha test should be done after color+tex shading according to documentation
2019-08-09 12:05:56 +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 55b4e3364d OSX: use NSLog for logging 2019-08-09 12:00:48 +02:00
Flyinghead b38affe87c Build fix 2019-08-08 08:30:38 +02:00
Flyinghead c7f27c84bf reios: add timing to DMA reads. Fix some param values. 2019-08-08 08:24:13 +02:00
Flyinghead 69f2b343b1 OSX: command line args support. test automation
allow test automation on other platforms (win32, OSX, ...)
2019-08-08 08:22:33 +02:00
Flyinghead 8bd2450608 comments/logs clean up 2019-08-08 08:20:15 +02:00
Flyinghead ce301289ca reios: fix some constants 2019-08-04 19:46:46 +02:00
Flyinghead 00e57db13f reios: support multi READ command
fixes many 2K sport games, floigan bros, ooga booga
report paused instead of standby (cannonspike US)
2019-08-04 19:09:02 +02:00
Flyinghead 271aa85892 reios: wince games support 2019-08-03 19:20:30 +02:00
Flyinghead d3173931f1 reios: handle gdrom hle state properly
better documentation, clean up
parallelize gradle builds + tv banner
2019-08-01 12:31:08 +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 5913a8f11e reios: font support 2019-07-31 13:01:12 +02:00
Flyinghead 7eaf89a7f2 Travis fix 2019-07-30 19:31:35 +02:00
Flyinghead 6059831ec7 reios fixes 2019-07-30 19:04:51 +02:00
Flyinghead 91a753f224 Fix naked functions for GCC 2019-07-30 12:40:34 +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 60ec054b59 support for VQ compressed paletted textures 2019-07-12 15:34:10 +02:00
Flyinghead 4884dbc400 get rid of DC_PLATFORM and build flavors 2019-07-11 19:55:03 +02:00
Flyinghead eb38564922 use exceptions for startup errors 2019-07-11 19:23:21 +02:00
Flyinghead cb35c80ee7 gl4: still need to update the depth buffer for TRs 2019-07-10 22:23:26 +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 632aa95c2d gl4: depth test issue in non-autosort mode
Depth testing is done in the fragment shader so it shouldn't be done
in the a-buffer shader for the first pixel, or until the depth is updated.
Fixes flashlight and lightstorm effects in Alone in the Dark
2019-07-09 15:25:15 +02:00
Flyinghead d5e24d8aed Cleaner init. Get rid of LastImage 2019-07-08 18:10:43 +02:00
Flyinghead 329230bf8d Fix Naomi reset. Add some per-game settings
Re-Volt needs 100 extra deptch scale for perfect menus
Tom Clancy's Rainbow Six needs RTT to vram for correct loading screens
2019-07-08 16:31:50 +02:00
Flyinghead 478b1c719c gl4: do a depth-only TR pass in non-autosort mode
fixes HeadHunter map/radar issue
2019-07-08 16:30:07 +02:00
Flyinghead 10e6b296c5 fix cue issue. better logging 2019-07-08 00:03:44 +02:00
Flyinghead 75cdd93001 remove webui, libwebsocket 2019-07-07 23:40:13 +02:00
Flyinghead dbbc1819e8 remove NACL 2019-07-07 22:56:23 +02:00
Flyinghead 9eef02a1e8 pvr: ignore Z Write Disable for punch-through polys?
tentative fix for Worms World Party
2019-07-07 22:13:43 +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 5f6f90b66b win32 build fix 2019-07-01 22:45:11 +02:00
Flyinghead be5aca66e1 cfg,dynarecs,reios: use new logging 2019-07-01 18:23:10 +02:00
Flyinghead 2c8094f987 renderer,sdl: use new logging 2019-07-01 17:41:15 +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 5881791817 win32: yabf 2019-06-30 21:54:37 +02:00
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