83d7523da1
Fixing lvrx.
Ben Vanik
2013-10-12 15:06:16 -07:00
d46069cd47
Various tweaks from gibbed.
Ben Vanik
2013-10-12 10:57:01 -07:00
51b79cb399
Minor fixes.
Ben Vanik
2013-10-12 03:02:39 -07:00
8e01e2d945
Vertex fetching.
Ben Vanik
2013-10-12 02:29:01 -07:00
04aad708c9
Shader type read for translation.
Ben Vanik
2013-10-11 22:04:34 -07:00
1378fad3c0
Basic shader cache.
Ben Vanik
2013-10-11 21:45:20 -07:00
6e4fb87992
D3D11 window up and spinning.
Ben Vanik
2013-10-11 20:23:58 -07:00
611d3bbbeb
Adding in D3D11 GPU skeleton.
Ben Vanik
2013-10-09 23:18:22 -07:00
8558176ee0
Cleaning up the ucode disassembler.
Ben Vanik
2013-10-09 22:50:44 -07:00
14bf4912d1
Fixing CF decode.
Ben Vanik
2013-10-09 21:15:23 -07:00
7b97d475c2
Hacked in shader disassembler. Checking this in before I break it. Has tons of issues. Turns out the 360 GPU uses an Adreno (rAdeon)-like r2xx shader format. VC++'s handling of bitfields is absolutely terrible.
Ben Vanik
2013-10-09 19:35:54 -07:00
17be429244
Microcode disassembler skeleton.
Ben Vanik
2013-10-07 19:58:24 -07:00
651954ccae
Starting to drive command buffer actions down to a graphics driver.
Ben Vanik
2013-10-06 21:09:58 -07:00
371075f154
More GPU decoding.
Ben Vanik
2013-10-06 19:22:02 -07:00
99bde2d67e
Fixing terrible vsldoi implementation. Still terrible.
Ben Vanik
2013-10-06 17:45:59 -07:00
87481f5f4c
Fixing vperm.
Ben Vanik
2013-10-06 16:25:41 -07:00
b77403e754
Fixing lvsl/lvsr.
Ben Vanik
2013-10-06 16:25:23 -07:00
74692232c9
Add trace thread mask. Makes seeing only thread 1 easier.
Ben Vanik
2013-10-06 14:35:03 -07:00
1fecb95512
Switching altivec disasm to die on failure.
Ben Vanik
2013-10-06 12:35:24 -07:00
debf21437e
Untested emulated stvlx/stvrx.
Ben Vanik
2013-10-06 11:22:35 -07:00
e5ca996a08
Xmm read/write cleanup.
Ben Vanik
2013-10-06 11:19:16 -07:00
9ebbc3535f
vsldoi.
Ben Vanik
2013-10-06 11:19:02 -07:00
cdb13775e2
Alignment option in xmm read/write.
Ben Vanik
2013-10-06 10:25:41 -07:00
26e22e2b16
Untested and nasty emulated vperm.
Ben Vanik
2013-10-06 10:25:30 -07:00
2b798df631
lvsl/lvsr/lvlx/lvrx
Ben Vanik
2013-10-06 09:48:42 -07:00
e8429b75e0
Significantly faster byte swapping on xmm read/write.
Ben Vanik
2013-10-04 22:29:19 -07:00
d3bf7813ea
Improve perf of vcmp cr6 update.
Ben Vanik
2013-10-04 13:32:11 -07:00
e2842ea4b4
fmaddsx, fmsubx, fmsubsx, fcmpu.
Ben Vanik
2013-10-04 10:30:57 -07:00
091957e72e
Untested srawx/sradix (makes things run further, at least).
Ben Vanik
2013-10-04 09:34:36 -07:00
0f5d0d992d
vupkd3d d3dcolor (untested).
Ben Vanik
2013-10-03 21:06:40 -07:00
611902a97e
Fixing vspltw and vrlimi.
Ben Vanik
2013-10-03 20:19:11 -07:00
bdb5b0eae2
Fixing alignment of xmm load/store.
Ben Vanik
2013-10-03 20:18:56 -07:00
6d46b51ed4
A few vcmp*'s, float_16_to_32 bit of vupkd3d128 (untested).
Ben Vanik
2013-10-02 23:25:05 -07:00
21d273e85b
Tracing FPRs and random fixes.
Ben Vanik
2013-09-30 22:43:29 -07:00
37caa5cea1
vnmsubfp, fixing vrlimi128.
Ben Vanik
2013-09-30 21:14:23 -07:00
f5b99d7448
Fixing some altivec instruction decode issues.
Ben Vanik
2013-09-30 17:54:49 -07:00
26ec76ef35
A lot of progress on altivec instructions. Some bad results, still, and some instructions are not decoding right.
Ben Vanik
2013-09-29 21:05:48 -07:00
3662118246
vmaddfp/vmaddcfp/vmulfp/vsubfp.
Ben Vanik
2013-09-29 00:02:25 -07:00
5652a150e1
vand/vnor/vor/vxor.
Ben Vanik
2013-09-28 23:45:16 -07:00
526b1a85b7
Simple altivec loads/stores.
Ben Vanik
2013-09-28 23:14:43 -07:00
f398ccba56
Skeleton emitter file.
Ben Vanik
2013-09-28 19:52:33 -07:00
51184f73ea
Disassembling a few instructions.
Ben Vanik
2013-09-28 19:37:34 -07:00
f4f66ff7f1
Beginning Altivec disassembly/emitting.
Ben Vanik
2013-09-28 09:14:04 -07:00
b0481472f2
Finally adding thread wait so we kill the spin loop.
Ben Vanik
2013-09-25 20:55:22 -07:00
d16ab71252
Fixing %d print.
Ben Vanik
2013-09-25 20:28:42 -07:00
3e0d9af57e
Placeholders for memory access breakpoints.
Ben Vanik
2013-09-25 20:13:43 -07:00
3706b9a3ce
Ignoring MmFreePhysicalMemory (for now). Games seem to be calling this with 0, which is bogus, so the bug is elsewhere.
Ben Vanik
2013-09-25 18:38:18 -07:00
536fbbff88
Adding misc Vd functions.
Ben Vanik
2013-09-25 18:37:30 -07:00
3a6ef8cdf9
Fixing VdQueryVideoMode.
Ben Vanik
2013-09-25 18:37:13 -07:00
03a68d4c49
PerformanceCounter.
Ben Vanik
2013-09-25 18:36:34 -07:00
b7fd4f975d
Fixing ringbuffer pointers and no-op instructions.
Ben Vanik
2013-09-25 00:46:47 -07:00
03494c6b88
Stubbing methods and cleanup.
Ben Vanik
2013-09-25 00:46:29 -07:00
91f62918f6
Adding vblank interrupt.
Ben Vanik
2013-09-25 00:46:09 -07:00
998467ce05
Fixing cntlzd.
Ben Vanik
2013-09-25 00:21:41 -07:00
8424a668bf
Basic implementation of events.
Ben Vanik
2013-09-24 21:26:45 -07:00
474ecea277
Adding stubs for SetEvent/ResetEvent.
Ben Vanik
2013-09-23 22:44:34 -07:00
be1ce73a30
Fixing WaitForSingleObject timeout args.
Ben Vanik
2013-09-23 22:15:43 -07:00
d0d30ab719
Implementing object table. Not complete, but better.
Ben Vanik
2013-09-22 18:36:06 -07:00
3e0db586c0
RtlNtStatusToDosError, for successes.
Ben Vanik
2013-09-22 16:45:41 -07:00
d5b8a2091a
Switching tracing order to prevent skipping traces of branch instructions.
Ben Vanik
2013-09-06 23:21:08 -07:00
1a3fed942d
Skeleton for KeWaitForSingleObject. Trying to figure out where D3D is getting its object from. It never seems to create a timer/event/etc.
Ben Vanik
2013-06-30 10:27:51 -07:00
39ef8d8263
Properly using XapiThreadStartup routines, if present.
Ben Vanik
2013-06-30 10:27:06 -07:00
8d5e877a03
VdGetCurrentDisplayGamma and VdQueryVideoFlags.
Ben Vanik
2013-06-30 08:21:45 -07:00
c9a39a8b62
Dumping module info on startup and logging unimplemented kernel calls.
Ben Vanik
2013-06-30 07:53:17 -07:00
a62426948b
Implementing enough ExGetXConfigSetting for D3D.
Ben Vanik
2013-06-30 07:52:53 -07:00
6f602d120a
Adding thread ID to trace lines and cleaning up their formatting.
Ben Vanik
2013-06-30 06:09:08 -07:00
82ee749515
Adding a note about the asmjit issue.
Ben Vanik
2013-06-29 09:28:13 -07:00
338a6b4411
Adding back binutils from googlesource.
Ben Vanik
2013-06-29 08:47:21 -07:00
e1a9017396
Removing broken binutils mirror. Sourceware is bad at what they do.
Ben Vanik
2013-06-29 08:41:24 -07:00
9bc490579e
64-bit shim memory macros.
Rick Gibbed
2013-06-02 08:07:40 -07:00
c9688bb3e9
DbgPrint & _vnsprintf implementations. VERY HACKY.
Rick Gibbed
2013-06-02 08:07:03 -07:00
b97b8226b2
Fixed a crash when adding a FunctionSymbol with a NULL address.
Rick Gibbed
2013-06-02 07:57:38 -07:00
105aee506d
dcbf disasm.
Rick Gibbed
2013-06-02 07:56:17 -07:00
8a782c3485
Merge pull request #30 from espes/master
Ben Vanik
2013-06-02 00:15:40 -07:00
388c622ecd
fill in some more xenos registers
espes
2013-06-02 17:11:54 +10:00
cf57481a0e
Adding basic register names.
Ben Vanik
2013-06-01 22:51:09 -07:00
e00e665a09
Basic command buffer processing.
Ben Vanik
2013-06-01 21:49:14 -07:00
ba16a0d847
Trying to setup writeback and add basic secondary command execution.
Ben Vanik
2013-06-01 03:08:31 -07:00
5b0fa8f17e
Basic ringbuffer worker. Super hacky, not yet writing back to CPU.
Ben Vanik
2013-06-01 01:13:30 -07:00
3667821be3
ldarx & stdcx disasm.
Rick Gibbed
2013-05-31 22:01:35 -07:00
31199dd41d
VdHSIOCalibrationLock.
Ben Vanik
2013-05-31 21:40:15 -07:00
4e6e27d9ac
Zero KeCertMonitorData export.
Ben Vanik
2013-05-31 21:33:19 -07:00
ef0032ecff
Wiring up register read/write from JIT -> GPU.
Ben Vanik
2013-05-31 21:22:00 -07:00
edf3a9155b
The stack address needs to start at the end of the allocated memory for the stack, not the beginning.
Rick Gibbed
2013-05-31 20:55:52 -07:00
d53458023e
Fixing/implementing static TLS entries.
Ben Vanik
2013-05-31 10:01:32 -07:00
38efd3837d
Adding support for detecting the save/rest fpr and vmx blocks.
Ben Vanik
2013-05-31 01:53:30 -07:00
e6195c4086
fmadd, orc, extsh, extsw.
Ben Vanik
2013-05-31 01:00:00 -07:00
9bb36c7404
Fixing decoding of the rld* instructions.
Ben Vanik
2013-05-31 00:38:26 -07:00
dc16653164
Fixing decoding of some of the opcode 63 instructions.
Ben Vanik
2013-05-31 00:09:10 -07:00
14c3b8a382
Adding a case for tail calls. Still missing the forward tail call case, as there is legit code that does weird branches like that.
Ben Vanik
2013-05-30 23:41:25 -07:00
e7665c11eb
Adding basic constant checks and updates to memory instructions. Only those instructions likely to have immediate values have been updated. It'd be nice to go further than this and a) centralize the ea calculations b) move this all to the analysis pass c) generate mov's in Read/WriteMemory using the immediates as bases instead of all the register work.
Ben Vanik
2013-05-30 23:20:05 -07:00
78086684c6
Now tracking constant values for most operations. This will make it easier to enable memory access optimizations and hacks. Not all operations are updating the constant registers, only those that are likely to participate in constant value building. Constant values are cleared on every basic block, though this may be too zealous it prevents weird fall-through cases.
Ben Vanik
2013-05-30 22:50:32 -07:00
7990146001
xex2 loader now guesses sizes to allocate. This may not be right in all cases, but seems to work.
Ben Vanik
2013-05-29 23:26:34 -07:00