From 7b1f94e316155f084073f9318403c10b8c45c30b Mon Sep 17 00:00:00 2001 From: cracyc Date: Sat, 26 Jan 2013 16:26:25 +0000 Subject: [PATCH] [mess] force controller reset with sio reset (nw) --- src/emu/cpu/psx/sio.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/emu/cpu/psx/sio.c b/src/emu/cpu/psx/sio.c index 8f4906a5623..c2a8a7f8fe7 100644 --- a/src/emu/cpu/psx/sio.c +++ b/src/emu/cpu/psx/sio.c @@ -263,6 +263,11 @@ WRITE32_MEMBER( psxsio_device::write ) verboselog( machine(), 1, "psx_sio_w reset\n" ); m_status |= SIO_STATUS_TX_EMPTY | SIO_STATUS_TX_RDY; m_status &= ~( SIO_STATUS_RX_RDY | SIO_STATUS_OVERRUN | SIO_STATUS_IRQ ); + + // toggle DTR to reset controllers, Star Ocean 2, at least, requires it + // the precise mechanism of the reset is unknown + // maybe it's related to the bottom 2 bits of control which are usually set + output( m_tx ^ PSX_SIO_OUT_DTR, PSX_SIO_OUT_DTR ); } if( ( m_control & SIO_CONTROL_IACK ) != 0 ) {