Commit Graph

60540 Commits

Author SHA1 Message Date
wutno 9b8904eda0 Update configure with --disable-stack-protector
As noted in #106 this will produce working builds with GCC versions over 7.3.0-2. Upstream has already done this work-a-round.
2018-09-05 11:45:01 -07:00
Matt Borgerson 5246cad0c1 nvnet: don't trigger interrupt if no packets are sent 2018-09-04 01:20:16 +02:00
Lucas Eriksson c01c27d968 nv2a: Fix EXP and LOG
According to the NV_vertex_program specification, our implementations of
these functions were wrong.
spec:
https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_program.txt
2018-09-04 01:14:55 +02:00
Mayeul Cantan 667fe8536d build.sh: use as many threads as CPUs 2018-08-21 12:17:05 -07:00
Jannik Vogel 92af9ca78e dsp: Implement GP memory register access 2018-07-30 12:27:15 -07:00
Jannik Vogel 2543aaf615 dsp: Fix EP memory register reads; implement writes 2018-07-30 12:27:15 -07:00
Jannik Vogel 57e9059e17 dsp: Fix broken X-Memory map 2018-07-30 12:27:15 -07:00
Matt Borgerson f169ce4c26 nv2a: Move some defs to nv2a.h and fix minor nits 2018-07-25 02:03:30 +02:00
Matt Borgerson 10b3b06320 nv2a: Fix minor prototype style issues 2018-07-25 02:03:30 +02:00
Matt Borgerson 8075a2f7ce nvnet: Fix checkpatch nits 2018-07-25 02:03:30 +02:00
Matt Borgerson f63c322740 smbus: Replace debug printf statements with macro 2018-07-25 02:03:30 +02:00
Matt Borgerson a4c9ee6b13 sio: Replace debug printf statements with macro 2018-07-25 02:03:30 +02:00
Matt Borgerson f0ea80b4bd nv2a: Use a macro to define the nv2a stub handlers 2018-07-25 02:03:30 +02:00
Matt Borgerson 7e7f837bad nv2a: Remove STUB stuff from nv2a.c 2018-07-25 02:03:30 +02:00
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
muemart 592b4dbbf7 deploy: Use `cygpath` to translate `ldd` DLL paths
This patch adds a step in the get_deps.py script to translate the
UNIX style file paths given by `ldd`, which outputs paths of the
required DLLs for XQEMU, to the Windows style equivalents for
deployment of XQEMU on the Windows platform.

This step is necessary due to differences in path handling on
variants of Python in the MSYS2 environment. All variants seem
to handle the Windows style, but some do not understand the UNIX
style.
2018-07-16 20:42:48 -07:00
muemart c5632c9f1e configure: Properly check for epoxy 2018-07-16 23:34:49 +02: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
Lucas Eriksson 50c0e6a45d ui: Set window title to 'XQEMU (Revision: <id>)' 2018-07-01 22:29:01 -07:00
Mayeul Cantan dd3fa1004e Adjust CI configuration to call the unified build script 2018-07-01 14:50:50 -07:00
Mayeul Cantan d9d11bcdc4 Merge build scripts together
The platform is detected at runtime, and the next steps are adjusted
accordingly.
2018-07-01 14:50:50 -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 7f7dc95761 Add XQEMU README.md 2018-06-26 17:07:42 -07:00
Matt Borgerson 27f0b8e54e Set GUI refresh interval to 16ms (~60Hz)--need to confirm on real hw 2018-06-26 17:07:42 -07:00
Matt Borgerson 791418dec4 CI: Add Travis CI support for Linux & macOS builds 2018-06-26 17:07:42 -07:00
Matt Borgerson e675fc038c CI: Add Appveyor support for Windows builds 2018-06-26 17:07:42 -07:00
Matt Borgerson c0a6d0b285 Add XQEMU build scripts for Windows, Linux, and macOS 2018-06-26 17:07:42 -07:00
Matt Borgerson 3a7b349756 Update configure script to force OpenGL support for now 2018-06-26 17:07:42 -07:00
Matt Borgerson ae19795682 Add xbox hardware directory to hw/Makefile.objs 2018-06-26 17:07:42 -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 68ff73b5b5 [Core Change] Add nVidia PCI VID/DIDs 2018-06-26 17:07:40 -07:00
Matt Borgerson 7aa5985eba [Core Change] Port AC97 factorization from XQEMU 1.x 2018-06-26 17:07:40 -07:00
Matt Borgerson cbadd93124 [Core Change] Disable support for some HW to reduce build time and size 2018-06-26 17:07:40 -07:00