Commit graph

122 commits

Author SHA1 Message Date
Matt Borgerson
d53f884ec1 nv2a: Remove HACK HACK HACK code 2018-07-25 02:03:30 +02:00
Jannik Vogel
32bf810a59 xid: Improve emulation based on tests with real hardware
XID tests with a real Duke controller were done.
The results have been added to XboxDevWiki.

The behaviour documented on XboxDevWiki has then been implemented:
- XID_GET_CAPABILITIES is now supported
- Interrupt-out doesn't STALL anymore
- More accurate STALL conditions
- Packet truncation to actual length
- XID descriptor dumped from real Duke controller
2018-07-21 19:34:34 -07:00
Jannik Vogel
4ffe83b696 nv2a: Add ARL-bias to work around OpenGL float behaviour 2018-07-12 15:10:59 -07:00
Matt Borgerson
2497e2d7c4 nv2a: Add support for window clipping
Fixes several games which utilize clipping, such as Halo:CE which
uses clipping in multiplayer to render multiple player screens.

Research and original PoC work done by Jannik Vogel:
- JayFoxRox/xqemu-espes@c05d91b
- JayFoxRox/xqemu-espes@a254830
2018-07-10 01:11:05 +02:00
Jannik Vogel
67500be6e6 Add SDL flags and libs to objects which use it 2018-07-08 12:58:21 -07:00
Jannik Vogel
a9db473231 Check for GL debug extensions before use 2018-07-01 14:50:50 -07:00
Jannik Vogel
0f190369d3 Switch from GLEW to epoxy 2018-07-01 14:21:53 -07:00
Matt Borgerson
0523deaa93 nv2a: Recycle FIFO command queue memory
This patch adds an additional "retired" queue in which FIFO command
entry objects are placed after execution. This queue of objects is then
returned to the pusher's new "available" queue for re-use.

This improves the performance of the system by avoiding the costly
overhead associated with the general-purpose use of `malloc` and `free`
for previous allocation of FIFO command queue objects.
2018-06-28 10:17:57 -07:00
Matt Borgerson
6eb2e9ac93 Update Xbox Makefile.objs 2018-06-26 17:07:42 -07:00
Matt Borgerson
dc57d0e3c0 Add offscreen GL code 2018-06-26 17:07:41 -07:00
Matt Borgerson
584dbda1d6 Fix and refactor NV2A code
This patch does the following:
- Fixes up things for Qemu 2.x compat
- Factors out the high-level NV2A blocks into separate files
- Updates g-lru-cache for latest glib compat (github.com/chergert/glrucache@c10af24)
- Changes texture hashing algorithm from FNV to xxH v0.6.5
2018-06-26 17:07:41 -07:00
Matt Borgerson
cff0d97e35 Add SDL2 gamepad based XID emulation 2018-06-26 17:07:41 -07:00
Matt Borgerson
6629cc354a Fix keyboard based XID emulation 2018-06-26 17:07:41 -07:00
Matt Borgerson
20414991be Fix Xbox ACI/APU code 2018-06-26 17:07:41 -07:00
Matt Borgerson
a87f67f143 Fix Xbox SuperIO code 2018-06-26 17:07:41 -07:00
Matt Borgerson
5e1deea596 Fix Xbox ACPI code 2018-06-26 17:07:41 -07:00
Matt Borgerson
fcc596cb7f Fix Xbox DSP code 2018-06-26 17:07:41 -07:00
Matt Borgerson
6f2eafa9bb Fix NVNet code 2018-06-26 17:07:41 -07:00
Matt Borgerson
65c5afbeac Fix Xbox SMBus devices 2018-06-26 17:07:41 -07:00
Matt Borgerson
3486a4f1f4 Fix basic Chihiro machine init (IDE still needs fixing) 2018-06-26 17:07:41 -07:00
Matt Borgerson
8e24af7bda Fix basic Xbox machine init 2018-06-26 17:07:41 -07:00
Matt Borgerson
3f557e6d45 Add hw/xbox sources from XQEMU 1.x @ 4d9107e 2018-06-26 15:08:01 -07:00