Commit Graph

5249 Commits

Author SHA1 Message Date
Luke Usher 427cf4e513 Fi CMPXCHG 2018-09-25 22:30:34 +01:00
Luke Usher bf9b7a26f6 Minor tweaks 2018-09-25 22:30:34 +01:00
Luke Usher d5ac1040ca Fix an issue where non 32-bit register reads/writes would use the wrong bits 2018-09-25 22:30:34 +01:00
Luke Usher dde8c8b71c Minor instruction tweaks/fixes 2018-09-25 22:30:34 +01:00
Luke Usher 9566f85767 Have the host CPU computer flags for us 2018-09-25 22:30:33 +01:00
Luke Usher 42504ed309
Merge pull request #1451 from PatrickvL/x86_logging
X86 logging
2018-09-25 22:24:01 +01:00
PatrickvL fc3f0161bf X86 : Improved instruction dumping 2018-09-24 15:19:59 +02:00
PatrickvL 9487ec09a7 X86 : Implemented NEG opcode 2018-09-24 12:52:31 +02:00
PatrickvL 17fdc8e01d Logging : Renamed DbgPrintf to DBG_PRINTF (it's a macro after all), introduced Ex-tended versions of a few macro's, which accept something else than LOG_PREFIX and removed and/or applied LOG_PREFIX where appropriate. Also applied LOG_CHECK_ENABLED in EmuX86 to avoid slowdowns when X86 debug logging is disabled. 2018-09-24 11:26:30 +02:00
Luke Usher ac719e2a40
Merge pull request #1445 from PatrickvL/X86_expand
X86 expand
2018-09-22 22:53:35 +01:00
Luke Usher 2e58a218ea Fix hang while exiting emulation: CxbxKrnlShutdown was not called from WM_CLOSE... 2018-09-22 21:30:30 +01:00
Luke Usher 8c5b262e84 Change X86 log from info too Debug 2018-09-21 21:21:22 +01:00
Luke Usher 614a2c1792 Fix push/pop/jmp/jcc: HLE XDK samples + dashboard work again 2018-09-21 20:01:44 +01:00
PatrickvL 381e478862 X86 : Added instruction dumping to better see where our emulation goes haywire. As a result, PC-relative address decoding turned out to be faulty - let's see what else needs correcting... 2018-09-21 15:00:57 +02:00
PatrickvL 3216fac4ad X86 : Restored indent (by request of Radwolfie) 2018-09-20 18:20:30 +02:00
PatrickvL 6782c89b62 X86 : Implemented CDQ, POP, PUSH and SAR, sorted CLI and STI and crash (instead of hang) when the initial (exception-causing instruction) is unhandled 2018-09-20 17:52:23 +02:00
PatrickvL 3d203d1d56 X86 : Sorted interpreted opcodes, implemented instructions I_JMP_FAR and I_RDTSC, refactored to use the emulation of RDSTC elsewhere, renamed SXX to SETcc, renamed JXX to Jcc, mention Distorm instruction numbers in comments 2018-09-20 15:13:37 +02:00
PatrickvL ca32db6be4
Merge pull request #1444 from RadWolfie/develop
D3D8(LTCG) signatures update and small clean up of scanning process
2018-09-19 23:53:05 +02:00
RadWolfie d908075573 Sync with XbSymbolDatabase module 2018-09-19 15:03:13 -05:00
Luke Usher 70a4a8602a
Merge pull request #1443 from PatrickvL/avoid_cpu_hang
X86 : Emulate a bunch of additional instructions (all fences, all jum…
2018-09-19 20:52:42 +01:00
Luke Usher c99d7341bc
Merge pull request #1441 from PatrickvL/CreateDevice_refactoring
HLE : Extract common CreateDevice code to two separate functions.
2018-09-19 20:34:07 +01:00
patrickvl c8f3f53667 X86 : Emulate SHL 2018-09-19 21:28:55 +02:00
Luke Usher d053f9c827
Merge pull request #1442 from LukeUsher/not-shouldnt-set-flags
NOT shouldn't set flags
2018-09-19 20:21:29 +01:00
patrickvl 5841042ade X86 : Emulate a bunch of additional instructions (all fences, all jumps and all sets) 2018-09-19 21:19:45 +02:00
Luke Usher dc452eb415 NOT shouldn't set flags 2018-09-19 20:16:53 +01:00
PatrickvL 338879ba96
Merge pull request #1440 from LukeUsher/interpret-larger-blocks
Interpret larger blocks during exception handler to reduce the number of exceptions per-frame
2018-09-18 10:50:57 +02:00
Luke Usher 49e1851323 More opcodes 2018-09-17 20:35:14 +01:00
Luke Usher 521bddba0f
Merge pull request #1437 from PatrickvL/ptimer_fix
nv2a: Ptimer fixes
2018-09-17 13:25:18 +01:00
Luke Usher 075236fbea
Merge pull request #1439 from PatrickvL/vm_fix
Prevent dead-lock in VMManager::AllocateContiguous
2018-09-17 13:24:59 +01:00
PatrickvL a195045e84 Prevent dead-lock in VMManager::AllocateContiguous, by moving the if-IsMappable-goto-Fail line down below the Lock() call, so that we won't Unlock an unlocked critical section (which according to MS documentation, will cause a deadlock on the next call to EnterCriticaSection).
Source https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-leavecriticalsection :
"If a thread calls LeaveCriticalSection when it does not have ownership of the specified critical section object, an error occurs that may cause another thread using EnterCriticalSection to wait indefinitely."
2018-09-17 13:12:37 +02:00
Luke Usher 68f1293090 Fix incorrect flag masks in jump instructions 2018-09-15 22:37:35 +01:00
Luke Usher 1413f2960e Fix comment again... Are these comments really needed? Or/Xor/Operands are self-explanatory 2018-09-15 16:39:01 +01:00
Luke Usher 9bac79c44d Fix a compiler warning 2018-09-15 16:24:38 +01:00
Luke Usher b3338288a6 Fix OR->XOR in comment 2018-09-15 16:22:07 +01:00
Luke Usher b8889b6857 Fix a crash on invalid memory accesses 2018-09-15 16:19:50 +01:00
Luke Usher 1102133475 Attempt to interpret code blocks rather than single instructions, reducing MMIO overheads 2018-09-15 12:20:28 +01:00
patrickvl 6af5b65e4a HLE : Extract common CreateDevice code to two separate functions. 2018-09-12 17:03:37 +02:00
patrickvl 7b4dc90b73 nv2a: Ptimer fixes
Ported from https://github.com/xqemu/xqemu/pull/113 by dracc https://github.com/dracc

A few GPU timing related fixes
NV2A crystal frequency is currently set to debug unit speed of 13.5MHz.
Later retail xboxes had a 16.67MHz crystal according to @JayFoxRox's research(?).
Also, current ptimer clock value calculation is flipped around and on top of that always overflows.

With these fixes, running get_timers.py against xqemu reports values close to what real hardware gives.

Proposed changes
Set NV2A_CRYSTAL_FREQ to retail speed
Fix ptimer_get_clock() behaviour
2018-09-12 16:38:53 +02:00
PatrickvL 63f9128ae4
Merge pull request #1436 from faha223/FixArgcChecks
Fixed the argc checks in winmain and CxbxKrnl.cpp
2018-09-11 18:39:11 +02:00
Frederick Arthur Hallock III 440b62d63e Fixed the argc checks in winmain and CxbxKrnl.cpp that were checking against the wrong value. This was preventing the emulator from being launched in Kernel mode. 2018-09-11 12:18:55 -04:00
Luke Usher f798a23a85 Fix wrong calling convention around calls to KeGetPCR 2018-09-10 11:24:53 +01:00
PatrickvL db8cf258ba
Merge pull request #1434 from PatrickvL/d3d_plugins
Implemented drawing plugins
2018-09-08 08:07:59 +02:00
PatrickvL 7ccd90e2bd Implemented drawing plugins by moving HLE and LLE push buffer drawing into separate functions and passing HLE pushbuffer command handling on to the LLE pgraph method handler.
Also removed a few unused symbols (X_D3DRESOURCE_LOCK_PALETTE, extern EmuUpdateActiveTextureStages, g_bBadIndexData)
2018-09-07 10:48:19 +02:00
Luke Usher b46a82b23a
Removed Debug builds
Having multiple build types for each branch is proving to be confusing for some users. 

Ever since we implemented #1388, there has been no end-user benefit for using Debug builds, as they can get the same logging result by toggling the log level to Debug
2018-09-06 08:12:46 +01:00
RadWolfie 3c8169b076
Merge pull request #1427 from RadWolfie/Use-SimpleIni-class-for-Symbol-Cache-File
Use SimpleIni class for symbol cache file
2018-09-04 12:52:05 -05:00
RadWolfie 1e555bec3f Update UI and internal task to clear cache 2018-09-04 02:15:07 -05:00
RadWolfie 8ff36ffbef Include missing copyright authors 2018-09-03 21:47:32 -05:00
RadWolfie de347a1719 Replace Windows API to SimpleIni class
Plus also replace spaces to tabs in edited functions.
2018-09-03 21:46:57 -05:00
RadWolfie eff6da7551
Merge pull request #1426 from RadWolfie/move-source-files-to-their-own-folder-part1-of-2
Move source files to their own folder part1.2
2018-09-02 09:54:11 -05:00
RadWolfie 75ac4079aa Oops missed one link fixup 2018-09-02 09:44:18 -05:00