diff --git a/src/mame/video/n64.c b/src/mame/video/n64.c index 6edb92cb2c9..8a8373ffc59 100644 --- a/src/mame/video/n64.c +++ b/src/mame/video/n64.c @@ -1983,6 +1983,9 @@ void n64_rdp::DrawTriangle(bool shade, bool texture, bool zbuffer, bool rect) int dzdx_dz = (dzdx >> 16) & 0xffff; extent_t Spans[2048]; +#ifdef MAME_DEBUG + memset(Spans, 0xcc, sizeof(Spans)); +#endif SpanBase.m_span_drdy = drdy; SpanBase.m_span_dgdy = dgdy; diff --git a/src/mame/video/rdpspn16.c b/src/mame/video/rdpspn16.c index d1ac11eb437..8a1f23faac4 100644 --- a/src/mame/video/rdpspn16.c +++ b/src/mame/video/rdpspn16.c @@ -152,6 +152,11 @@ void n64_rdp::SpanDraw1Cycle(INT32 scanline, const extent_t &extent, const rdp_p INT32 tile1 = tilenum; +#ifdef PTR64 + assert(extent.userdata != (const void *)0xcccccccccccccccc); +#else + assert(extent.userdata != (const void *)0xcccccccc); +#endif rdp_span_aux *userdata = (rdp_span_aux*)extent.userdata; INT32 m_clamp_s_diff[8]; @@ -325,6 +330,11 @@ void n64_rdp::SpanDraw2Cycle(INT32 scanline, const extent_t &extent, const rdp_p INT32 news = 0; INT32 newt = 0; +#ifdef PTR64 + assert(extent.userdata != (const void *)0xcccccccccccccccc); +#else + assert(extent.userdata != (const void *)0xcccccccc); +#endif rdp_span_aux *userdata = (rdp_span_aux*)extent.userdata; INT32 m_clamp_s_diff[8]; @@ -367,6 +377,9 @@ void n64_rdp::SpanDraw2Cycle(INT32 scanline, const extent_t &extent, const rdp_p dzinc = 0; } + if (object.MiscState.FBSize < 2 || object.MiscState.FBSize > 4) + fatalerror("unsupported FBSize %d\n", object.MiscState.FBSize); + int blend_index = (object.OtherModes.alpha_cvg_select ? 2 : 0) | ((object.OtherModes.rgb_dither_sel < 3) ? 1 : 0); int read_index = ((object.MiscState.FBSize - 2) << 1) | object.OtherModes.image_read_en; int write_index = ((object.MiscState.FBSize - 2) << 3) | (object.OtherModes.cvg_dest << 1);