Commit Graph

512 Commits

Author SHA1 Message Date
Ben Vanik 93e4b70133 Stubbing input a little better. 2013-10-23 21:10:41 -07:00
Ben Vanik 6e60aef72f Special register check for lwbrx. Need a scalable way to do this. 2013-10-23 21:10:26 -07:00
Ben Vanik b7ffd46319 Massive refactoring of all code + audio skeleton.
This should make it easier to find files and (in the future) split things
up into separate libraries.
It also changes around emulator initialization to make it a little more
difficult to do things out of order and a little more sensible as to when
real init work happens.
Also adding a skeleton audio system/driver and reworking CPU register
access to be more extensible.
2013-10-23 20:42:24 -07:00
Ben Vanik c996a4bbaf Stubs for more XAM functions. 2013-10-23 00:05:50 -07:00
Ben Vanik 60ef171ff2 XNetStartup/WSAStartup stubs. 2013-10-22 23:46:42 -07:00
Ben Vanik 447ce90b7b MmQueryAddressProtect. 2013-10-22 23:34:24 -07:00
Ben Vanik 2a8a19e4be KeDelayExecutionThread. 2013-10-22 23:22:30 -07:00
Ben Vanik d9a55a5557 Zero memory on alloc. 2013-10-22 21:50:10 -07:00
Ben Vanik d065ee43e8 PM4_SET_CONSTANT for registers. 2013-10-22 21:32:04 -07:00
Ben Vanik 157cfd4d71 Moving all physical allocs to A..., as games do stupid stuff when at E. 2013-10-22 21:06:12 -07:00
Ben Vanik 62d4d5ce84 Randomly messing with address translation. Still not right. 2013-10-22 21:05:56 -07:00
Ben Vanik d4e19eb583 Certain games seem to do GPU writeback here. 2013-10-22 21:05:32 -07:00
Ben Vanik e0b6d0f689 Cleaning up packet reading/endianness. 2013-10-22 20:47:27 -07:00
Ben Vanik 725cde55d4 Moving the physical heap up a bit to avoid overwriting 0x0. 2013-10-21 23:56:16 -07:00
Ben Vanik f676333ef0 Stub MmQueryAddressProtect - unimplemented. 2013-10-21 21:58:45 -07:00
Ben Vanik f9dd0b0cb2 Allocate physical memory. 2013-10-21 19:28:25 -07:00
Ben Vanik 1fea07b6aa Align physical allocations to page size. 2013-10-21 19:26:41 -07:00
Ben Vanik aa3e8d0332 Allocating things in a physical heap. Super wasteful right now. 2013-10-21 00:59:11 -07:00
gibbed ea022c8dd3 That one byte is totally important. 2013-10-21 00:39:39 -07:00
Ben Vanik ca208fa60a Rewrote memory manager to use a bunch of mapped views. 2013-10-20 23:19:57 -07:00
Ben Vanik d00f4d58e9 Better byte swapping in ringbuffer and fixed logging. 2013-10-20 18:34:46 -07:00
Ben Vanik 42a8fc0b59 --break_on_instruction=0x... and --break_on_memory=0x... 2013-10-20 16:54:59 -07:00
Ben Vanik cddab7ffb0 Fixing free. 2013-10-20 15:28:00 -07:00
Ben Vanik 0c19516de4 Fixing file position default value. 2013-10-20 15:05:09 -07:00
Ben Vanik e919edfb33 Fix xe_memory_is_valid. 2013-10-20 13:47:58 -07:00
Ben Vanik 9f1d2f29c1 --heap_guard_pages=1 to add guard pages. 2013-10-20 13:42:34 -07:00
Ben Vanik ca3f2f1367 Malloc inspect in release mode, too. 2013-10-20 12:46:28 -07:00
Ben Vanik 002400d071 Adding memory info dumping utility, use --log_heap. 2013-10-20 12:39:59 -07:00
Ben Vanik fbea5a6394 Making the GPU counter a vblank counter, not a timer. 2013-10-20 02:00:51 -07:00
Ben Vanik 39adeef2e3 Hiding vertex/index data for now. 2013-10-20 01:59:42 -07:00
Ben Vanik 92899739bd Index buffer upload. 2013-10-20 00:47:32 -07:00
Ben Vanik 5a80c7b9c1 Hacking shaders to get dummy texture colors and such. 2013-10-20 00:20:36 -07:00
Ben Vanik 737a567de6 Fixing code_addr_low_. 2013-10-19 22:31:08 -07:00
Ben Vanik 889e586cab Skeleton for new draw type and texture fetching. 2013-10-19 21:49:25 -07:00
Ben Vanik bdf5bf20a4 vminfp/vmaxfp 2013-10-19 21:26:40 -07:00
Ben Vanik 2cce46c232 vsel/vsel128 2013-10-19 21:20:27 -07:00
Ben Vanik d62e8aaf78 lhbrx/lwbrx/ldbrx/sthbrx/stwbrx/stdbrx 2013-10-19 21:05:06 -07:00
Ben Vanik d60cf676c3 addmex 2013-10-19 20:57:24 -07:00
Ben Vanik 5b91ba89e9 Fixing stdux/stdx o_o 2013-10-19 20:57:19 -07:00
Ben Vanik 62b792c903 Ignoring a packet I don't care about. 2013-10-19 20:30:36 -07:00
Ben Vanik 7ae2d410e5 addex. All of these are wrong - let's hope we don't overflow. 2013-10-19 20:29:19 -07:00
Ben Vanik 4e6799197f fsqrtx/fsqrtsx 2013-10-19 20:25:03 -07:00
Ben Vanik e842a6614a Fixing LR argument for indirect branches. 2013-10-19 19:59:09 -07:00
Ben Vanik 10c69cfaf2 rlwnmx 2013-10-19 19:07:26 -07:00
Ben Vanik 807b949fea Seeing code returning to the execution thunk, something must have broken. 2013-10-19 19:03:47 -07:00
Ben Vanik 4a72010e5f addcx 2013-10-19 19:03:30 -07:00
Ben Vanik fc1be2bfd8 rldimix 2013-10-19 18:54:36 -07:00
Ben Vanik 14b1c860b9 subfmex/subfzex. 2013-10-19 18:33:32 -07:00
Ben Vanik b8edeba195 Actually aligning physical alloc requests. 2013-10-19 18:18:19 -07:00
gibbed 49ee9d05b9 Fixed LR branching. 2013-10-19 17:09:48 -07:00
Ben Vanik 7b0ca71bfb Fixing broken test. 2013-10-19 17:08:34 -07:00
Ben Vanik 68d5f33cfa GPU byte swapping.
A lot of other packets likely do this.
2013-10-19 16:29:00 -07:00
gibbed f15b5dae9d I think this is right. 2013-10-19 15:07:59 -07:00
Ben Vanik f7ad9c89dd Messing with stvlx. 2013-10-19 14:36:32 -07:00
Ben Vanik 91e6c4ed9a Adding address mask to stvlx. 2013-10-19 14:29:14 -07:00
Ben Vanik 31161e0245 SHUFPS_SWAP_DWORDS to make it easier to tell what it's doing. 2013-10-19 14:21:56 -07:00
Ben Vanik 5df538cd44 Adding stack alignment check. We aren't 16b aligned right now. Fuck. 2013-10-19 14:16:34 -07:00
Ben Vanik 007f7e371d Workaround for yet another AsmJit bug. Sigh. 2013-10-19 12:50:42 -07:00
Ben Vanik 37065255a2 Dispatching interrupts. 2013-10-19 12:50:26 -07:00
Ben Vanik 90bc6ad1a8 Interrupts fire on the right 'thread', ringbuffer work, 2013-10-19 11:50:01 -07:00
Ben Vanik 6db8c6c961 Implementing thread state block access. 2013-10-19 02:53:14 -07:00
gibbed 32a0045001 This is probably better. 2013-10-19 01:18:18 -07:00
Ben Vanik c60230f28a Implementing scratch registers correctly (I think). 2013-10-19 01:16:13 -07:00
Ben Vanik 1616d7ba22 WAIT_MEM_REG, REG_RMW (untested), COND_WRITE 2013-10-19 00:46:35 -07:00
Ben Vanik a63db2b7fd Dispatch interrupt outside of main pump. 2013-10-19 00:46:11 -07:00
Ben Vanik 562c86f76d Extending critical sections to spin forever for now. 2013-10-18 21:55:43 -07:00
Ben Vanik 01a94f3850 VdGetSystemCommandBuffer stub. 2013-10-18 21:39:29 -07:00
Ben Vanik 0746e6feb2 ldarx/lwarx/stdcx/stwcx. Probably. 2013-10-18 21:17:20 -07:00
Ben Vanik f2550bd017 KeEnterCriticalRegion/KeLeaveCriticalRegion. 2013-10-18 19:49:51 -07:00
Ben Vanik 6a02ae3768 KfAcquireSpinLock/KfReleaesSpinLock. 2013-10-18 19:11:37 -07:00
Ben Vanik 28e7102a02 Always dump CPU info and assert our dummy thread value is legit. 2013-10-18 18:56:59 -07:00
Ben Vanik d3665cc2e6 Support for VS2013 (and auto picking), a Win xb script, and readme updates.
This also removes the dependency on D3DX, which is only included in the
DXSDK, meaning that just the Win8+ SDK should be required now.
2013-10-17 23:35:54 -07:00
Ben Vanik ff54a04aa1 asmjit fixes. 2013-10-17 14:03:26 -07:00
Ben Vanik 20720f750d KeSetAffinityThread stub, Ob* fns added, current thread handled. 2013-10-17 00:47:02 -07:00
Ben Vanik 7bf6992203 NtSetEvent/NtWaitForSingleObjectEx. 2013-10-16 23:04:52 -07:00
Ben Vanik 1b12949dd2 NtQueryFullAttributesFile. 2013-10-16 22:41:31 -07:00
Ben Vanik fd1054d823 NtSetInformationFile for seek position. 2013-10-16 22:28:26 -07:00
Ben Vanik 5de9b84904 Fixing line endings.
Need to run a script to do this...
2013-10-16 22:22:17 -07:00
Ben Vanik a41827942e Some NtQueryInformation classes. 2013-10-16 22:20:24 -07:00
gibbed 956496fb99 Added KeBugCheck and KeBugCheckEx. 2013-10-16 22:08:41 -07:00
Ben Vanik ab1ba9a508 Partially implemented NtQueryFullAttributes.
Enough to get past the ShaderDump test most games seem to do.
2013-10-16 21:32:53 -07:00
Ben Vanik c53db98517 Locking around some JIT stuff.
Excessive for now, but safer.
2013-10-16 21:32:20 -07:00
Ben Vanik 8e37fb8502 Bytes read via ReadFile! 2013-10-16 20:50:46 -07:00
Ben Vanik fea5c06180 Fixing line endings. 2013-10-16 20:10:16 -07:00
Ben Vanik ab5b9d75e0 Reworking file system so that it's easier to implement file operations. 2013-10-16 20:09:42 -07:00
gibbed d5bd8b9d5b Merge branch 'master' of https://github.com/benvanik/xenia 2013-10-16 19:05:04 -07:00
gibbed 16b0c936d4 Fixed argument size handling in _vsnprintf_shim, like DbgPrint_shim. 2013-10-16 19:04:23 -07:00
gibbed 46b42528fd Fixed xeRtlFillMemoryUlong so it swaps the pattern back to native endianness. 2013-10-16 19:03:22 -07:00
gibbed 309d1621e5 Attempt at a fix for crashes occuring when not using instruction/branch tracing. 2013-10-16 18:55:21 -07:00
Ben Vanik 803e4998de Starting to wire up readfile. 2013-10-16 00:23:05 -07:00
Ben Vanik da2f7f1ea5 Shuffling filesystem to xboxkrnl.
This doesn't really change anything yet, just moves things.
Also fixed some bad over-including.
2013-10-15 23:09:51 -07:00
Ben Vanik 26c06e13d9 Checking in intermediate FS work before moving code. 2013-10-15 22:51:19 -07:00
Ben Vanik a8d10cd9d3 NtClose/NtReadFile skeleton. 2013-10-15 22:28:00 -07:00
Ben Vanik 388f354870 Basic NtCreateFile. 2013-10-15 21:30:57 -07:00
Ben Vanik f409795dd1 Fixing PM4 type 0 packet parsing. 2013-10-15 20:24:32 -07:00
gibbed a483704855 Sneaky tabs. 2013-10-15 19:18:28 -07:00
gibbed d79bd8cfa7 Renamed xboxkrnl_file* to xboxkrnl_nt*, added xboxkrnl_io*. 2013-10-15 19:18:03 -07:00
gibbed f59ff2e44a Fixed debug output format for NtCreateFile. 2013-10-15 05:30:25 -07:00
gibbed 5176a7e7c9 Stubbing out some file stuff. 2013-10-15 05:16:05 -07:00
Ben Vanik 6cda645911 Adding instruction address identifier when not tracing.
This can be removed later.
2013-10-14 21:53:34 -07:00