diff --git a/src/devices/machine/smpc.cpp b/src/devices/machine/smpc.cpp index 6b7e0225dfa..6ce2e2f275f 100644 --- a/src/devices/machine/smpc.cpp +++ b/src/devices/machine/smpc.cpp @@ -364,11 +364,18 @@ TIMER_CALLBACK_MEMBER( saturn_state::stv_smpc_intback ) - ID first controller, followed by the number of reads needed by the plugged controller - ID second controller, followed by the number of reads needed by the plugged controller - and so on... until the 4th (for SegaTap) or 6th (for Multitap) controller is read + TODO: how does the multitap check if a controller is connected? does it ask for the + controller status of each subport? how does this work exactly? + currently, there is a small problem in some specific controller config which seems to + lose track of one controller. E.g. if I put multitap in port2 with inserted joy1, joy2 and joy4 + it does not see joy4 controller, but if I put joy1, joy2, joy4 and joy5 it sees + all four of them. The same happens if I skip controllers with id = 0xff... + how did a real unit behave in this case? */ TIMER_CALLBACK_MEMBER( saturn_state::intback_peripheral ) { - // if (LOG_SMPC) logerror("SMPC: providing PAD data for intback, pad %d\n", intback_stage-2); +// if (LOG_SMPC) logerror("SMPC: providing PAD data for intback, pad %d\n", intback_stage-2); // doesn't work? //pad_num = m_smpc.intback_stage - 1; diff --git a/src/mame/includes/stv.h b/src/mame/includes/stv.h index fa11adbceb9..efe07c96c46 100644 --- a/src/mame/includes/stv.h +++ b/src/mame/includes/stv.h @@ -146,13 +146,6 @@ public: UINT8 slave_on; }m_smpc; - struct { - UINT8 status; - UINT8 data; - UINT8 prev_data; - UINT16 repeat_count; - }m_keyb; - /* Saturn specific*/ int m_saturn_region; UINT8 m_cart_type; @@ -682,12 +675,6 @@ public: TIMER_CALLBACK_MEMBER( smpc_change_clock ); TIMER_CALLBACK_MEMBER( stv_intback_peripheral ); TIMER_CALLBACK_MEMBER( stv_smpc_intback ); - void smpc_digital_pad(UINT8 pad_num, UINT8 offset); - void smpc_analog_pad(UINT8 pad_num, UINT8 offset, UINT8 id); - void smpc_keyboard(UINT8 pad_num, UINT8 offset); - void smpc_mouse(UINT8 pad_num, UINT8 offset, UINT8 id); - void smpc_md_pad(UINT8 pad_num, UINT8 offset, UINT8 id); - void smpc_unconnected(UINT8 pad_num, UINT8 offset); TIMER_CALLBACK_MEMBER( intback_peripheral ); TIMER_CALLBACK_MEMBER( saturn_smpc_intback ); void smpc_rtc_write();