mirror of
https://github.com/holub/mame
synced 2025-05-28 00:31:33 +03:00
MESS: Attempt to partially rewrite AAKART, and added 4bpp video mode for Acorn Archimedes. It now boots at prompt screen, and actually even boots into splash screen and dies almost soon with an error if you provide a properly initialized NVRAM. [Angelo Salese]
This commit is contained in:
parent
a05b9490a1
commit
0a498e31f7
@ -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 */
|
||||
|
@ -77,6 +77,41 @@ UINT32 archimedes_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2: //4 bpp
|
||||
{
|
||||
for(y=0;y<ysize;y++)
|
||||
{
|
||||
for(x=0;x<xsize;x+=2)
|
||||
{
|
||||
pen = vram[count];
|
||||
|
||||
res_x = x+xstart;
|
||||
res_y = (y+ystart)*(m_vidc_interlace+1);
|
||||
|
||||
for(xi=0;xi<2;xi++)
|
||||
{
|
||||
res_x = x+xi+xstart;
|
||||
res_y = (y+ystart)*(m_vidc_interlace+1);
|
||||
|
||||
if(m_vidc_interlace)
|
||||
{
|
||||
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);
|
||||
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<ysize;y++)
|
||||
@ -106,6 +141,9 @@ UINT32 archimedes_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
popmessage("Unemulated bpp mode %02x, contact MAME/MESSdev",m_vidc_bpp_mode);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user