mirror of https://github.com/PCSX2/pcsx2.git
Zeropad: Continuing to do some cleanup.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1162 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
6ea395be4b
commit
0b23b77051
|
@ -108,7 +108,6 @@ bool JoystickInfo::Init(int id, bool bStartThread)
|
||||||
numaxes = SDL_JoystickNumAxes(joy);
|
numaxes = SDL_JoystickNumAxes(joy);
|
||||||
numbuttons = SDL_JoystickNumButtons(joy);
|
numbuttons = SDL_JoystickNumButtons(joy);
|
||||||
numpov = SDL_JoystickNumHats(joy);
|
numpov = SDL_JoystickNumHats(joy);
|
||||||
numhats = SDL_JoystickNumHats(joy);
|
|
||||||
devname = SDL_JoystickName(id);
|
devname = SDL_JoystickName(id);
|
||||||
vbutstate.resize(numbuttons);
|
vbutstate.resize(numbuttons);
|
||||||
vaxisstate.resize(numbuttons);
|
vaxisstate.resize(numbuttons);
|
||||||
|
@ -144,9 +143,8 @@ void JoystickInfo::SaveState()
|
||||||
vbutstate[i] = SDL_JoystickGetButton(joy, i);
|
vbutstate[i] = SDL_JoystickGetButton(joy, i);
|
||||||
for (int i = 0; i < numaxes; ++i)
|
for (int i = 0; i < numaxes; ++i)
|
||||||
vaxisstate[i] = SDL_JoystickGetAxis(joy, i);
|
vaxisstate[i] = SDL_JoystickGetAxis(joy, i);
|
||||||
|
/*for (int i = 0; i < numpov; ++i)
|
||||||
//for (int i = 0; i < numhats; ++i)
|
vpovstate[i] = SDL_JoystickGetHat(joy, i);*/
|
||||||
// vhatstate[i] = SDL_JoystickGetHat(joy, i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JoystickInfo::TestForce()
|
void JoystickInfo::TestForce()
|
||||||
|
|
|
@ -42,60 +42,71 @@ class JoystickInfo
|
||||||
{
|
{
|
||||||
return devname;
|
return devname;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetNumButtons()
|
int GetNumButtons()
|
||||||
{
|
{
|
||||||
return numbuttons;
|
return numbuttons;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetNumAxes()
|
int GetNumAxes()
|
||||||
{
|
{
|
||||||
return numaxes;
|
return numaxes;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetNumPOV()
|
int GetNumPOV()
|
||||||
{
|
{
|
||||||
return numpov;
|
return numpov;
|
||||||
}
|
}
|
||||||
/*int GetNumHats()
|
|
||||||
{
|
|
||||||
return numhats;
|
|
||||||
}*/
|
|
||||||
int GetId()
|
int GetId()
|
||||||
{
|
{
|
||||||
return _id;
|
return _id;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetPAD()
|
int GetPAD()
|
||||||
{
|
{
|
||||||
return pad;
|
return pad;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetDeadzone(int axis)
|
int GetDeadzone(int axis)
|
||||||
{
|
{
|
||||||
return deadzone;
|
return deadzone;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveState();
|
void SaveState();
|
||||||
|
|
||||||
int GetButtonState(int i)
|
int GetButtonState(int i)
|
||||||
{
|
{
|
||||||
return vbutstate[i];
|
return vbutstate[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetAxisState(int i)
|
int GetAxisState(int i)
|
||||||
{
|
{
|
||||||
return vaxisstate[i];
|
return vaxisstate[i];
|
||||||
}
|
}
|
||||||
/*int GetHatState(int i)
|
|
||||||
|
int GetPOVState(int i)
|
||||||
{
|
{
|
||||||
return vhatstate[i];
|
//printf("Getting POV State of %d.\n", i);
|
||||||
}*/
|
return vpovstate[i];
|
||||||
|
}
|
||||||
|
|
||||||
void SetButtonState(int i, int state)
|
void SetButtonState(int i, int state)
|
||||||
{
|
{
|
||||||
vbutstate[i] = state;
|
vbutstate[i] = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetAxisState(int i, int value)
|
void SetAxisState(int i, int value)
|
||||||
{
|
{
|
||||||
vaxisstate[i] = value;
|
vaxisstate[i] = value;
|
||||||
}
|
}
|
||||||
/*void SetHatState(int i, int value)
|
|
||||||
|
void SetPOVState(int i, int value)
|
||||||
{
|
{
|
||||||
vhatstate[i] = value;
|
//printf("We should set %d to %d.\n", i, value);
|
||||||
}*/
|
vpovstate[i] = value;
|
||||||
|
}
|
||||||
|
|
||||||
SDL_Joystick* GetJoy()
|
SDL_Joystick* GetJoy()
|
||||||
{
|
{
|
||||||
return joy;
|
return joy;
|
||||||
|
@ -105,11 +116,11 @@ class JoystickInfo
|
||||||
|
|
||||||
string devname; // pretty device name
|
string devname; // pretty device name
|
||||||
int _id;
|
int _id;
|
||||||
int numbuttons, numaxes, numpov, numhats;
|
int numbuttons, numaxes, numpov;
|
||||||
int axisrange, deadzone;
|
int axisrange, deadzone;
|
||||||
int pad;
|
int pad;
|
||||||
|
|
||||||
vector<int> vbutstate, vaxisstate;
|
vector<int> vbutstate, vaxisstate, vpovstate;
|
||||||
|
|
||||||
SDL_Joystick* joy;
|
SDL_Joystick* joy;
|
||||||
};
|
};
|
||||||
|
@ -117,10 +128,3 @@ class JoystickInfo
|
||||||
|
|
||||||
extern int s_selectedpad;
|
extern int s_selectedpad;
|
||||||
extern vector<JoystickInfo*> s_vjoysticks;
|
extern vector<JoystickInfo*> s_vjoysticks;
|
||||||
//extern void JoystickInfo::EnumerateJoysticks(vector<JoystickInfo*>& vjoysticks);
|
|
||||||
/*extern JoystickInfo::JoystickInfo();
|
|
||||||
extern void JoystickInfo::Destroy();
|
|
||||||
extern bool JoystickInfo::Init(int id, bool bStartThread);
|
|
||||||
extern void JoystickInfo::Assign(int newpad);
|
|
||||||
extern void JoystickInfo::SaveState();
|
|
||||||
extern void JoystickInfo::TestForce();*/
|
|
|
@ -138,50 +138,23 @@ void CALLBACK PADupdate(int pad)
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
case KEY_PAD_LX_LEFT:
|
case KEY_PAD_LX_LEFT:
|
||||||
g_lanalog[pad].x = DEF_VALUE / 256;
|
case KEY_PAD_LY_UP:
|
||||||
if (conf.options&PADOPTION_REVERTLX) g_lanalog[pad].x = -g_lanalog[pad].x;
|
case KEY_PAD_RX_LEFT:
|
||||||
g_lanalog[pad].x += 0x80;
|
case KEY_PAD_RY_UP:
|
||||||
|
Analog::ConfigurePad(KeypadToPad(key), pad, DEF_VALUE);
|
||||||
break;
|
break;
|
||||||
case KEY_PAD_LX_RIGHT:
|
case KEY_PAD_LX_RIGHT:
|
||||||
g_lanalog[pad].x = -DEF_VALUE / 256;
|
|
||||||
if (conf.options&PADOPTION_REVERTLX) g_lanalog[pad].x = -g_lanalog[pad].x;
|
|
||||||
g_lanalog[pad].x += 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_LY_UP:
|
|
||||||
g_lanalog[pad].y = DEF_VALUE / 256;
|
|
||||||
if (conf.options&PADOPTION_REVERTLY) g_lanalog[pad].y = -g_lanalog[pad].y;
|
|
||||||
g_lanalog[pad].y += 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_LY_DOWN:
|
case KEY_PAD_LY_DOWN:
|
||||||
g_lanalog[pad].y = -DEF_VALUE / 256;
|
|
||||||
if (conf.options&PADOPTION_REVERTLY) g_lanalog[pad].y = -g_lanalog[pad].y;
|
|
||||||
g_lanalog[pad].y += 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_RX_LEFT:
|
|
||||||
g_ranalog[pad].x = DEF_VALUE / 256;
|
|
||||||
if (conf.options&PADOPTION_REVERTRX) g_ranalog[pad].x = -g_ranalog[pad].x;
|
|
||||||
g_ranalog[pad].x += 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_RX_RIGHT:
|
case KEY_PAD_RX_RIGHT:
|
||||||
g_ranalog[pad].x = -DEF_VALUE / 256;
|
|
||||||
if (conf.options&PADOPTION_REVERTRX) g_ranalog[pad].x = -g_ranalog[pad].x;
|
|
||||||
g_ranalog[pad].x += 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_RY_UP:
|
|
||||||
g_ranalog[pad].y = DEF_VALUE / 256;
|
|
||||||
if (conf.options&PADOPTION_REVERTRY) g_ranalog[pad].y = -g_ranalog[pad].y;
|
|
||||||
g_ranalog[pad].y += 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_RY_DOWN:
|
case KEY_PAD_RY_DOWN:
|
||||||
g_ranalog[pad].y = -DEF_VALUE / 256;
|
Analog::ConfigurePad(KeypadToPad(key), pad, -DEF_VALUE);
|
||||||
if (conf.options&PADOPTION_REVERTRY) g_ranalog[pad].y = -g_ranalog[pad].y;
|
|
||||||
g_ranalog[pad].y += 0x80;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
i = FindKey(key, pad);
|
i = FindKey(key, pad);
|
||||||
if (i != -1) {
|
if (i != -1)
|
||||||
|
{
|
||||||
keyPress |= (1 << i);
|
keyPress |= (1 << i);
|
||||||
keyRelease &= ~(1 << i);
|
keyRelease &= ~(1 << i);
|
||||||
}
|
}
|
||||||
|
@ -196,34 +169,21 @@ void CALLBACK PADupdate(int pad)
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
case KEY_PAD_LX_LEFT:
|
case KEY_PAD_LX_LEFT:
|
||||||
g_lanalog[pad].x = 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_LY_UP:
|
|
||||||
g_lanalog[pad].y = 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_RX_LEFT:
|
|
||||||
g_ranalog[pad].x = 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_RY_UP:
|
|
||||||
g_ranalog[pad].y = 0x80;
|
|
||||||
break;
|
|
||||||
case KEY_PAD_LX_RIGHT:
|
case KEY_PAD_LX_RIGHT:
|
||||||
g_lanalog[pad].x = 0x80;
|
case KEY_PAD_LY_UP:
|
||||||
break;
|
|
||||||
case KEY_PAD_LY_DOWN:
|
case KEY_PAD_LY_DOWN:
|
||||||
g_lanalog[pad].y = 0x80;
|
case KEY_PAD_RX_LEFT:
|
||||||
break;
|
|
||||||
case KEY_PAD_RX_RIGHT:
|
case KEY_PAD_RX_RIGHT:
|
||||||
g_ranalog[pad].x = 0x80;
|
case KEY_PAD_RY_UP:
|
||||||
break;
|
|
||||||
case KEY_PAD_RY_DOWN:
|
case KEY_PAD_RY_DOWN:
|
||||||
g_ranalog[pad].y = 0x80;
|
Analog::ResetPad(KeypadToPad(key));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
i = FindKey(key, pad);
|
i = FindKey(key, pad);
|
||||||
if (i != -1) {
|
if (i != -1)
|
||||||
|
{
|
||||||
keyPress &= ~(1 << i);
|
keyPress &= ~(1 << i);
|
||||||
keyRelease |= (1 << i);
|
keyRelease |= (1 << i);
|
||||||
}
|
}
|
||||||
|
@ -277,52 +237,13 @@ void CALLBACK PADupdate(int pad)
|
||||||
switch (i)
|
switch (i)
|
||||||
{
|
{
|
||||||
case PAD_LX:
|
case PAD_LX:
|
||||||
if (abs(value) > (pjoy)->GetDeadzone(value))
|
|
||||||
{
|
|
||||||
g_lanalog[pad].x = value / 256;
|
|
||||||
if (conf.options & PADOPTION_REVERTLX) g_lanalog[pad].x = -g_lanalog[pad].x;
|
|
||||||
g_lanalog[pad].x += 0x80;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_lanalog[pad].x = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PAD_LY:
|
case PAD_LY:
|
||||||
if (abs(value) > (pjoy)->GetDeadzone(value))
|
|
||||||
{
|
|
||||||
g_lanalog[pad].y = value / 256;
|
|
||||||
if (conf.options & PADOPTION_REVERTLY) g_lanalog[pad].y = -g_lanalog[pad].y;
|
|
||||||
g_lanalog[pad].y += 0x80;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_lanalog[pad].y = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PAD_RX:
|
case PAD_RX:
|
||||||
if (abs(value) > (pjoy)->GetDeadzone(value))
|
|
||||||
{
|
|
||||||
g_ranalog[pad].x = value / 256;
|
|
||||||
if (conf.options & PADOPTION_REVERTRX) g_ranalog[pad].x = -g_ranalog[pad].x;
|
|
||||||
g_ranalog[pad].x += 0x80;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_ranalog[pad].x = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PAD_RY:
|
case PAD_RY:
|
||||||
if (abs(value) > (pjoy)->GetDeadzone(value))
|
if (abs(value) > (pjoy)->GetDeadzone(value))
|
||||||
{
|
Analog::ConfigurePad(i, pad, value);
|
||||||
g_ranalog[pad].y = value / 256;
|
|
||||||
if (conf.options&PADOPTION_REVERTRY) g_ranalog[pad].y = -g_ranalog[pad].y;
|
|
||||||
g_ranalog[pad].y += 0x80;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
Analog::ResetPad(i, pad);
|
||||||
g_ranalog[pad].y = 0x80;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -516,6 +437,7 @@ void OnConf_Key(GtkButton *button, gpointer user_data)
|
||||||
if (abs(value) <= (*itjoy)->GetAxisState(i)) // we don't want this
|
if (abs(value) <= (*itjoy)->GetAxisState(i)) // we don't want this
|
||||||
{
|
{
|
||||||
// released, we don't really want this
|
// released, we don't really want this
|
||||||
|
// SetButtonState? Shouldn't this be SetAxisState?
|
||||||
(*itjoy)->SetButtonState(i, value);
|
(*itjoy)->SetButtonState(i, value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -543,21 +465,33 @@ void OnConf_Key(GtkButton *button, gpointer user_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*for (int i = 0; i < (*itjoy)->GetNumPOV(); ++i)
|
||||||
/*for (int i = 0; i < (*itjoy)->GetNumHats(); ++i)
|
|
||||||
{
|
{
|
||||||
int value = SDL_JoystickGetHat((*itjoy)->GetJoy(), i);
|
int value = SDL_JoystickGetHat((*itjoy)->GetJoy(), i);
|
||||||
|
|
||||||
if (value != (*itjoy)->GetAxisState(i))
|
if (value != (*itjoy)->GetPOVState(i))
|
||||||
{
|
{
|
||||||
*pkey = PAD_HAT((*itjoy)->GetId(), i);
|
if (abs(value) > 0x3fff)
|
||||||
|
{
|
||||||
|
if (key < 16) // POV
|
||||||
|
{
|
||||||
|
*pkey = PAD_POV((*itjoy)->GetId(), value < 0, i);
|
||||||
char str[32];
|
char str[32];
|
||||||
sprintf(str, "JHat %d", i);
|
sprintf(str, "JPOV %d%s", i, value < 0 ? "-" : "+");
|
||||||
gtk_entry_set_text(GTK_ENTRY(label), str);
|
gtk_entry_set_text(GTK_ENTRY(label), str);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else // axis
|
||||||
|
{
|
||||||
|
*pkey = PAD_JOYSTICK((*itjoy)->GetId(), i);
|
||||||
|
char str[32];
|
||||||
|
sprintf(str, "JAxis %d", i);
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(label), str);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
itjoy++;
|
itjoy++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -590,7 +524,7 @@ void CALLBACK PADconfigure()
|
||||||
while (it != s_vjoysticks.end())
|
while (it != s_vjoysticks.end())
|
||||||
{
|
{
|
||||||
sprintf(str, "%d: %s - but: %d, axes: %d, pov: %d", (*it)->GetId(), (*it)->GetName().c_str(),
|
sprintf(str, "%d: %s - but: %d, axes: %d, pov: %d", (*it)->GetId(), (*it)->GetName().c_str(),
|
||||||
(*it)->GetNumButtons(), (*it)->GetNumAxes(), (*it)->GetNumPOV()/*, (*it)->GetNumHats()*/); // ,hats: %d
|
(*it)->GetNumButtons(), (*it)->GetNumAxes(), (*it)->GetNumPOV());
|
||||||
gtk_combo_box_append_text(GTK_COMBO_BOX(s_devicecombo), str);
|
gtk_combo_box_append_text(GTK_COMBO_BOX(s_devicecombo), str);
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,4 +27,5 @@ libZeroPAD_LDFLAGS= @SHARED_LDFLAGS@
|
||||||
libZeroPAD_LDFLAGS+=-Wl,-soname,@ZEROPAD_SONAME@
|
libZeroPAD_LDFLAGS+=-Wl,-soname,@ZEROPAD_SONAME@
|
||||||
libZeroPAD_LDADD=$(libZeroPAD_a_OBJECTS)
|
libZeroPAD_LDADD=$(libZeroPAD_a_OBJECTS)
|
||||||
|
|
||||||
libZeroPAD_a_SOURCES = zeropad.cpp Linux/gui.cpp Linux/linux.cpp Linux/joystick.cpp Linux/support.c Linux/interface.c
|
libZeroPAD_a_SOURCES = analog.cpp analog.h zeropad.cpp zeropad.h \
|
||||||
|
Linux/gui.cpp Linux/linux.cpp Linux/joystick.cpp Linux/support.c Linux/interface.c
|
||||||
|
|
|
@ -250,6 +250,10 @@
|
||||||
RelativePath="..\zeropad.cpp"
|
RelativePath="..\zeropad.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\analog.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
|
@ -272,6 +276,10 @@
|
||||||
RelativePath="..\zeropad.h"
|
RelativePath="..\zeropad.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\analog.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
AC_INIT(ZeroPAD,0.2,zerofrog@gmail.com)
|
AC_INIT(ZeroPAD,0.3,zerofrog@gmail.com)
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE(ZeroPAD,0.2)
|
AM_INIT_AUTOMAKE(ZeroPAD,0.3)
|
||||||
|
|
||||||
AC_PROG_CC([gcc g++ cl KCC CC cxx cc++ xlC aCC c++])
|
AC_PROG_CC([gcc g++ cl KCC CC cxx cc++ xlC aCC c++])
|
||||||
AC_PROG_CXX([gcc g++ cl KCC CC cxx cc++ xlC aCC c++])
|
AC_PROG_CXX([gcc g++ cl KCC CC cxx cc++ xlC aCC c++])
|
||||||
|
@ -13,9 +13,9 @@ dnl necessary for compiling assembly
|
||||||
AM_PROG_AS
|
AM_PROG_AS
|
||||||
|
|
||||||
AC_SUBST(ZEROPAD_CURRENT, 0)
|
AC_SUBST(ZEROPAD_CURRENT, 0)
|
||||||
AC_SUBST(ZEROPAD_REVISION, 2)
|
AC_SUBST(ZEROPAD_REVISION, 3)
|
||||||
AC_SUBST(ZEROPAD_AGE, 0)
|
AC_SUBST(ZEROPAD_AGE, 0)
|
||||||
AC_SUBST(ZEROPAD_RELEASE, libZeroPAD.so.[$ZEROPAD_CURRENT].[$ZEROPAD_REVISION].[$ZEROPAD_AGE])
|
AC_SUBST(ZEROPAD_RELEASE, [$ZEROPAD_CURRENT].[$ZEROPAD_REVISION].[$ZEROPAD_AGE])
|
||||||
AC_SUBST(ZEROPAD_SONAME, libZeroPAD.so.[$ZEROPAD_CURRENT].[$ZEROPAD_REVISION].[$ZEROPAD_AGE])
|
AC_SUBST(ZEROPAD_SONAME, libZeroPAD.so.[$ZEROPAD_CURRENT].[$ZEROPAD_REVISION].[$ZEROPAD_AGE])
|
||||||
|
|
||||||
CFLAGS=
|
CFLAGS=
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
|
|
||||||
char libraryName[256];
|
char libraryName[256];
|
||||||
|
|
||||||
PADAnalog g_lanalog[2], g_ranalog[2];
|
|
||||||
PADconf conf;
|
PADconf conf;
|
||||||
|
|
||||||
keyEvent event;
|
keyEvent event;
|
||||||
|
@ -44,7 +43,7 @@ string s_strIniPath = "inis/zeropad.ini";
|
||||||
|
|
||||||
const unsigned char version = PS2E_PAD_VERSION;
|
const unsigned char version = PS2E_PAD_VERSION;
|
||||||
const unsigned char revision = 0;
|
const unsigned char revision = 0;
|
||||||
const unsigned char build = 2; // increase that with each version
|
const unsigned char build = 3; // increase that with each version
|
||||||
|
|
||||||
int PadEnum[2][2] = {{0, 2}, {1, 3}};
|
int PadEnum[2][2] = {{0, 2}, {1, 3}};
|
||||||
|
|
||||||
|
@ -291,13 +290,7 @@ s32 CALLBACK PADinit(u32 flags)
|
||||||
PADsetMode(1, 0);
|
PADsetMode(1, 0);
|
||||||
|
|
||||||
pressure = 100;
|
pressure = 100;
|
||||||
for (int i = 0; i < 2; ++i)
|
Analog::Init();
|
||||||
{
|
|
||||||
g_ranalog[i].x = 0x80;
|
|
||||||
g_ranalog[i].y = 0x80;
|
|
||||||
g_lanalog[i].x = 0x80;
|
|
||||||
g_lanalog[i].y = 0x80;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -385,26 +378,26 @@ u8 _PADpoll(u8 value)
|
||||||
curCmd = value;
|
curCmd = value;
|
||||||
switch (value)
|
switch (value)
|
||||||
{
|
{
|
||||||
case 0x40: // DUALSHOCK2 ENABLER
|
case CMD_SET_VREF_PARAM: // DUALSHOCK2 ENABLER
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = cmd40[curPad];
|
buf = cmd40[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x41: // QUERY_DS2_ANALOG_MODE
|
case CMD_QUERY_DS2_ANALOG_MODE: // QUERY_DS2_ANALOG_MODE
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = cmd41[curPad];
|
buf = cmd41[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x42: // READ_DATA
|
case CMD_READ_DATA_AND_VIBRATE: // READ_DATA
|
||||||
|
|
||||||
_PADupdate(curPad);
|
_PADupdate(curPad);
|
||||||
|
|
||||||
stdpar[curPad][2] = status[curPad] >> 8;
|
stdpar[curPad][2] = status[curPad] >> 8;
|
||||||
stdpar[curPad][3] = status[curPad] & 0xff;
|
stdpar[curPad][3] = status[curPad] & 0xff;
|
||||||
stdpar[curPad][4] = g_ranalog[curPad].x;
|
stdpar[curPad][4] = Analog::Pad(PAD_RX, curPad);
|
||||||
stdpar[curPad][5] = g_ranalog[curPad].y;
|
stdpar[curPad][5] = Analog::Pad(PAD_RY, curPad);
|
||||||
stdpar[curPad][6] = g_lanalog[curPad].x;
|
stdpar[curPad][6] = Analog::Pad(PAD_LX, curPad);
|
||||||
stdpar[curPad][7] = g_lanalog[curPad].y;
|
stdpar[curPad][7] = Analog::Pad(PAD_LY, curPad);
|
||||||
|
|
||||||
if (padMode[curPad] == 1)
|
if (padMode[curPad] == 1)
|
||||||
cmdLen = 20;
|
cmdLen = 20;
|
||||||
|
@ -473,44 +466,44 @@ u8 _PADpoll(u8 value)
|
||||||
buf = stdpar[curPad];
|
buf = stdpar[curPad];
|
||||||
return padID[curPad];
|
return padID[curPad];
|
||||||
|
|
||||||
case 0x43: // CONFIG_MODE
|
case CMD_CONFIG_MODE: // CONFIG_MODE
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = stdcfg[curPad];
|
buf = stdcfg[curPad];
|
||||||
if (stdcfg[curPad][3] == 0xff) return 0xf3;
|
if (stdcfg[curPad][3] == 0xff) return 0xf3;
|
||||||
else return padID[curPad];
|
else return padID[curPad];
|
||||||
|
|
||||||
case 0x44: // SET_MODE_AND_LOCK
|
case CMD_SET_MODE_AND_LOCK: // SET_MODE_AND_LOCK
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = stdmode[curPad];
|
buf = stdmode[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x45: // QUERY_MODEL_AND_MODE
|
case CMD_QUERY_MODEL_AND_MODE: // QUERY_MODEL_AND_MODE
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = stdmodel[curPad];
|
buf = stdmodel[curPad];
|
||||||
buf[4] = padMode[curPad];
|
buf[4] = padMode[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x46: // ??
|
case CMD_QUERY_ACT: // ??
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = unk46[curPad];
|
buf = unk46[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x47: // ??
|
case CMD_QUERY_COMB: // ??
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = unk47[curPad];
|
buf = unk47[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x4c: // QUERY_MODE ??
|
case CMD_QUERY_MODE: // QUERY_MODE ??
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = unk4c[curPad];
|
buf = unk4c[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x4d:
|
case CMD_VIBRATION_TOGGLE:
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
buf = unk4d[curPad];
|
buf = unk4d[curPad];
|
||||||
return 0xf3;
|
return 0xf3;
|
||||||
|
|
||||||
case 0x4f: // SET_DS2_NATIVE_MODE
|
case CMD_SET_DS2_NATIVE_MODE: // SET_DS2_NATIVE_MODE
|
||||||
cmdLen = 8;
|
cmdLen = 8;
|
||||||
padID[curPad] = 0x79; // setting ds2 mode
|
padID[curPad] = 0x79; // setting ds2 mode
|
||||||
ds2mode = 1; // Set DS2 Mode
|
ds2mode = 1; // Set DS2 Mode
|
||||||
|
@ -527,7 +520,7 @@ u8 _PADpoll(u8 value)
|
||||||
|
|
||||||
switch (curCmd)
|
switch (curCmd)
|
||||||
{
|
{
|
||||||
case 0x43:
|
case CMD_CONFIG_MODE:
|
||||||
if (curByte == 2)
|
if (curByte == 2)
|
||||||
{
|
{
|
||||||
switch (value)
|
switch (value)
|
||||||
|
@ -544,14 +537,14 @@ u8 _PADpoll(u8 value)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x44:
|
case CMD_SET_MODE_AND_LOCK:
|
||||||
if (curByte == 2)
|
if (curByte == 2)
|
||||||
{
|
{
|
||||||
PADsetMode(curPad, value);
|
PADsetMode(curPad, value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x46:
|
case CMD_QUERY_ACT:
|
||||||
if (curByte == 2)
|
if (curByte == 2)
|
||||||
{
|
{
|
||||||
switch (value)
|
switch (value)
|
||||||
|
@ -570,7 +563,7 @@ u8 _PADpoll(u8 value)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x4c:
|
case CMD_QUERY_MODE:
|
||||||
if (curByte == 2)
|
if (curByte == 2)
|
||||||
{
|
{
|
||||||
switch (value)
|
switch (value)
|
||||||
|
|
|
@ -44,6 +44,7 @@ extern "C"
|
||||||
{
|
{
|
||||||
#include "PS2Edefs.h"
|
#include "PS2Edefs.h"
|
||||||
}
|
}
|
||||||
|
#include "analog.h"
|
||||||
|
|
||||||
extern char libraryName[256];
|
extern char libraryName[256];
|
||||||
|
|
||||||
|
@ -93,11 +94,25 @@ typedef struct
|
||||||
} PADAnalog;
|
} PADAnalog;
|
||||||
|
|
||||||
extern PADconf conf;
|
extern PADconf conf;
|
||||||
|
|
||||||
extern PADAnalog g_lanalog[2], g_ranalog[2];
|
extern PADAnalog g_lanalog[2], g_ranalog[2];
|
||||||
extern FILE *padLog;
|
extern FILE *padLog;
|
||||||
#define PAD_LOG __Log
|
#define PAD_LOG __Log
|
||||||
|
|
||||||
|
enum PadCommands
|
||||||
|
{
|
||||||
|
CMD_SET_VREF_PARAM = 0x40,
|
||||||
|
CMD_QUERY_DS2_ANALOG_MODE = 0x41,
|
||||||
|
CMD_READ_DATA_AND_VIBRATE = 0x42,
|
||||||
|
CMD_CONFIG_MODE = 0x43,
|
||||||
|
CMD_SET_MODE_AND_LOCK = 0x44,
|
||||||
|
CMD_QUERY_MODEL_AND_MODE = 0x45,
|
||||||
|
CMD_QUERY_ACT = 0x46, // ??
|
||||||
|
CMD_QUERY_COMB = 0x47, // ??
|
||||||
|
CMD_QUERY_MODE = 0x4C, // QUERY_MODE ??
|
||||||
|
CMD_VIBRATION_TOGGLE = 0x4D,
|
||||||
|
CMD_SET_DS2_NATIVE_MODE = 0x4F // SET_DS2_NATIVE_MODE
|
||||||
|
};
|
||||||
|
|
||||||
enum gamePadValues
|
enum gamePadValues
|
||||||
{
|
{
|
||||||
PAD_RY = 19,
|
PAD_RY = 19,
|
||||||
|
|
Loading…
Reference in New Issue