Ejemplo n.º 1
0
 public static void InitializeInput()
 {
     LoadShortcuts();
     NesEmu.IsFourPlayers = Settings.Key_Connect4Players;
     NesEmu.IsZapperConnected = Settings.Key_ConnectZapper;
     IJoypadConnecter joy1 = null;
     IJoypadConnecter joy2 = null;
     IJoypadConnecter joy3 = null;
     IJoypadConnecter joy4 = null;
     IVSUnisystemDIPConnecter vsUni = null;
     Console.WriteLine(">Initializing input settings...");
     if (Settings.Key_P1_UseJoystick ||
         Settings.Key_P2_UseJoystick ||
         Settings.Key_P3_UseJoystick ||
         Settings.Key_P4_UseJoystick ||
         Settings.Key_VS_UseJoystick)
     {
         Console.WriteLine(">Initializing joysticks...");
         Joysticks.Initialize();
         Console.WriteLine("->Joysticks number = " + Joysticks.NumberOfJoysticks);
     }
     Console.WriteLine(">Applying key mappings...");
     #region Player 1
     if (!Settings.Key_P1_UseJoystick)
     {
         joy1 = new SDL_Keyboard_Joyad(0);
         Console.WriteLine("->Using keyboard for player 1.");
     }
     else
     {
         if (Joysticks.IsValidJoystickNumber(Settings.Key_P1_JoystickIndex))
         {
             joy1 = new SDL_Joystick_Joypad(Settings.Key_P1_JoystickIndex, 0);
             Console.WriteLine("->Using joystick for player 1.");
         }
         else
         {
             // USE keyboard ?
             joy1 = new SDL_Keyboard_Joyad(0);
             Console.WriteLine("->Joystick is not connected; using keyboard for player 1.");
         }
     }
     #endregion
     #region Player 2
     if (!Settings.Key_P2_UseJoystick)
     {
         joy2 = new SDL_Keyboard_Joyad(1);
         Console.WriteLine("->Using keyboard for player 2.");
     }
     else
     {
         if (Joysticks.IsValidJoystickNumber(Settings.Key_P2_JoystickIndex))
         {
             joy2 = new SDL_Joystick_Joypad(Settings.Key_P2_JoystickIndex, 1);
             Console.WriteLine("->Using joystick for player 2.");
         }
         else
         {
             // USE keyboard ?
             joy2 = new SDL_Keyboard_Joyad(1);
             Console.WriteLine("->Joystick is not connected; using keyboard for player 2.");
         }
     }
     #endregion
     #region Player 3
     if (!Settings.Key_P3_UseJoystick)
     {
         joy3 = new SDL_Keyboard_Joyad(2);
         Console.WriteLine("->Using keyboard for player 3.");
     }
     else
     {
         if (Joysticks.IsValidJoystickNumber(Settings.Key_P3_JoystickIndex))
         {
             joy3 = new SDL_Joystick_Joypad(Settings.Key_P3_JoystickIndex, 2);
             Console.WriteLine("->Using joystick for player 3.");
         }
         else
         {
             // USE keyboard ?
             joy3 = new SDL_Keyboard_Joyad(2);
             Console.WriteLine("->Joystick is not connected; using keyboard for player 3.");
         }
     }
     #endregion
     #region Player 4
     if (!Settings.Key_P4_UseJoystick)
     {
         joy4 = new SDL_Keyboard_Joyad(3);
         Console.WriteLine("->Using keyboard for player 4.");
     }
     else
     {
         if (Joysticks.IsValidJoystickNumber(Settings.Key_P4_JoystickIndex))
         {
             joy4 = new SDL_Joystick_Joypad(Settings.Key_P4_JoystickIndex, 3);
             Console.WriteLine("->Using joystick for player 4.");
         }
         else
         {
             // USE keyboard ?
             joy4 = new SDL_Keyboard_Joyad(3);
             Console.WriteLine("->Joystick is not connected; using keyboard for player 4.");
         }
     }
     #endregion
     #region VS Unisystem
     if (!Settings.Key_VS_UseJoystick)
     {
         vsUni = new SDL_Keyboard_VSUnisystem();
         Console.WriteLine("->Using keyboard for VS Unisystem PID.");
     }
     else
     {
         if (Joysticks.IsValidJoystickNumber(Settings.Key_VS_JoystickIndex))
         {
             vsUni = new SDL_Joystick_VSUnisystem(Settings.Key_VS_JoystickIndex);
             Console.WriteLine("->Using joystick for VS Unisystem PID.");
         }
         else
         {
             // USE keyboard ?
             vsUni = new SDL_Keyboard_VSUnisystem();
             Console.WriteLine("->Joystick is not connected; using keyboard for VS Unisystem PID.");
         }
     }
     #endregion
     NesEmu.SetupJoypads(joy1, joy2, joy3, joy4);
     NesEmu.SetupVSUnisystemDIP(vsUni);
     NesEmu.IsZapperConnected = Settings.Key_ConnectZapper;
     NesEmu.IsFourPlayers = Settings.Key_Connect4Players;
     if (NesEmu.IsZapperConnected)
     {
         Console.WriteLine("->ZAPPER IS CONNECTED !!");
         NesEmu.SetupZapper(new SDLZapper());
         SdlDotNet.Input.Mouse.ShowCursor = true;
     }
     if (NesEmu.IsFourPlayers)
     {
         Console.WriteLine("->4 PLAYERS IS CONNECTED !!");
     }
     Console.WriteLine(">Input settings initialized successfully.");
 }
Ejemplo n.º 2
0
        public static void InitializeInput()
        {
            LoadShortcuts();
            NesEmu.IsFourPlayers     = Settings.Key_Connect4Players;
            NesEmu.IsZapperConnected = Settings.Key_ConnectZapper;
            IJoypadConnecter         joy1  = null;
            IJoypadConnecter         joy2  = null;
            IJoypadConnecter         joy3  = null;
            IJoypadConnecter         joy4  = null;
            IVSUnisystemDIPConnecter vsUni = null;

            Console.WriteLine(">Initializing input settings...");
            if (Settings.Key_P1_UseJoystick ||
                Settings.Key_P2_UseJoystick ||
                Settings.Key_P3_UseJoystick ||
                Settings.Key_P4_UseJoystick ||
                Settings.Key_VS_UseJoystick)
            {
                Console.WriteLine(">Initializing joysticks...");
                Joysticks.Initialize();
                Console.WriteLine("->Joysticks number = " + Joysticks.NumberOfJoysticks);
            }
            Console.WriteLine(">Applying key mappings...");
            #region Player 1
            if (!Settings.Key_P1_UseJoystick)
            {
                joy1 = new SDL_Keyboard_Joyad(0);
                Console.WriteLine("->Using keyboard for player 1.");
            }
            else
            {
                if (Joysticks.IsValidJoystickNumber(Settings.Key_P1_JoystickIndex))
                {
                    joy1 = new SDL_Joystick_Joypad(Settings.Key_P1_JoystickIndex, 0);
                    Console.WriteLine("->Using joystick for player 1.");
                }
                else
                {
                    // USE keyboard ?
                    joy1 = new SDL_Keyboard_Joyad(0);
                    Console.WriteLine("->Joystick is not connected; using keyboard for player 1.");
                }
            }
            #endregion
            #region Player 2
            if (!Settings.Key_P2_UseJoystick)
            {
                joy2 = new SDL_Keyboard_Joyad(1);
                Console.WriteLine("->Using keyboard for player 2.");
            }
            else
            {
                if (Joysticks.IsValidJoystickNumber(Settings.Key_P2_JoystickIndex))
                {
                    joy2 = new SDL_Joystick_Joypad(Settings.Key_P2_JoystickIndex, 1);
                    Console.WriteLine("->Using joystick for player 2.");
                }
                else
                {
                    // USE keyboard ?
                    joy2 = new SDL_Keyboard_Joyad(1);
                    Console.WriteLine("->Joystick is not connected; using keyboard for player 2.");
                }
            }
            #endregion
            #region Player 3
            if (!Settings.Key_P3_UseJoystick)
            {
                joy3 = new SDL_Keyboard_Joyad(2);
                Console.WriteLine("->Using keyboard for player 3.");
            }
            else
            {
                if (Joysticks.IsValidJoystickNumber(Settings.Key_P3_JoystickIndex))
                {
                    joy3 = new SDL_Joystick_Joypad(Settings.Key_P3_JoystickIndex, 2);
                    Console.WriteLine("->Using joystick for player 3.");
                }
                else
                {
                    // USE keyboard ?
                    joy3 = new SDL_Keyboard_Joyad(2);
                    Console.WriteLine("->Joystick is not connected; using keyboard for player 3.");
                }
            }
            #endregion
            #region Player 4
            if (!Settings.Key_P4_UseJoystick)
            {
                joy4 = new SDL_Keyboard_Joyad(3);
                Console.WriteLine("->Using keyboard for player 4.");
            }
            else
            {
                if (Joysticks.IsValidJoystickNumber(Settings.Key_P4_JoystickIndex))
                {
                    joy4 = new SDL_Joystick_Joypad(Settings.Key_P4_JoystickIndex, 3);
                    Console.WriteLine("->Using joystick for player 4.");
                }
                else
                {
                    // USE keyboard ?
                    joy4 = new SDL_Keyboard_Joyad(3);
                    Console.WriteLine("->Joystick is not connected; using keyboard for player 4.");
                }
            }
            #endregion
            #region VS Unisystem
            if (!Settings.Key_VS_UseJoystick)
            {
                vsUni = new SDL_Keyboard_VSUnisystem();
                Console.WriteLine("->Using keyboard for VS Unisystem PID.");
            }
            else
            {
                if (Joysticks.IsValidJoystickNumber(Settings.Key_VS_JoystickIndex))
                {
                    vsUni = new SDL_Joystick_VSUnisystem(Settings.Key_VS_JoystickIndex);
                    Console.WriteLine("->Using joystick for VS Unisystem PID.");
                }
                else
                {
                    // USE keyboard ?
                    vsUni = new SDL_Keyboard_VSUnisystem();
                    Console.WriteLine("->Joystick is not connected; using keyboard for VS Unisystem PID.");
                }
            }
            #endregion
            NesEmu.SetupJoypads(joy1, joy2, joy3, joy4);
            NesEmu.SetupVSUnisystemDIP(vsUni);
            NesEmu.IsZapperConnected = Settings.Key_ConnectZapper;
            NesEmu.IsFourPlayers     = Settings.Key_Connect4Players;
            if (NesEmu.IsZapperConnected)
            {
                Console.WriteLine("->ZAPPER IS CONNECTED !!");
                NesEmu.SetupZapper(new SDLZapper());
                SdlDotNet.Input.Mouse.ShowCursor = true;
            }
            if (NesEmu.IsFourPlayers)
            {
                Console.WriteLine("->4 PLAYERS IS CONNECTED !!");
            }
            Console.WriteLine(">Input settings initialized successfully.");
        }