Commit Graph

118992 Commits

Author SHA1 Message Date
Matt Borgerson e02e41ccaa nvnet: Move to hw/xbox/mcpx/nvnet 2025-06-03 19:36:08 -07:00
Matt Borgerson ba297f3b69 mcpx: Move APU components to hw/xbox/mcpx/apu 2025-06-03 19:36:08 -07:00
Matt Borgerson 395d136364 mcpx: Cleanup monitor 2025-06-03 19:36:08 -07:00
Matt Borgerson 829ec66757 mcpx: Rename {dsp->gp_ep}.c,h for clarity 2025-06-03 19:36:08 -07:00
Matt Borgerson 2f99d04730 mcpx: Minor cleanup 2025-06-03 19:36:08 -07:00
Matt Borgerson 979499ffe5 mcpx: Move SGE handles to VP struct 2025-06-03 19:36:08 -07:00
Matt Borgerson 04273de749 mcpx: Move DSP state structs to dsp.h 2025-06-03 19:36:08 -07:00
Matt Borgerson 7ab7f65cdf mcpx: Reorder functions, drop some protos 2025-06-03 19:36:08 -07:00
Matt Borgerson 068a623c54 mcpx: Move VP state struct to vp.h 2025-06-03 19:36:08 -07:00
Matt Borgerson ba6f7f360e mcpx: Move VP files into vp/ 2025-06-03 19:36:08 -07:00
Matt Borgerson 2321dbfeb6 mcpx: Split some VP structs out to vp.h 2025-06-03 19:36:08 -07:00
Matt Borgerson 8ee8732aad mcpx: Drop some redundant protos 2025-06-03 19:36:08 -07:00
Matt Borgerson 9bdeb2d793 mcpx: Add inline keyword to float conversion helpers 2025-06-03 19:36:08 -07:00
Matt Borgerson bf9985e7bf mcpx: Move DSP functions to dsp.c 2025-06-03 19:36:08 -07:00
Matt Borgerson 2d5c4fa34d mcpx: Move VP functions to vp.c 2025-06-03 19:36:08 -07:00
Matt Borgerson bee1cb6006 mcpx: Move debug functions to debug.c 2025-06-03 19:36:08 -07:00
Matt Borgerson eb88acf4c0 mcpx: Move some definitions to apu_int.h 2025-06-03 19:36:08 -07:00
Erik Abair 9732026aca nv2a: Ignore unsupported depth funcs to match HW 2025-06-03 12:11:46 -07:00
Matt Borgerson 26c451fc36 mcpx: Process voices concurrently 2025-06-03 01:54:09 -07:00
dependabot[bot] 549861a247 ci: bump docker/build-push-action from 6.17.0 to 6.18.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.17.0 to 6.18.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](1dc7386353...263435318d)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 11:43:17 -07:00
Matt Borgerson 344f7da132 mcpx: Support 3D voice HRTF filtering 2025-05-31 17:16:54 -07:00
Matt Borgerson 05b1f2c13d mcpx: Define a constant for 3D voice count 2025-05-31 17:16:54 -07:00
Matt Borgerson 38d33367ea xbox: Move xbox machine property creation to class init handler 2025-05-27 19:38:54 -07:00
dependabot[bot] e00aa20106 ci: bump astral-sh/setup-uv from 6.0.1 to 6.1.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.0.1 to 6.1.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](6b9c6063ab...f0ec1fc3b3)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-27 12:44:01 -07:00
Erik Abair 8667193001 nv2a: Prevent NaN in specular power factor calculation 2025-05-20 13:28:39 -07:00
coldhex ce936bccdd nv2a/gl: y-flipped rendering to framebuffer object
Render scenes upside-down to framebuffer objects (FBO). The strange thing
about rendering to OpenGL FBO is that it follows the bottom-left triangle
rasterization rule with common PC GPUs. At least Intel and AMD. NVIDIA to
be tested. My raster-rule-test github gist demonstrates this.

This commit flips coordinates in y-direction, which effectively turns the
bottom-left rule into top-left rule needed for Xbox compatibility.

This (together with the previous commit) fixes Midtown Madness 3 Seine
water rectangular seam rendering artifacts (and the remaining seams are
present with Xbox hardware too.) May fix similar artifacts in other games.
2025-05-20 13:15:12 -07:00
coldhex a316d74872 nv2a: Use trunc in vertex rounding instead of floor
Xbox seems to truncate instead of flooring, which can be inferred from
interpolated depth buffer values.
2025-05-20 13:15:12 -07:00
coldhex 11dcae01b9 nv2a: implement screen coordinate rounding to 4 bit fractional precision
Xbox triangle rasterization appears to follow the usual top-left rule.
However, since Xemu renders to an OpenGL framebuffer object (FBO) instead
of directly to the default framebuffer, Xemu actually has what could be
called the bottom-left triangle rasterization rule. I'll address that in
another commit.

Also, note that the ProjAdjacentGeometry_0.5625 test in nxdk_pgraph_tests
is very sensitive to floating point rounding errors. For example, the
nxdk_pgraph_tests commit 66b32a0b1feba32a0db7a95d6358e84f7a6246ad changed
the math library which caused the test result to change also on real Xbox
hardware due to floating point rounding error differences in matrix
inverse computation. Apart from the bottom-left rasterization issue, the
differing result between Xbox and the rounding I am proposing here for
Xemu seems to stem from floating point rounding that happens in screen
coordinate calculations before the rounding to 4 bit precision takes place.
Fixing such rounding issues would require carrying all preceding floating
point computations exactly in the same order and with same precision as
Xbox. Note that Xbox Direct3D library seems to add 0.03125 (1/32) to
screen coordinates by default. Likely the idea there was to make floating
point screen coordinates round to the nearest screen coordinates in
4 bit fixed point precision. So the Xbox Direct3D library (and therefore
games) already mitigate against precarious rounding when exactly
half-integer coordinates are used by games. Actually they would use
integer coordinates because it is Direct3D 8, but since nv2a appears to
rasterize at half-integer coordinates like OpenGL, Xbox Direct3D
also adds 0.5 to screen coordinates in addition to 1/32.
2025-05-20 13:15:12 -07:00
Shiralyn ef1b08d79d
ui: Add "allow vibration" input setting 2025-05-20 11:37:29 -07:00
xemu-robot c9cdd76102 meson: Bump VulkanMemoryAllocator to v3.3.0 2025-05-19 22:34:54 -07:00
dependabot[bot] d8b1cae1fd ci: bump docker/build-push-action from 6.16.0 to 6.17.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](14487ce63c...1dc7386353)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 22:29:41 -07:00
Erik Abair c720af00bb
nv2a/vsh: Replace NaN with 1.0 for Bx, Dx, Fog outputs and MUL zero-check 2025-05-15 12:54:56 -07:00
Erik Abair bd3cd78ae4 ui: Toggle fullscreen on mouse double click 2025-05-15 09:06:55 -07:00
Erik Abair 428c975f09 nv2a: Allow multiframe RenderDoc captures with nv2a traces
Allows multiple frames to be captured at once by holding shift while pressing
F10.

Temporarily toggles nv2a trace messages if control is held while pressing F10.
2025-05-15 08:37:13 -07:00
xemu-robot f7e40b2b80 meson: Bump SPIRV-Reflect to vulkan-sdk-1.4.313.0 2025-05-15 07:14:36 -07:00
dependabot[bot] 687bf62972 ci: bump astral-sh/setup-uv from 6.0.0 to 6.0.1
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](c7f87aa956...6b9c6063ab)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 14:50:27 -07:00
Erik Abair d593869429
nv2a: Move point params to uniforms
Co-authored-by: Matt Borgerson <contact@mborgerson.com>
2025-04-30 23:43:38 -07:00
Matt Borgerson 6e513ed948 nv2a/psh: Fix 2D texture addressing in DOT_STR_3D mode 2025-04-29 23:41:05 -07:00
dependabot[bot] b48f84af79 ci: bump docker/build-push-action from 6.15.0 to 6.16.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](471d1dc4e0...14487ce63c)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-27 23:24:10 -07:00
dependabot[bot] 7108c7a37c ci: bump actions/setup-python from 5.5.0 to 5.6.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.5.0 to 5.6.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.5.0...v5.6.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 5.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-27 23:21:47 -07:00
dependabot[bot] 5af43523ab ci: bump actions/download-artifact from 4.2.1 to 4.3.0
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.2.1 to 4.3.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](95815c38cf...d3f86a106a)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-27 23:20:59 -07:00
Matt Borgerson 8f89ef14d7 ci: Use XEMU_ROBOT_TOKEN for PR creation to trigger build workflow 2025-04-26 16:46:55 -07:00
xemu-robot 4dfbe29cbd meson: Bump SPIRV-Reflect to vulkan-sdk-1.4.309.0 2025-04-26 16:23:43 -07:00
xemu-robot a3dc079706 meson: Bump glslang to 15.3.0 2025-04-26 16:23:12 -07:00
xemu-robot 668017518a meson: Bump tomlplusplus to v3.4.0 2025-04-26 16:20:59 -07:00
mborgerson c4b554fd80
meson: Add tag regex for subproject wrap auto-updater 2025-04-26 16:13:13 -07:00
xemu-robot 1e1ef6fbb9 meson: Bump volk to 1.4.304 2025-04-26 16:04:34 -07:00
xemu-robot c035ff9f5d meson: Bump VulkanMemoryAllocator to v3.2.1 2025-04-26 16:04:16 -07:00
Matt Borgerson 362c27b235 ci: Auto-update subproject wraps periodically 2025-04-26 16:02:21 -07:00
Erik Abair 89185e6937 nv2a/psh: Fix default alpha for unbound texture samplers 2025-04-22 20:16:15 -07:00