49 Commits

Author SHA1 Message Date
Matt Borgerson
0c2a617819 nv2a: Bump vmstate version for new NV2A_MAX_BATCH_LENGTH 2025-04-18 11:58:22 -07:00
Erik Abair
270dbe01ea nv2a: Increase MAX_BATCH_LENGTH beyond highest known retail use 2025-04-18 10:46:43 -07:00
Erik Abair
69c8df2a3e nv2a: Partial implementation of SET_SPECULAR_PARAMS 2025-04-16 18:24:46 -07:00
Erik Abair
7a34eedd6f nv2a: Partially handle SET_LIGHT_CONTROL 2025-04-16 18:24:46 -07:00
Erik Abair
86c85023e6 nv2a: Handle SET_FOG_COORD and SET_WEIGHT* commands 2025-04-16 14:09:13 -07:00
Erik Abair
672e9cd553 nv2a: Handle SET_SPECULAR_ENABLE 2025-03-28 02:18:42 -07:00
Matt Borgerson
a830cc4526 xbox: Disable clang-format for deliberately aligned reg defs 2025-03-27 23:33:40 -07:00
Matt Borgerson
a5385803db nv2a: Add Vulkan renderer 2024-12-31 01:37:05 -07:00
Matt Borgerson
bb05a4f181 nv2a: Fix SET_ANTI_ALIASING_CONTROL
- Rename from SET_SMOOTHING_CONTROL
- Use correct register
2023-06-11 22:52:32 -07:00
Erik Abair
5cd1e3cbca nv2a: (Probably partial) handling for 1D7C
Implements handling for the unknown 0x1D7C command in order to match observed
behavior in the MS Dashboard and Tenchu: Return from Darkness.

Setting 1D7C's low bit appears to disable the line and poly smoothing commands.

Fixes #1162

[Test](https://github.com/abaire/nxdk_pgraph_tests/blob/main/src/tests/three_d_primitive_tests.cpp)
[HW Results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results-3D_primitive)
2023-06-11 22:44:13 -07:00
Erik Abair
f29c2ff42c nv2a: Handle PVIDEO ds_dx and dt_dy registers
ds_dx and dt_dy describe how the PVIDEO content should be scaled to fit the
output area. Each is calculated via `((in - 1) << 20) / (out - 1)`, this
commit calculates the full frame scale (in / out) and applies that when
determining the texture coordinates for the overlay.
2022-07-18 10:59:08 -07:00
Matt Borgerson
83e16c996d nv2a: Store shading mode in CONTROL_3 2022-06-25 21:11:30 -07:00
Erik Abair
4132845336 nv2a: Implement SET_SHADE_MODEL 2022-06-25 20:39:55 -07:00
Erik Abair
9d2d8691b5 nv2a: Implement NV097_LAUNCH_TRANSFORM_PROGRAM 2022-06-24 20:41:04 -07:00
Matt Borgerson
191f927517 nv2a: Store zclamp config to registers 2022-06-14 17:52:55 -07:00
Erik Abair
875c0659d6 nv2a: Implement gl_depth_clamp control 2022-06-14 17:05:21 -07:00
Matt Borgerson
0cdcdde70c nv2a: Emulate floating Z24S8 with fixed Z24S8 2022-05-25 23:51:05 -07:00
Matt Borgerson
a1f34c339a nv2a: Add SHADOWCTL register to store depth func 2022-05-17 18:13:35 -07:00
Erik Abair
c33d96127c nv2a: Implement shadow samplers 2022-05-17 17:45:16 -07:00
Antonio Abbatangelo
4bd1a07706 nv2a: adjust display resolution in 1080i mode 2022-04-26 13:46:28 -07:00
Erik Abair
8689e640bd nv2a: Add missing vertex attribute setters 2022-02-10 14:35:53 -07:00
Erik Abair
517e4b3414 nv2a: Implement SET_MATERIAL_ALPHA and diffuse color src
This adds support for the material alpha command and updates the fixed function
shader to respect the diffuse source parameter (which was already piped through
but not utilized).
2022-02-05 15:22:03 -07:00
Erik Abair
d17e019684 nv2a: Implement vertex attribute setters 2022-01-24 16:22:52 -07:00
Erik Abair
6b821d2062 nv2a: Implement pvideo color keying 2022-01-22 13:54:40 -07:00
Erik Abair
6e2446e91b nv2a: Support XRGB_ZRGB blit surface format 2022-01-08 02:45:48 -07:00
Erik Abair
a546f07df7 nv2a: Implement BLEND_AND image blit operation 2022-01-08 02:45:48 -07:00
Matt Borgerson
69ceec4446 nv2a: Support gamma correction 2021-11-23 17:49:44 -07:00
Matt Borgerson
47b1487a71 nv2a: Move bump mat into pgraph register file 2021-10-12 01:32:08 -07:00
Mike Davis
0b9a2e1a8f nv2a: Support NV062_SET_COLOR_FORMAT_LE_Y32 blitting 2021-07-18 22:58:16 -07:00
Mike Davis
0f9b862e37
nv2a: Support texture format SZ_DEPTH_Y16_FIXED 2021-07-12 12:15:49 -07:00
Mike Davis
be3df6ab8e nv2a: Support texture format LC_IMAGE_YB8CR8YA8CB8 2021-07-10 23:29:01 -07:00
Mike Davis
ed7cbef976
nv2a: Support texture format COLOR_LU_IMAGE_G8B8 2021-07-10 02:58:18 -07:00
Matt Borgerson
203c76f89c nv2a: Handle point sprites, scaling 2021-07-10 02:42:15 -07:00
Mike Davis
f03015e20e
nv2a: Support texture format COLOR_SZ_B8G8R8A8 2021-07-03 13:10:31 -07:00
Josef Šimánek
df940c0b3f nv2a: Add NV062_SET_COLOR_FORMAT_LE_X8R8G8B8 definition 2021-05-18 13:34:18 -07:00
Matt Borgerson
0bec22318a nv2a: Add Gaussian convolution filter for AA 2020-12-02 16:49:58 -07:00
Matt Borgerson
a34cab69dd nv2a: Support line and poly anti-aliasing 2020-12-01 22:36:09 -07:00
Matt Borgerson
3c6596975d nv2a: Implement dot texture modes and dotmapping 2020-10-28 15:59:20 -07:00
Matt Borgerson
0433c5e6bc nv2a: Simulate PCRTC_RASTER register 2020-10-25 19:52:57 -07:00
Dalai
6936945afa nv2a: Support texture format COLOR_LU_IMAGE_DEPTH_Y16_FLOAT 2020-10-23 13:38:57 -07:00
Matt Borgerson
fcd3764cce nv2a: Handle color material ambient/emissive 2020-09-06 20:42:21 -07:00
Matt Borgerson
bb0fdef251 nv2a: Handle alignment padding between cubemap faces 2020-09-05 16:21:21 -07:00
Stanislav Motylkov
c230d77bc2 nv2a: Add some missing RAMDAC registers
Cromwell sets these registers on video initialization and
guest OS should be able to read them in order to obtain
current screen resolution set up by firmware.
2019-10-18 21:30:16 +01:00
Jannik Vogel
2dc570561e nv2a: Fix VGA get_bpp for X1R5G5B5 2019-10-01 12:48:45 -07:00
Jannik Vogel
f9b9a9bad8 nv2a: Add support for PGRAPH RDI select 0xCC 2019-09-16 12:15:25 -07:00
Jannik Vogel
e42fb24752 nv2a: Add support for PGRAPH RDI select 0x17 2019-09-16 12:15:25 -07:00
Jannik Vogel
973f8db16a nv2a: Support PGRAPH RDI 2019-09-16 12:15:25 -07:00
espes
e12aa122cf relicense xbox components as LGPL
(with permission)
2018-10-10 13:38:16 +10:00
espes
3d33d8101b cleanup nv2a 2018-09-26 17:42:41 +08:00