Commit Graph

225 Commits

Author SHA1 Message Date
Ben Vanik
6129e1eb7a Simplifying macros to fix VS' broken preprocessor. 2014-01-12 14:06:00 -08:00
Ben Vanik
27a8e09b51 Depth stencil state. 2014-01-10 01:25:50 -08:00
Ben Vanik
7969349126 Fixing some shutdown code. 2014-01-02 18:58:44 -08:00
Ben Vanik
5bc74313e3 Fixing broken instruction offsets on block splits. 2013-12-27 15:00:34 -08:00
Ben Vanik
c17122e022 Using raw addresses for gpu writeback. 2013-12-15 15:32:06 -08:00
Ben Vanik
fdb6a5cfa3 Initial Alloy implementation.
This is a regression in functionality and performance, but a much better
foundation for the future of the project (I think). It can run basic
apps under an SSA interpreter but doesn't support some of the features
required to do real 360 apps yet.
2013-12-06 22:57:16 -08:00
Ben Vanik
68b8737a58 SETXXv, CNDXXv, SETXXs - may not be right. 2013-11-17 15:20:50 -08:00
Ben Vanik
1f4795e7d4 Fixing shader file names. 2013-11-17 15:20:28 -08:00
Ben Vanik
9441fb8b7a Finally figured out MUL/ADD/SUB_CONST_* 2013-11-16 18:27:17 -08:00
Ben Vanik
1592cf96f7 MAX4v, MINs, MAXs 2013-11-16 16:59:33 -08:00
Ben Vanik
798cad6f87 DOT2ADDv 2013-11-16 16:15:23 -08:00
Ben Vanik
8398ea4925 I lied, MULADD was not that way. 2013-11-16 05:16:11 -08:00
Ben Vanik
60f48bdd32 Always write oPos. 2013-11-16 04:39:26 -08:00
Ben Vanik
7491058ffd Adding --dump_shaders=path/. 2013-11-16 04:39:16 -08:00
Ben Vanik
8440c9059a Fixing order of MULADDv. 2013-11-16 04:35:08 -08:00
Ben Vanik
271abbf874 Adding --trace_ring_buffer. 2013-11-16 03:06:55 -08:00
gibbed
faa67028ce Mystery GPU registers. 2013-10-27 18:44:20 -07:00
Ben Vanik
2de906f3d6 Hacking around with shaders. Pretty sure this is all wrong. 2013-10-27 18:33:50 -07:00
Ben Vanik
0355047838 PM4_LOAD_ALU_CONSTANT 2013-10-27 16:18:54 -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
d065ee43e8 PM4_SET_CONSTANT for registers. 2013-10-22 21:32:04 -07:00
Ben Vanik
62d4d5ce84 Randomly messing with address translation. Still not right. 2013-10-22 21:05:56 -07:00
Ben Vanik
e0b6d0f689 Cleaning up packet reading/endianness. 2013-10-22 20:47:27 -07:00
Ben Vanik
d00f4d58e9 Better byte swapping in ringbuffer and fixed logging. 2013-10-20 18:34:46 -07:00
Ben Vanik
cddab7ffb0 Fixing free. 2013-10-20 15:28:00 -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
889e586cab Skeleton for new draw type and texture fetching. 2013-10-19 21:49:25 -07:00
Ben Vanik
62b792c903 Ignoring a packet I don't care about. 2013-10-19 20:30:36 -07:00
Ben Vanik
68d5f33cfa GPU byte swapping.
A lot of other packets likely do this.
2013-10-19 16:29:00 -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
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
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
f409795dd1 Fixing PM4 type 0 packet parsing. 2013-10-15 20:24:32 -07:00
Ben Vanik
0b24356080 Skipping unknown form of PM4_EVENT_WRITE_SHD for now. 2013-10-14 21:35:23 -07:00
Ben Vanik
2eed0b1575 Fixing wraparound.
This still needs a tremendous amount of cleanup.
2013-10-13 21:18:23 -07:00
Ben Vanik
4887234bba Fixing ring buffer wrap around. I think. 2013-10-13 13:39:46 -07:00
Ben Vanik
e0af361d74 Preventing (one of likely many) race condition with ringbuffer.
This was causing acks for commands not executed if the CPU ran faster
than the GPU.
2013-10-13 12:17:07 -07:00
Ben Vanik
41a652dd03 Manual reset was not the solution. Bah. 2013-10-13 12:09:25 -07:00
Ben Vanik
f49e35636d Fixing uninitialized members.
Wish VC++ warned about this line clang does...
2013-10-13 11:14:46 -07:00
Ben Vanik
c6d779920d Switch ring buffer wait event to manual reset.
Avoids timing issues with kicks.
2013-10-13 11:06:45 -07:00
Ben Vanik
fa4c7cdd83 Wait until the ringbuffer thread is spun up.
This could be made much nicer.
2013-10-13 11:06:29 -07:00
Ben Vanik
cc12f0b96a Periodically fire interrupts. 2013-10-13 11:06:13 -07:00
Ben Vanik
96a857e892 Massively disgusting and incomplete shader translator. 2013-10-12 22:14:23 -07:00
Ben Vanik
0ef278325f Hacking to get first triangle drawn. 2013-10-12 15:07:34 -07:00