Added sprite flip y, improved the MCU sim

This commit is contained in:
Angelo Salese 2009-12-26 19:32:09 +00:00
parent 5b3e34c733
commit 62cdb1ae23
2 changed files with 22 additions and 9 deletions

View File

@ -11,6 +11,7 @@
- colors;
- fix remaining video issues;
- sound;
- add flipscreen;
(wait until it completes the post test, then put 1 to be23)
@ -163,8 +164,6 @@ static VIDEO_UPDATE( cyclemb )
spr_offs = (cyclemb_obj1_ram[i+0]);
col = (cyclemb_obj1_ram[i+1] & 0x3f);
region = ((cyclemb_obj3_ram[i] & 0x10) >> 4) + 1;
if(region == 2 && spr_offs & 3)
continue;
if(region == 2)
{
spr_offs >>= 2;
@ -177,8 +176,8 @@ static VIDEO_UPDATE( cyclemb )
//if(cyclemb_obj3_ram[i+1] & 2)
// x-=256;
fx = cyclemb_obj3_ram[i+0] & 4;
fy = 0;
drawgfx_transpen(bitmap,cliprect,screen->machine->gfx[region],spr_offs,col,fx,0,x,y,0);
fy = cyclemb_obj3_ram[i+0] & 8;
drawgfx_transpen(bitmap,cliprect,screen->machine->gfx[region],spr_offs,col,fx,fy,x,y,0);
}
}
@ -243,8 +242,8 @@ static ADDRESS_MAP_START( cyclemb_sound_io, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static INPUT_PORTS_START( cyclemb )
PORT_START("DSWA")
PORT_DIPNAME( 0x01, 0x01, "DSWA" )
PORT_START("DSW1")
PORT_DIPNAME( 0x01, 0x01, "DSW1" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
@ -269,8 +268,8 @@ static INPUT_PORTS_START( cyclemb )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSWB")
PORT_DIPNAME( 0x01, 0x01, "DSWB" )
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, "DSW2" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )

View File

@ -552,7 +552,17 @@ static void cyclemb_8741_w(const address_space *space, int num, int offset, int
mcu->sts |= 0x02;
break;
case 1:
mcu->txd = data ^ 0x40;
/*
status codes:
0x06 sub NG IOX2
0x05 sub NG IOX1
0x04 sub NG CIOS
0x03 sub NG OPN
0x02 sub NG ROM
0x01 sub NG RAM
0x00 ok
*/
mcu->txd = 0 ^ 0x40;
mcu->sts |= 0x02;
#if 1
/* ?? */
@ -567,6 +577,8 @@ static void cyclemb_8741_w(const address_space *space, int num, int offset, int
#endif
break;
case 3: /* normal mode ? */
mcu->rxd = input_port_read(space->machine, "DSW1");
mcu->sts |= 0x01; /* RD ready */
break;
case 0xf0: /* clear main sts ? */
@ -605,7 +617,9 @@ static INT8 cyclemb_8741_r(const address_space *space,int num,int offset)
if(offset==1)
{
if(mcu->rst)
{
mcu->rxd = input_port_read(space->machine, mcu->initReadPort); /* port in */
}
ret = mcu->sts;
LOG(("%s:8741[%d] SR %02X\n",cpuexec_describe_context(space->machine),num,ret));
}