Less half-assed fix for SMC-777

This commit is contained in:
Angelo Salese 2013-01-14 16:50:08 +00:00
parent cf41f05d4b
commit 2bcfcce0ed
2 changed files with 15 additions and 3 deletions

View File

@ -51,6 +51,10 @@ Expansion bus stuff:
00022ba4 - init exp bus, write 17x 00 to the selection register to let all expansion devices determine their id on the bus.
00022bd0 - write 0x8f to the selection register to determine if there are too many devices attached.
(11-jan-2013)
"Error, could not open cdrom device"
- ARM finally uploads a program to DSPP, wants something back out of it (reads EO 0xee and unmasks DSPP irq).
*/
#include "emu.h"
@ -611,6 +615,7 @@ WRITE32_MEMBER(_3do_state::_3do_madam_w){
case 0x05d0/4: case 0x05d4/4: case 0x05d8/4: case 0x05dc/4:
case 0x05e0/4: case 0x05e4/4: case 0x05e8/4: case 0x05ec/4:
case 0x05f0/4: case 0x05f4/4: case 0x05f8/4: case 0x05fc/4:
printf("%08x %08x\n",offset*4,data);
m_madam.dma[(offset/4) & 0x1f][offset & 0x03] = data;
return;
@ -935,6 +940,11 @@ WRITE32_MEMBER(_3do_state::_3do_clio_w)
m_clio.slack = data & 0x000003ff;
break;
case 0x0304/4:
if(data)
printf("DMA %08x\n",data);
break;
case 0x0308/4:
m_clio.dmareqdis = data;

View File

@ -190,6 +190,8 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b
if(blink && machine().primary_screen->frame_number() & 0x10) //blinking, used by Dragon's Alphabet
color = bk_pen;
else
color+=m_pal_mode;
for(yi=0;yi<8;yi++)
{
@ -197,9 +199,9 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b
{
int pen;
pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color+m_pal_mode) : bk_pen;
pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color) : bk_pen;
if ((pen != -1) && (pen < SMC777_NUMPENS))
if (pen != -1)
bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = machine().pens[pen];
}
}
@ -1083,7 +1085,7 @@ static MACHINE_CONFIG_START( smc777, smc777_state )
MCFG_SCREEN_VISIBLE_AREA(0, 660-1, 0, 220-1) //normal 640 x 200 + 20 pixels for border color
MCFG_SCREEN_UPDATE_DRIVER(smc777_state, screen_update_smc777)
MCFG_PALETTE_LENGTH(SMC777_NUMPENS)
MCFG_PALETTE_LENGTH(SMC777_NUMPENS)
MCFG_GFXDECODE(smc777)
MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/2, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */