From 17340c44cc8f3c75b61baf740c75001204401df9 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Mon, 27 Nov 2017 23:05:59 +0300 Subject: [PATCH] rsx: method register fixes - Fix VERTEX_DATA_3F_M element alignment (its 16 bytes per attribute) - Fix DATA_2S_X interpretation type. Its signed 16-bit unnormalized (s32k) and not signed normalized (s1) --- rpcs3/Emu/RSX/rsx_methods.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index 72258b5410..27a2df6725 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -50,7 +50,7 @@ namespace rsx template<> struct vertex_data_type_from_element_type { static const vertex_base_type type = vertex_base_type::f; }; template<> struct vertex_data_type_from_element_type { static const vertex_base_type type = vertex_base_type::sf; }; template<> struct vertex_data_type_from_element_type { static const vertex_base_type type = vertex_base_type::ub; }; - template<> struct vertex_data_type_from_element_type { static const vertex_base_type type = vertex_base_type::s1; }; + template<> struct vertex_data_type_from_element_type { static const vertex_base_type type = vertex_base_type::s32k; }; namespace nv406e { @@ -203,7 +203,8 @@ namespace rsx { static void impl(thread* rsx, u32 _reg, u32 arg) { - set_vertex_data_impl(rsx, arg); + //NOTE: attributes are 16-byte aligned (Rachet & Clank 2) + set_vertex_data_impl(rsx, arg); } }; @@ -1527,7 +1528,7 @@ namespace rsx bind_array(); bind_array(); bind_array(); - bind_array(); + bind_array(); bind_array(); bind_array(); bind_array(); @@ -1560,7 +1561,7 @@ namespace rsx bind_range(); bind_range(); bind_range(); - bind_range(); + bind_range(); bind_range(); bind_range(); bind_range();