diff --git a/src/mame/machine/archimds.c b/src/mame/machine/archimds.c index 7e93bb2993f..22fcf721c58 100644 --- a/src/mame/machine/archimds.c +++ b/src/mame/machine/archimds.c @@ -930,17 +930,17 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_w) { case 0: /* video init */ m_vidc_vidinit = ((data>>2)&0x7fff)*16; - //logerror("MEMC: VIDINIT %08x\n",vidc_vidinit); + //printf("MEMC: VIDINIT %08x\n",m_vidc_vidinit); break; case 1: /* video start */ m_vidc_vidstart = 0x2000000 | (((data>>2)&0x7fff)*16); - //logerror("MEMC: VIDSTART %08x\n",vidc_vidstart); + //printf("MEMC: VIDSTART %08x\n",m_vidc_vidstart); break; case 2: /* video end */ m_vidc_vidend = 0x2000000 | (((data>>2)&0x7fff)*16); - //logerror("MEMC: VIDEND %08x\n",vidc_vidend); + //printf("MEMC: VIDEND %08x\n",m_vidc_vidend); break; case 4: /* sound start */ diff --git a/src/mame/video/archimds.c b/src/mame/video/archimds.c index b77699becf5..77f0e17a484 100644 --- a/src/mame/video/archimds.c +++ b/src/mame/video/archimds.c @@ -77,6 +77,41 @@ UINT32 archimedes_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm } } break; + case 2: //4 bpp + { + for(y=0;ypen((pen>>(xi*4))&0xf); + if (cliprect.contains(res_x, res_y+1) && (res_x) <= xend && (res_y+1) <= yend) + bitmap.pix32(res_y+1, res_x) = m_palette->pen((pen>>(xi*4))&0xf); + } + else + { + if (cliprect.contains(res_x, res_y) && (res_x) <= xend && (res_y) <= yend) + bitmap.pix32(res_y, res_x) = m_palette->pen((pen>>(xi*4))&0xf); + } + } + + count++; + } + } + } + break; case 3: //8 bpp { for(y=0;y