72 lines
2.3 KiB
C++
72 lines
2.3 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
// Famly Trainer //
|
|
//////////////////////////////////////////////////////////////////////////
|
|
void EXPAD_FamlyTrainer::Reset()
|
|
{
|
|
outbits = 0;
|
|
padbits = 0;
|
|
}
|
|
|
|
BYTE EXPAD_FamlyTrainer::Read4017()
|
|
{
|
|
return outbits;
|
|
}
|
|
|
|
void EXPAD_FamlyTrainer::Write4016( BYTE data )
|
|
{
|
|
outbits = 0;
|
|
if( !(data & 0x04) ) {
|
|
outbits = (BYTE)((~padbits<<1)&0x1E);
|
|
}
|
|
if( !(data & 0x02) ) {
|
|
outbits = (BYTE)((~padbits>>3)&0x1E);
|
|
}
|
|
if( !(data & 0x01) ) {
|
|
outbits = (BYTE)((~padbits>>7)&0x1E);
|
|
}
|
|
}
|
|
|
|
void EXPAD_FamlyTrainer::Sync()
|
|
{
|
|
padbits = 0;
|
|
|
|
if( nes->pad->GetExController() == PAD::EXCONTROLLER_FAMILYTRAINER_A ) {
|
|
if( Config.ExButtonCheck( 1, 3 ) ) padbits |= 1<<3;
|
|
if( Config.ExButtonCheck( 1, 2 ) ) padbits |= 1<<2;
|
|
if( Config.ExButtonCheck( 1, 1 ) ) padbits |= 1<<1;
|
|
if( Config.ExButtonCheck( 1, 0 ) ) padbits |= 1<<0;
|
|
if( Config.ExButtonCheck( 1, 7 ) ) padbits |= 1<<7;
|
|
if( Config.ExButtonCheck( 1, 6 ) ) padbits |= 1<<6;
|
|
if( Config.ExButtonCheck( 1, 5 ) ) padbits |= 1<<5;
|
|
if( Config.ExButtonCheck( 1, 4 ) ) padbits |= 1<<4;
|
|
if( Config.ExButtonCheck( 1, 11 ) ) padbits |= 1<<11;
|
|
if( Config.ExButtonCheck( 1, 10 ) ) padbits |= 1<<10;
|
|
if( Config.ExButtonCheck( 1, 9 ) ) padbits |= 1<<9;
|
|
if( Config.ExButtonCheck( 1, 8 ) ) padbits |= 1<<8;
|
|
}
|
|
if( nes->pad->GetExController() == PAD::EXCONTROLLER_FAMILYTRAINER_B ) {
|
|
if( Config.ExButtonCheck( 1, 0 ) ) padbits |= 1<<3;
|
|
if( Config.ExButtonCheck( 1, 1 ) ) padbits |= 1<<2;
|
|
if( Config.ExButtonCheck( 1, 2 ) ) padbits |= 1<<1;
|
|
if( Config.ExButtonCheck( 1, 3 ) ) padbits |= 1<<0;
|
|
if( Config.ExButtonCheck( 1, 4 ) ) padbits |= 1<<7;
|
|
if( Config.ExButtonCheck( 1, 5 ) ) padbits |= 1<<6;
|
|
if( Config.ExButtonCheck( 1, 6 ) ) padbits |= 1<<5;
|
|
if( Config.ExButtonCheck( 1, 7 ) ) padbits |= 1<<4;
|
|
if( Config.ExButtonCheck( 1, 8 ) ) padbits |= 1<<11;
|
|
if( Config.ExButtonCheck( 1, 9 ) ) padbits |= 1<<10;
|
|
if( Config.ExButtonCheck( 1, 10 ) ) padbits |= 1<<9;
|
|
if( Config.ExButtonCheck( 1, 11 ) ) padbits |= 1<<8;
|
|
}
|
|
}
|
|
|
|
void EXPAD_FamlyTrainer::SetSyncData( INT type, LONG data )
|
|
{
|
|
padbits = (DWORD)data;
|
|
}
|
|
|
|
LONG EXPAD_FamlyTrainer::GetSyncData( INT type )
|
|
{
|
|
return (LONG)padbits;
|
|
}
|