diff --git a/src/emu/imagedev/cassette.c b/src/emu/imagedev/cassette.c index 5cc73dd2f2b..8d56985c5f3 100644 --- a/src/emu/imagedev/cassette.c +++ b/src/emu/imagedev/cassette.c @@ -384,4 +384,17 @@ void cassette_image_device::call_display() /* draw the cassette */ ui_draw_text_box(&device().machine().render().ui_container(), buf, JUSTIFY_LEFT, x, y, UI_BACKGROUND_COLOR); + + // make sure tape stops at end when playing + if ((m_state & CASSETTE_MASK_UISTATE) == CASSETTE_PLAY) + { + if ( m_cassette ) + { + if (position > length) + { + m_state = (cassette_state)(( m_state & ~CASSETTE_MASK_UISTATE ) | CASSETTE_STOPPED); + position = length; + } + } + } }