adjust irq10 and rcnt for pal
[pcsx_rearmed.git] / plugins / dfinput / main.c
index 73b2bda..4f1d03f 100644 (file)
@@ -15,10 +15,12 @@ unsigned char CurPad, CurByte, CurCmd, CmdLen;
 /* since this is not a proper plugin, so we'll hook emu internals in a hackish way like this */
 extern void *PAD1_startPoll, *PAD1_poll;
 extern void *PAD2_startPoll, *PAD2_poll;
-extern unsigned char PAD1__startPoll(int pad);
-extern unsigned char PAD2__startPoll(int pad);
-extern unsigned char PAD1__poll(unsigned char value);
-extern unsigned char PAD2__poll(unsigned char value);
+extern unsigned char CALLBACK PAD1__startPoll(int pad);
+extern unsigned char CALLBACK PAD2__startPoll(int pad);
+extern unsigned char CALLBACK PAD1__poll(unsigned char value);
+extern unsigned char CALLBACK PAD2__poll(unsigned char value);
+
+#ifndef HAVE_LIBRETRO
 
 static int old_controller_type1 = -1, old_controller_type2 = -1;
 
@@ -37,6 +39,7 @@ static int old_controller_type1 = -1, old_controller_type2 = -1;
                        PAD##n##_poll = PADpoll_guncon; \
                        guncon_init(); \
                        break; \
+               case PSE_PAD_TYPE_NEGCON: \
                case PSE_PAD_TYPE_GUN: \
                default: \
                        PAD##n##_startPoll = PAD##n##__startPoll; \
@@ -49,9 +52,20 @@ void dfinput_activate(void)
 {
        PadDataS pad;
 
+       pad.portMultitap = -1;
+       pad.requestPadIndex = 0;
        PAD1_readPort1(&pad);
        select_pad(1);
 
+       pad.requestPadIndex = 1;
        PAD2_readPort2(&pad);
        select_pad(2);
 }
+
+#else // use libretro's libpcsxcore/plugins.c code
+
+void dfinput_activate(void)
+{
+}
+
+#endif