diff --git a/src/vid_voodoo.c b/src/vid_voodoo.c index 62a4304..799d7bd 100644 --- a/src/vid_voodoo.c +++ b/src/vid_voodoo.c @@ -2716,7 +2716,7 @@ static void voodoo_half_triangle(voodoo_t *voodoo, voodoo_params_t *params, vood goto next_line; state->fb_mem = fb_mem = &voodoo->fb_mem[params->draw_offset + (real_y * voodoo->row_width)]; - state->aux_mem = aux_mem = &voodoo->fb_mem[params->aux_offset + (real_y * voodoo->row_width)]; + state->aux_mem = aux_mem = &voodoo->fb_mem[(params->aux_offset + (real_y * voodoo->row_width)) & voodoo->fb_mask]; if (voodoo_output) pclog("%03i: x=%08x x2=%08x xstart=%08x xend=%08x dx=%08x start_x2=%08x\n", state->y, x, x2, state->xstart, state->xend, dx, start_x2); @@ -3857,7 +3857,7 @@ skip_pixel_fill: size_x = voodoo->bltSizeX & 0x1ff; } - dst = (uint64_t *)&voodoo->fb_mem[dst_y*512*8 + dst_x*8]; + dst = (uint64_t *)&voodoo->fb_mem[(dst_y*512*8 + dst_x*8) & voodoo->fb_mask]; for (x = 0; x <= size_x; x++) dst[x] = dat64; @@ -6303,7 +6303,7 @@ static void fifo_thread(void *param) break; default: - fatal("Bad CMDFIFO packet %08x %08x\n", header, voodoo->cmdfifo_rp); + pclog("Bad CMDFIFO packet %08x %08x\n", header, voodoo->cmdfifo_rp); } end_time = timer_read();