Port from MESS, nw

This commit is contained in:
Angelo Salese 2011-07-30 17:43:47 +00:00
parent 62047db3b7
commit 71bfd34f3a
4 changed files with 26 additions and 13 deletions

View File

@ -600,9 +600,9 @@ static WRITE32_HANDLER( saturn_scu_w )
dsp_ram_addr_w(data);
if(LOG_SCU) logerror("SCU DSP: Data RAM Data Port Access %08x\n",data);
break;
case 0x90/4: if(LOG_SCU) logerror("timer 0 compare data = %03x\n",state->m_scu_regs[36]);break;
case 0x94/4: if(LOG_SCU) logerror("timer 1 set data = %08x\n",state->m_scu_regs[37]); break;
case 0x98/4: if(LOG_SCU) logerror("timer 1 mode data = %08x\n",state->m_scu_regs[38]); break;
case 0x90/4: /*if(LOG_SCU) logerror("timer 0 compare data = %03x\n",state->m_scu_regs[36]);*/ break;
case 0x94/4: /*if(LOG_SCU) logerror("timer 1 set data = %08x\n",state->m_scu_regs[37]);*/ break;
case 0x98/4: /*if(LOG_SCU) logerror("timer 1 mode data = %08x\n",state->m_scu_regs[38]);*/ break;
case 0xa0/4: /* IRQ mask */
state->m_scu.ism = state->m_scu_regs[0xa0/4];
scu_test_pending_irq(space->machine());

View File

@ -589,10 +589,6 @@ static void cd_writeWord(running_machine &machine, UINT32 addr, UINT16 data)
case 0x0018:
case 0x001a:
// CDROM_LOG(("WW CR1: %04x\n", data))
/* these are ERRORS from our core and mustn't happen! */
if(data == 0x2100 || data == 0x2300)
debugger_break(machine);
cr1 = data;
cd_stat &= ~CD_STAT_PERI;
break;
@ -931,6 +927,12 @@ static void cd_writeWord(running_machine &machine, UINT32 addr, UINT16 data)
hirqreg |= CMOK|DRDY;
break;
case 0x2100:
case 0x2300:
popmessage("%08x %08x",cd_curfad,fadstoplay);
hirqreg |= (CMOK);
break;
case 0x3000: // Set CD Device connection
{
UINT8 parm;
@ -2062,9 +2064,6 @@ static void cd_playdata(void)
if(cdrom_get_track_type(cdrom, cdrom_get_track(cdrom, cd_curfad)) != CD_TRACK_AUDIO)
cd_read_filtered_sector(cd_curfad);
if(cdrom_get_track_type(cdrom, cdrom_get_track(cdrom, cd_curfad)) != CD_TRACK_AUDIO && 0)
popmessage("%08x %08x",cd_curfad,fadstoplay);
cd_curfad++;
fadstoplay--;

View File

@ -176,9 +176,23 @@ READ16_HANDLER( saturn_vdp1_regs_r )
break;
case 0x12/2: return state->m_vdp1.lopr;
case 0x14/2: return state->m_vdp1.copr;
/* MODR register, read register for the other VDP1 regs
(Shienryu SS version abuses of this during intro, otherwise you get vertical oriented VDP1 sprites on horizontal display) */
case 0x16/2:
printf ("cpu %s (PC=%08X) VDP1: Read from Registers, Offset %04x\n", space->device().tag(), cpu_get_pc(&space->device()), offset*2);
UINT16 modr;
modr = 0x1000; //vdp1 VER
modr |= (STV_VDP1_PTM >> 1) << 8; // PTM1
modr |= STV_VDP1_EOS << 7; // EOS
modr |= STV_VDP1_DIE << 6; // DIE
modr |= STV_VDP1_DIL << 5; // DIL
modr |= STV_VDP1_FCM << 4; //FCM
modr |= STV_VDP1_VBE << 3; //VBE
modr |= STV_VDP1_TVM & 7; //TVM
return modr;
default:
printf ("cpu %s (PC=%08X) VDP1: Read from Registers, Offset %04x\n", space->device().tag(), cpu_get_pc(&space->device()), offset*2);
break;
}

View File

@ -4173,8 +4173,8 @@ static void stv_vdp2_check_tilemap(running_machine &machine, bitmap_t *bitmap, c
if (stv2_current_tilemap.bitmap_enable) // this layer is a bitmap
{
/*elandore doesn't like current cliprect code,will be worked on...*/
if ( window_applied && stv2_current_tilemap.colour_depth != 0)
stv2_current_tilemap.window_control = 0;
//if ( window_applied && stv2_current_tilemap.colour_depth != 4)
// stv2_current_tilemap.window_control = 0;
stv_vdp2_draw_basic_bitmap(machine, bitmap, &mycliprect);
}