comparison vdp.c @ 2414:dc05f1805921

Fix out of bound read from mode4_address_map in TMS modes
author Michael Pavone <pavone@retrodev.com>
date Thu, 04 Jan 2024 23:31:54 -0800
parents efd2242c2c23
children b0408f38f464
comparison
equal deleted inserted replaced
2413:64cf80e683aa 2414:dc05f1805921
3696 //Graphics II 3696 //Graphics II
3697 uint16_t mask = context->type > VDP_SMS2 ? address & 0x1800 : 0x1800; 3697 uint16_t mask = context->type > VDP_SMS2 ? address & 0x1800 : 0x1800;
3698 address &= 0x2000; 3698 address &= 0x2000;
3699 address |= context->vcounter << 5 & mask; 3699 address |= context->vcounter << 5 & mask;
3700 } 3700 }
3701 address |= context->col_1 << 3; 3701 address |= context->col_1 << 3 & 0x7F8;
3702 if (context->regs[REG_MODE_2] & BIT_M2) { 3702 if (context->regs[REG_MODE_2] & BIT_M2) {
3703 //Multicolor 3703 //Multicolor
3704 address |= context->vcounter >> 2 & 0x3; 3704 address |= context->vcounter >> 2 & 0x3;
3705 } else { 3705 } else {
3706 address |= context->vcounter & 0x7; 3706 address |= context->vcounter & 0x7;