mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
Port from MESS, nw
This commit is contained in:
parent
dea70e7f6a
commit
426f43c1ec
@ -1810,6 +1810,8 @@ static TIMER_DEVICE_CALLBACK( saturn_scanline )
|
||||
else
|
||||
state->m_scu.ist |= (IRQ_VBLANK_IN);
|
||||
|
||||
video_update_vdp1(timer.machine());
|
||||
|
||||
if(!(state->m_scu.ism & IRQ_VDP1_END))
|
||||
{
|
||||
device_set_input_line_and_vector(state->m_maincpu, 0x2, HOLD_LINE, 0x4d);
|
||||
@ -1818,7 +1820,6 @@ static TIMER_DEVICE_CALLBACK( saturn_scanline )
|
||||
else
|
||||
state->m_scu.ist |= (IRQ_VDP1_END);
|
||||
|
||||
video_update_vdp1(timer.machine());
|
||||
}
|
||||
else if((scanline % y_step) == 0 && scanline < vblank_line*y_step)
|
||||
{
|
||||
|
@ -611,7 +611,7 @@ static void cd_writeWord(running_machine &machine, UINT32 addr, UINT16 data)
|
||||
// CDROM_LOG(("WW CR4: %04x\n", data))
|
||||
cr4 = data;
|
||||
if(cr1 != 0 && ((cr1 & 0xff00) != 0x5100) && 1)
|
||||
printf("CD: command exec %02x %02x %02x %02x %02x (stat %04x)\n", hirqreg, cr1, cr2, cr3, cr4, cd_stat);
|
||||
printf("CD: command exec %04x %04x %04x %04x %04x (stat %04x)\n", hirqreg, cr1, cr2, cr3, cr4, cd_stat);
|
||||
|
||||
if (!cdrom)
|
||||
{
|
||||
@ -808,13 +808,18 @@ static void cd_writeWord(running_machine &machine, UINT32 addr, UINT16 data)
|
||||
}
|
||||
else // play until the end of the disc
|
||||
{
|
||||
UINT32 start_pos;
|
||||
UINT32 start_pos,end_pos;
|
||||
|
||||
start_pos = ((cr1&0xff)<<16) | cr2;
|
||||
end_pos = ((cr3&0xff)<<16) | cr4;
|
||||
|
||||
if(start_pos != 0xffffff)
|
||||
{
|
||||
fadstoplay = (cdrom_get_track_start(cdrom, 0xaa)) - cd_curfad;
|
||||
/* Madou Monogatari sets 0xff80xxxx as end position, needs investigation ... */
|
||||
if(end_pos & 0x800000)
|
||||
fadstoplay = end_pos & 0xfffff;
|
||||
else
|
||||
fadstoplay = (cdrom_get_track_start(cdrom, 0xaa)) - cd_curfad;
|
||||
printf("track mode %08x %08x\n",cd_curfad,fadstoplay);
|
||||
}
|
||||
else /* Galaxy Fight calls 10ff ffff ffff ffff, resume/restart previously called track */
|
||||
@ -1285,6 +1290,11 @@ static void cd_writeWord(running_machine &machine, UINT32 addr, UINT16 data)
|
||||
|
||||
partitions[bufnum].numblks -= sectnum;
|
||||
|
||||
if (freeblocks == 200)
|
||||
{
|
||||
sectorstore = 0;
|
||||
}
|
||||
|
||||
cd_stat &= ~CD_STAT_TRANS;
|
||||
cr_standard_return(cd_stat);
|
||||
hirqreg |= (CMOK|EHST);
|
||||
|
@ -309,6 +309,9 @@ WRITE16_HANDLER( saturn_vdp1_regs_w )
|
||||
case 0x0a/2:
|
||||
if ( VDP1_LOG ) logerror( "VDP1: Erase lower-right coord set: %08X\n", data );
|
||||
break;
|
||||
case 0x0c/2:
|
||||
if ( VDP1_LOG ) logerror( "VDP1: Draw forced termination register write: %08X\n", data );
|
||||
break;
|
||||
default:
|
||||
printf("Warning: write to unknown VDP1 reg %08x %08x\n",offset*2,data);
|
||||
break;
|
||||
|
@ -4166,10 +4166,9 @@ static void stv_vdp2_check_tilemap(running_machine &machine, bitmap_t *bitmap, c
|
||||
}
|
||||
}
|
||||
|
||||
if((STV_VDP2_MZCTL & 0x1f) != 0 && VDP2_ERR(2))
|
||||
if(STV_VDP2_MZCTL & 0x1f)
|
||||
{
|
||||
VDP2_CHK(2);
|
||||
mame_printf_debug("Mosaic control enabled = %04x\n",STV_VDP2_MZCTL);
|
||||
printf("Mosaic control enabled = %04x\n",STV_VDP2_MZCTL);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user