small cleanup + added note about some pad configuration

which is not detected correctly. nw.
This commit is contained in:
etabeta78 2016-04-24 07:39:05 +02:00
parent 10c5c6cfb9
commit c39549184f
2 changed files with 8 additions and 14 deletions

View File

@ -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 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 - 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 - 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 ) 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? // doesn't work?
//pad_num = m_smpc.intback_stage - 1; //pad_num = m_smpc.intback_stage - 1;

View File

@ -146,13 +146,6 @@ public:
UINT8 slave_on; UINT8 slave_on;
}m_smpc; }m_smpc;
struct {
UINT8 status;
UINT8 data;
UINT8 prev_data;
UINT16 repeat_count;
}m_keyb;
/* Saturn specific*/ /* Saturn specific*/
int m_saturn_region; int m_saturn_region;
UINT8 m_cart_type; UINT8 m_cart_type;
@ -682,12 +675,6 @@ public:
TIMER_CALLBACK_MEMBER( smpc_change_clock ); TIMER_CALLBACK_MEMBER( smpc_change_clock );
TIMER_CALLBACK_MEMBER( stv_intback_peripheral ); TIMER_CALLBACK_MEMBER( stv_intback_peripheral );
TIMER_CALLBACK_MEMBER( stv_smpc_intback ); 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( intback_peripheral );
TIMER_CALLBACK_MEMBER( saturn_smpc_intback ); TIMER_CALLBACK_MEMBER( saturn_smpc_intback );
void smpc_rtc_write(); void smpc_rtc_write();