mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
Attempting to change transfer active mechanism, doesn't change anything, to be better investigated ...
This commit is contained in:
parent
4ec96d874a
commit
f17e44f6d6
1 changed files with 7 additions and 11 deletions
|
@ -700,7 +700,10 @@ int segacdblock_device::sega_cdrom_get_adr_control(cdrom_file *file, int track)
|
|||
|
||||
void segacdblock_device::cd_standard_return(bool isPeri)
|
||||
{
|
||||
m_dr[0] = (isPeri == true ? CD_STAT_PERI : 0) | m_cd_state | ((m_playtype == true) ? 0x80 : 0);
|
||||
m_dr[0] = (isPeri == true ? CD_STAT_PERI : 0);
|
||||
m_dr[0]|= (m_TransferActive == true) ? CD_STAT_TRANS : 0;
|
||||
m_dr[0]|= ((m_playtype == true) ? 0x80 : 0);
|
||||
m_dr[0]|= m_cd_state;
|
||||
m_dr[1] = (m_CurrentTrack == 0xff) ? 0xffff : ((sega_cdrom_get_adr_control(cdrom, m_CurrentTrack)<<8) | (cdrom_get_track(cdrom, m_FAD-150)+1));
|
||||
m_dr[2] = 0x0100 | ((m_FAD >> 16) & 0xff);
|
||||
m_dr[3] = m_FAD & 0xffff;
|
||||
|
@ -792,7 +795,6 @@ void segacdblock_device::cd_cmd_end_transfer()
|
|||
m_dr[1] = (m_dma_size>>1) & 0xffff;
|
||||
|
||||
m_TransferActive = false;
|
||||
m_cd_state &= ~CD_STAT_TRANS;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1281,9 +1283,8 @@ void segacdblock_device::cd_cmd_get_sector(bool AutoDelete)
|
|||
transpart = &partitions[bufnum];
|
||||
|
||||
m_TransferActive = true;
|
||||
cd_standard_return(false); // cheap hack
|
||||
cd_standard_return(false);
|
||||
|
||||
m_dr[0] = CD_STAT_TRANS | m_cd_state;
|
||||
xferoffs = 0;
|
||||
xfersect = 0;
|
||||
m_dma_size = 0;
|
||||
|
@ -1314,9 +1315,7 @@ void segacdblock_device::cd_cmd_delete_sector()
|
|||
}
|
||||
// @todo reject states
|
||||
m_TransferActive = false;
|
||||
cd_standard_return(false); // cheap hack
|
||||
|
||||
m_dr[0] = m_cd_state;
|
||||
cd_standard_return(false);
|
||||
|
||||
cd_getsectoroffsetnum(bufnum, §ofs, §num);
|
||||
for (INT32 i = xfersectpos; i < xfersectpos+xfersectnum; i++)
|
||||
|
@ -1389,7 +1388,7 @@ void segacdblock_device::cd_cmd_get_file_info(UINT32 fileid)
|
|||
if (fileid == 0xffffff) // special
|
||||
return; // @todo intentional
|
||||
|
||||
m_dr[0] = m_cd_state;
|
||||
cd_standard_return(false); // cheap hack
|
||||
m_dr[1] = 6;
|
||||
m_dr[2] = 0;
|
||||
m_dr[3] = 0;
|
||||
|
@ -1851,9 +1850,6 @@ void segacdblock_device::device_timer(emu_timer &timer, device_timer_id id, int
|
|||
// m_cd_state = CD_STAT_PAUSE;
|
||||
//else
|
||||
|
||||
if(m_TransferActive == true)
|
||||
m_cd_state|= CD_STAT_TRANS;
|
||||
|
||||
cd_standard_return(true);
|
||||
set_flag(SCDQ);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue