# HG changeset patch # User Michael Pavone # Date 1542705003 28800 # Node ID cf4e387a8db623507796ad75bb51aef3f99db145 # Parent 6909c5d0bbb50ffa4e27b76c473a066c3b255dee Populate layer debug buffer during inactive display diff -r 6909c5d0bbb5 -r cf4e387a8db6 vdp.c --- a/vdp.c Mon Nov 19 19:26:57 2018 -0800 +++ b/vdp.c Tue Nov 20 01:10:03 2018 -0800 @@ -2902,18 +2902,26 @@ active_line = 0x200; } } - uint32_t *dst = ( - context->vcounter < context->inactive_start + context->border_bot - || context->vcounter >= 0x200 - context->border_top - ) && context->hslot >= BG_START_SLOT && context->hslot < bg_end_slot - ? context->output + 2 * (context->hslot - BG_START_SLOT) - : NULL; + uint32_t *dst; + uint8_t *debug_dst; + if ( + ( + context->vcounter < context->inactive_start + context->border_bot + || context->vcounter >= 0x200 - context->border_top + ) && context->hslot >= BG_START_SLOT && context->hslot < bg_end_slot + ) { + dst = context->output + 2 * (context->hslot - BG_START_SLOT); + debug_dst = context->layer_debug_buf + 2 * (context->hslot - BG_START_SLOT); + } else { + dst = NULL; + } if ( !dst && context->vcounter == context->inactive_start + context->border_bot && context->hslot >= line_change && context->hslot < bg_end_slot ) { dst = context->output + 2 * (context->hslot - BG_START_SLOT); + debug_dst = context->layer_debug_buf + 2 * (context->hslot - BG_START_SLOT); } uint8_t test_layer = context->test_port >> 7 & 3; @@ -2929,6 +2937,7 @@ || context->vcounter >= 0x200 - context->border_top )) { dst = context->output + (context->hslot - BG_START_SLOT) * 2; + debug_dst = context->layer_debug_buf + 2 * (context->hslot - BG_START_SLOT); } else if (context->hslot == bg_end_slot) { advance_output_line(context); dst = NULL; @@ -2989,17 +2998,22 @@ } if (dst >= context->done_output) { *(dst++) = bg_color; + *(debug_dst++) = DBG_SRC_BG; } else { dst++; + debug_dst++; } if (dst >= context->done_output) { *(dst++) = bg_color; + *(debug_dst++) = DBG_SRC_BG; context->done_output = dst; } else { dst++; + debug_dst++; } if (context->hslot == (bg_end_slot-1)) { *(dst++) = bg_color; + *(debug_dst++) = DBG_SRC_BG; context->done_output = dst; } }