From 988c29064a9fa2a4e179a3838b7d1b48d14068c8 Mon Sep 17 00:00:00 2001 From: fuel-pcbox Date: Thu, 24 Apr 2025 08:01:48 -0500 Subject: [PATCH 1/3] Fix --- src/video/nv/nv3/classes/nv3_class_006_pattern.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/video/nv/nv3/classes/nv3_class_006_pattern.c b/src/video/nv/nv3/classes/nv3_class_006_pattern.c index b66db499e..5aa5bf0fc 100644 --- a/src/video/nv/nv3/classes/nv3_class_006_pattern.c +++ b/src/video/nv/nv3/classes/nv3_class_006_pattern.c @@ -60,13 +60,17 @@ void nv3_class_006_method(uint32_t param, uint32_t method_id, nv3_ramin_context_ case NV3_PATTERN_UNUSED_DRIVER_BUG: break; case NV3_PATTERN_COLOR0: + { nv3_color_expanded_t expanded_colour0 = nv3_render_expand_color(param, grobj); nv3_render_set_pattern_color(expanded_colour0, false); break; + } case NV3_PATTERN_COLOR1: + { nv3_color_expanded_t expanded_colour1 = nv3_render_expand_color(param, grobj); nv3_render_set_pattern_color(expanded_colour1, true); break; + } case NV3_PATTERN_BITMAP_HIGH: nv3->pgraph.pattern_bitmap = 0; //reset nv3->pgraph.pattern_bitmap |= ((uint64_t)param << 32); From 5c9a9404d5418d481a5abd4737db7366bfd0d3ca Mon Sep 17 00:00:00 2001 From: fuel-pcbox Date: Thu, 24 Apr 2025 08:16:39 -0500 Subject: [PATCH 2/3] Fix --- src/video/nv/nv3/render/nv3_render_core.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/video/nv/nv3/render/nv3_render_core.c b/src/video/nv/nv3/render/nv3_render_core.c index d03ee9481..acbf9fa05 100644 --- a/src/video/nv/nv3/render/nv3_render_core.c +++ b/src/video/nv/nv3/render/nv3_render_core.c @@ -443,6 +443,7 @@ void nv3_render_write_pixel(nv3_coord_16_t position, uint32_t color, nv3_grobj_t break; case 15: case 16: + { uint16_t* vram_16 = (uint16_t*)(nv3->nvbase.svga.vram); pixel_addr_vram >>= 1; @@ -471,7 +472,9 @@ void nv3_render_write_pixel(nv3_coord_16_t position, uint32_t color, nv3_grobj_t nv3->nvbase.svga.changedvram[pixel_addr_vram >> 11] = changeframecount; break; + } case 32: + { uint32_t* vram_32 = (uint32_t*)(nv3->nvbase.svga.vram); pixel_addr_vram >>= 2; @@ -482,6 +485,7 @@ void nv3_render_write_pixel(nv3_coord_16_t position, uint32_t color, nv3_grobj_t nv3->nvbase.svga.changedvram[pixel_addr_vram >> 10] = changeframecount; break; + } } /* Go write the pixel */ From a4af738ede11afcbd02c2dd892b2dbff6d575c6c Mon Sep 17 00:00:00 2001 From: fuel-pcbox Date: Thu, 24 Apr 2025 08:20:19 -0500 Subject: [PATCH 3/3] More fixes --- src/video/nv/nv3/classes/nv3_class_01c_image_in_memory.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/video/nv/nv3/classes/nv3_class_01c_image_in_memory.c b/src/video/nv/nv3/classes/nv3_class_01c_image_in_memory.c index 5a1d08733..a35135672 100644 --- a/src/video/nv/nv3/classes/nv3_class_01c_image_in_memory.c +++ b/src/video/nv/nv3/classes/nv3_class_01c_image_in_memory.c @@ -38,6 +38,7 @@ void nv3_class_01c_method(uint32_t param, uint32_t method_id, nv3_ramin_context_ { /* Color format of the image */ case NV3_IMAGE_IN_MEMORY_COLOR_FORMAT: + { // convert to how the bpixel registers represent surface uint32_t real_format = 1; @@ -65,6 +66,7 @@ void nv3_class_01c_method(uint32_t param, uint32_t method_id, nv3_ramin_context_ nv_log("Method Execution: Image in Memory BUF%d COLOR_FORMAT=0x%04x\n", src_buffer_id, param); break; + } /* DOn't log invalid */ case NV3_IMAGE_IN_MEMORY_IN_MEMORY_DMA_CTX_TYPE: nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);