diff options
Diffstat (limited to 'src/emu/machine/segacdblock.c')
| -rw-r--r-- | src/emu/machine/segacdblock.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/emu/machine/segacdblock.c b/src/emu/machine/segacdblock.c index f2ab60a2102..72df5cadffd 100644 --- a/src/emu/machine/segacdblock.c +++ b/src/emu/machine/segacdblock.c @@ -857,8 +857,17 @@ void segacdblock_device::cd_cmd_play_disc() } else { - printf("track mode\n"); - debugger_break(machine()); + + m_CurrentTrack = (start_pos >> 8) & 0xff; + printf("track mode %d\n",m_CurrentTrack); + + if(m_CurrentTrack == 0) + debugger_break(machine()); + else + { + m_FAD = cdrom_get_track_start(cdrom, m_CurrentTrack-1); + // cdda + } } if(end_pos & 0x800000) @@ -872,8 +881,14 @@ void segacdblock_device::cd_cmd_play_disc() } else { - printf("resume pause state\n"); - debugger_break(machine()); + printf("resume pause state %08x\n",end_pos); + if(end_pos == 0xffffff) + debugger_break(machine()); + else + { + /**< @todo m_FAD too? */ + m_FADEnd = cdrom_get_track_start(cdrom, m_CurrentTrack) - m_FAD; + } } status_change = (m_cd_state & 0x0f00) != CD_STAT_PLAY; @@ -1829,7 +1844,6 @@ void segacdblock_device::device_timer(emu_timer &timer, device_timer_id id, int else { p_ok = 1; // TODO - //machine().device<cdda_device>("cdda")->start_audio(cd_curfad, 1); } } |
