[Nrage-input] Tabs -> spaces
This commit is contained in:
parent
891e43878b
commit
2b15003e77
|
@ -12,179 +12,179 @@ http://www.emutalk.net/cgi-bin/ikonboard/ikonboard.cgi?s=3bd272222f66ffff;act=SF
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Note: BOOL, BYTE, WORD, DWORD, TRUE, FALSE are defined in windows.h */
|
||||
/* Note: BOOL, BYTE, WORD, DWORD, TRUE, FALSE are defined in windows.h */
|
||||
|
||||
#define PLUGIN_TYPE_CONTROLLER 4
|
||||
#define PLUGIN_TYPE_CONTROLLER 4
|
||||
|
||||
#ifndef SPECS_VERSION
|
||||
#define SPECS_VERSION 0x0101
|
||||
#endif
|
||||
|
||||
/*** Conteroller plugin's ****/
|
||||
#define PLUGIN_NONE 1
|
||||
#define PLUGIN_MEMPAK 2
|
||||
// not implemeted for non raw data
|
||||
#define PLUGIN_RUMBLE_PAK 3
|
||||
// not implemeted for non raw data
|
||||
#define PLUGIN_TRANSFER_PAK 4
|
||||
// the controller plugin is passed in raw data
|
||||
#define PLUGIN_RAW 5
|
||||
/*** Conteroller plugin's ****/
|
||||
#define PLUGIN_NONE 1
|
||||
#define PLUGIN_MEMPAK 2
|
||||
// not implemeted for non raw data
|
||||
#define PLUGIN_RUMBLE_PAK 3
|
||||
// not implemeted for non raw data
|
||||
#define PLUGIN_TRANSFER_PAK 4
|
||||
// the controller plugin is passed in raw data
|
||||
#define PLUGIN_RAW 5
|
||||
|
||||
/*********************************************************************************
|
||||
Note about Conteroller plugin's:
|
||||
the rumble pak needs a function for the force feed back joystick and tranfer pak
|
||||
probaly needs a function for the plugin to be able to select the GB rom and
|
||||
eeprom... maybe this should be done by the emu instead of the plugin, but I think
|
||||
it probaly should be done by the plugin. I will see about adding these functions
|
||||
in the next spec
|
||||
**********************************************************************************/
|
||||
/*********************************************************************************
|
||||
Note about Conteroller plugin's:
|
||||
the rumble pak needs a function for the force feed back joystick and tranfer pak
|
||||
probaly needs a function for the plugin to be able to select the GB rom and
|
||||
eeprom... maybe this should be done by the emu instead of the plugin, but I think
|
||||
it probaly should be done by the plugin. I will see about adding these functions
|
||||
in the next spec
|
||||
**********************************************************************************/
|
||||
|
||||
#define EXPORT __declspec(dllexport)
|
||||
#define CALL _cdecl
|
||||
#define EXPORT __declspec(dllexport)
|
||||
#define CALL _cdecl
|
||||
|
||||
/***** Structures *****/
|
||||
typedef struct
|
||||
{
|
||||
WORD Version; /* Should be set to 0x0101 */
|
||||
WORD Type; /* Set to PLUGIN_TYPE_CONTROLLER */
|
||||
char Name[100]; /* Name of the DLL */
|
||||
BOOL Reserved1;
|
||||
BOOL Reserved2;
|
||||
} PLUGIN_INFO;
|
||||
/***** Structures *****/
|
||||
typedef struct
|
||||
{
|
||||
WORD Version; /* Should be set to 0x0101 */
|
||||
WORD Type; /* Set to PLUGIN_TYPE_CONTROLLER */
|
||||
char Name[100]; /* Name of the DLL */
|
||||
BOOL Reserved1;
|
||||
BOOL Reserved2;
|
||||
} PLUGIN_INFO;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
BOOL Present;
|
||||
BOOL RawData;
|
||||
int Plugin;
|
||||
} CONTROL;
|
||||
typedef struct
|
||||
{
|
||||
BOOL Present;
|
||||
BOOL RawData;
|
||||
int Plugin;
|
||||
} CONTROL;
|
||||
|
||||
typedef union
|
||||
{
|
||||
DWORD Value;
|
||||
struct
|
||||
{
|
||||
unsigned R_DPAD : 1;
|
||||
unsigned L_DPAD : 1;
|
||||
unsigned D_DPAD : 1;
|
||||
unsigned U_DPAD : 1;
|
||||
unsigned START_BUTTON : 1;
|
||||
unsigned Z_TRIG : 1;
|
||||
unsigned B_BUTTON : 1;
|
||||
unsigned A_BUTTON : 1;
|
||||
typedef union
|
||||
{
|
||||
DWORD Value;
|
||||
struct
|
||||
{
|
||||
unsigned R_DPAD : 1;
|
||||
unsigned L_DPAD : 1;
|
||||
unsigned D_DPAD : 1;
|
||||
unsigned U_DPAD : 1;
|
||||
unsigned START_BUTTON : 1;
|
||||
unsigned Z_TRIG : 1;
|
||||
unsigned B_BUTTON : 1;
|
||||
unsigned A_BUTTON : 1;
|
||||
|
||||
unsigned R_CBUTTON : 1;
|
||||
unsigned L_CBUTTON : 1;
|
||||
unsigned D_CBUTTON : 1;
|
||||
unsigned U_CBUTTON : 1;
|
||||
unsigned R_TRIG : 1;
|
||||
unsigned L_TRIG : 1;
|
||||
unsigned Reserved1 : 1;
|
||||
unsigned Reserved2 : 1;
|
||||
unsigned R_CBUTTON : 1;
|
||||
unsigned L_CBUTTON : 1;
|
||||
unsigned D_CBUTTON : 1;
|
||||
unsigned U_CBUTTON : 1;
|
||||
unsigned R_TRIG : 1;
|
||||
unsigned L_TRIG : 1;
|
||||
unsigned Reserved1 : 1;
|
||||
unsigned Reserved2 : 1;
|
||||
|
||||
signed Y_AXIS : 8;
|
||||
signed Y_AXIS : 8;
|
||||
|
||||
signed X_AXIS : 8;
|
||||
};
|
||||
} BUTTONS;
|
||||
signed X_AXIS : 8;
|
||||
};
|
||||
} BUTTONS;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HWND hMainWindow;
|
||||
HINSTANCE hinst;
|
||||
typedef struct
|
||||
{
|
||||
HWND hMainWindow;
|
||||
HINSTANCE hinst;
|
||||
|
||||
BOOL MemoryBswaped; // If this is set to TRUE, then the memory has been pre
|
||||
// bswap on a dword (32 bits) boundry, only effects header.
|
||||
// eg. the first 8 bytes are stored like this:
|
||||
// 4 3 2 1 8 7 6 5
|
||||
BYTE * HEADER; // This is the rom header (first 40h bytes of the rom)
|
||||
CONTROL *Controls; // A pointer to an array of 4 controllers .. eg:
|
||||
// CONTROL Controls[4];
|
||||
} CONTROL_INFO;
|
||||
BOOL MemoryBswaped; // If this is set to TRUE, then the memory has been pre
|
||||
// bswap on a dword (32 bits) boundry, only effects header.
|
||||
// eg. the first 8 bytes are stored like this:
|
||||
// 4 3 2 1 8 7 6 5
|
||||
BYTE * HEADER; // This is the rom header (first 40h bytes of the rom)
|
||||
CONTROL *Controls; // A pointer to an array of 4 controllers .. eg:
|
||||
// CONTROL Controls[4];
|
||||
} CONTROL_INFO;
|
||||
|
||||
/******************************************************************
|
||||
Function: CloseDLL
|
||||
Purpose: This function is called when the emulator is closing
|
||||
down allowing the dll to de-initialise.
|
||||
input: none
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL CloseDLL(void);
|
||||
/******************************************************************
|
||||
Function: CloseDLL
|
||||
Purpose: This function is called when the emulator is closing
|
||||
down allowing the dll to de-initialise.
|
||||
input: none
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL CloseDLL(void);
|
||||
|
||||
/******************************************************************
|
||||
Function: ControllerCommand
|
||||
Purpose: To process the raw data that has just been sent to a
|
||||
specific controller.
|
||||
input: - Controller Number (0 to 3) and -1 signalling end of
|
||||
processing the pif ram.
|
||||
- Pointer of data to be processed.
|
||||
output: none
|
||||
/******************************************************************
|
||||
Function: ControllerCommand
|
||||
Purpose: To process the raw data that has just been sent to a
|
||||
specific controller.
|
||||
input: - Controller Number (0 to 3) and -1 signalling end of
|
||||
processing the pif ram.
|
||||
- Pointer of data to be processed.
|
||||
output: none
|
||||
|
||||
note: This function is only needed if the DLL is allowing raw
|
||||
data, or the plugin is set to raw
|
||||
note: This function is only needed if the DLL is allowing raw
|
||||
data, or the plugin is set to raw
|
||||
|
||||
the data that is being processed looks like this:
|
||||
initilize controller: 01 03 00 FF FF FF
|
||||
read controller: 01 04 01 FF FF FF FF
|
||||
*******************************************************************/
|
||||
EXPORT void CALL ControllerCommand(int Control, BYTE * Command);
|
||||
the data that is being processed looks like this:
|
||||
initilize controller: 01 03 00 FF FF FF
|
||||
read controller: 01 04 01 FF FF FF FF
|
||||
*******************************************************************/
|
||||
EXPORT void CALL ControllerCommand(int Control, BYTE * Command);
|
||||
|
||||
/******************************************************************
|
||||
Function: DllAbout
|
||||
Purpose: This function is optional function that is provided
|
||||
to give further information about the DLL.
|
||||
input: a handle to the window that calls this function
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL DllAbout(HWND hParent);
|
||||
/******************************************************************
|
||||
Function: DllAbout
|
||||
Purpose: This function is optional function that is provided
|
||||
to give further information about the DLL.
|
||||
input: a handle to the window that calls this function
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL DllAbout(HWND hParent);
|
||||
|
||||
/******************************************************************
|
||||
Function: DllConfig
|
||||
Purpose: This function is optional function that is provided
|
||||
to allow the user to configure the dll
|
||||
input: a handle to the window that calls this function
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL DllConfig(HWND hParent);
|
||||
/******************************************************************
|
||||
Function: DllConfig
|
||||
Purpose: This function is optional function that is provided
|
||||
to allow the user to configure the dll
|
||||
input: a handle to the window that calls this function
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL DllConfig(HWND hParent);
|
||||
|
||||
/******************************************************************
|
||||
Function: DllTest
|
||||
Purpose: This function is optional function that is provided
|
||||
to allow the user to test the dll
|
||||
input: a handle to the window that calls this function
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL DllTest(HWND hParent);
|
||||
/******************************************************************
|
||||
Function: DllTest
|
||||
Purpose: This function is optional function that is provided
|
||||
to allow the user to test the dll
|
||||
input: a handle to the window that calls this function
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL DllTest(HWND hParent);
|
||||
|
||||
/******************************************************************
|
||||
Function: GetDllInfo
|
||||
Purpose: This function allows the emulator to gather information
|
||||
about the dll by filling in the PluginInfo structure.
|
||||
input: a pointer to a PLUGIN_INFO stucture that needs to be
|
||||
filled by the function. (see def above)
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL GetDllInfo(PLUGIN_INFO * PluginInfo);
|
||||
/******************************************************************
|
||||
Function: GetDllInfo
|
||||
Purpose: This function allows the emulator to gather information
|
||||
about the dll by filling in the PluginInfo structure.
|
||||
input: a pointer to a PLUGIN_INFO stucture that needs to be
|
||||
filled by the function. (see def above)
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL GetDllInfo(PLUGIN_INFO * PluginInfo);
|
||||
|
||||
/******************************************************************
|
||||
Function: GetKeys
|
||||
Purpose: To get the current state of the controllers buttons.
|
||||
input: - Controller Number (0 to 3)
|
||||
- A pointer to a BUTTONS structure to be filled with
|
||||
the controller state.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL GetKeys(int Control, BUTTONS * Keys);
|
||||
/******************************************************************
|
||||
Function: GetKeys
|
||||
Purpose: To get the current state of the controllers buttons.
|
||||
input: - Controller Number (0 to 3)
|
||||
- A pointer to a BUTTONS structure to be filled with
|
||||
the controller state.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL GetKeys(int Control, BUTTONS * Keys);
|
||||
|
||||
/******************************************************************
|
||||
Function: InitiateControllers
|
||||
Purpose: This function initialises how each of the controllers
|
||||
should be handled.
|
||||
input: - The handle to the main window.
|
||||
- A controller structure that needs to be filled for
|
||||
the emulator to know how to handle each controller.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
/******************************************************************
|
||||
Function: InitiateControllers
|
||||
Purpose: This function initialises how each of the controllers
|
||||
should be handled.
|
||||
input: - The handle to the main window.
|
||||
- A controller structure that needs to be filled for
|
||||
the emulator to know how to handle each controller.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
#if (SPECS_VERSION < 0x0101)
|
||||
EXPORT void CALL InitiateControllers(void * hMainWindow, CONTROL Controls[4]);
|
||||
#elif (SPECS_VERSION == 0x0101)
|
||||
|
@ -194,53 +194,53 @@ EXPORT void CALL InitiateControllers(CONTROL_INFO ControlInfo);
|
|||
EXPORT void CALL InitiateControllers(CONTROL_INFO * ControlInfo);
|
||||
#endif
|
||||
|
||||
/******************************************************************
|
||||
Function: ReadController
|
||||
Purpose: To process the raw data in the pif ram that is about to
|
||||
be read.
|
||||
input: - Controller Number (0 to 3) and -1 signalling end of
|
||||
processing the pif ram.
|
||||
- Pointer of data to be processed.
|
||||
output: none
|
||||
note: This function is only needed if the DLL is allowing raw
|
||||
data.
|
||||
*******************************************************************/
|
||||
EXPORT void CALL ReadController(int Control, BYTE * Command);
|
||||
/******************************************************************
|
||||
Function: ReadController
|
||||
Purpose: To process the raw data in the pif ram that is about to
|
||||
be read.
|
||||
input: - Controller Number (0 to 3) and -1 signalling end of
|
||||
processing the pif ram.
|
||||
- Pointer of data to be processed.
|
||||
output: none
|
||||
note: This function is only needed if the DLL is allowing raw
|
||||
data.
|
||||
*******************************************************************/
|
||||
EXPORT void CALL ReadController(int Control, BYTE * Command);
|
||||
|
||||
/******************************************************************
|
||||
Function: RomClosed
|
||||
Purpose: This function is called when a rom is closed.
|
||||
input: none
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL RomClosed(void);
|
||||
/******************************************************************
|
||||
Function: RomClosed
|
||||
Purpose: This function is called when a rom is closed.
|
||||
input: none
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL RomClosed(void);
|
||||
|
||||
/******************************************************************
|
||||
Function: RomOpen
|
||||
Purpose: This function is called when a rom is open. (from the
|
||||
emulation thread)
|
||||
input: none
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL RomOpen(void);
|
||||
/******************************************************************
|
||||
Function: RomOpen
|
||||
Purpose: This function is called when a rom is open. (from the
|
||||
emulation thread)
|
||||
input: none
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL RomOpen(void);
|
||||
|
||||
/******************************************************************
|
||||
Function: WM_KeyDown
|
||||
Purpose: To pass the WM_KeyDown message from the emulator to the
|
||||
plugin.
|
||||
input: wParam and lParam of the WM_KEYDOWN message.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL WM_KeyDown(WPARAM wParam, LPARAM lParam);
|
||||
/******************************************************************
|
||||
Function: WM_KeyDown
|
||||
Purpose: To pass the WM_KeyDown message from the emulator to the
|
||||
plugin.
|
||||
input: wParam and lParam of the WM_KEYDOWN message.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL WM_KeyDown(WPARAM wParam, LPARAM lParam);
|
||||
|
||||
/******************************************************************
|
||||
Function: WM_KeyUp
|
||||
Purpose: To pass the WM_KEYUP message from the emulator to the
|
||||
plugin.
|
||||
input: wParam and lParam of the WM_KEYDOWN message.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL WM_KeyUp(WPARAM wParam, LPARAM lParam);
|
||||
/******************************************************************
|
||||
Function: WM_KeyUp
|
||||
Purpose: To pass the WM_KEYUP message from the emulator to the
|
||||
plugin.
|
||||
input: wParam and lParam of the WM_KEYDOWN message.
|
||||
output: none
|
||||
*******************************************************************/
|
||||
EXPORT void CALL WM_KeyUp(WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -34,125 +34,125 @@ HANDLE hDebug = INVALID_HANDLE_VALUE;
|
|||
|
||||
void _DebugAnsiFileWrite( LPCSTR szRemark )
|
||||
{
|
||||
if( !bDebug )
|
||||
return;
|
||||
if( !bDebug )
|
||||
return;
|
||||
|
||||
if (hDebug == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
TCHAR szFile[] = _T("NRage-Debug.txt");
|
||||
TCHAR szBuffer[MAX_PATH+1];
|
||||
if (hDebug == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
TCHAR szFile[] = _T("NRage-Debug.txt");
|
||||
TCHAR szBuffer[MAX_PATH+1];
|
||||
|
||||
GetAbsoluteFileName( szBuffer, szFile, DIRECTORY_LOG );
|
||||
hDebug = CreateFile( szBuffer, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
|
||||
if (hDebug != INVALID_HANDLE_VALUE)
|
||||
SetFilePointer(hDebug, 0, 0, FILE_END);
|
||||
}
|
||||
GetAbsoluteFileName( szBuffer, szFile, DIRECTORY_LOG );
|
||||
hDebug = CreateFile( szBuffer, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
|
||||
if (hDebug != INVALID_HANDLE_VALUE)
|
||||
SetFilePointer(hDebug, 0, 0, FILE_END);
|
||||
}
|
||||
|
||||
if( hDebug != INVALID_HANDLE_VALUE )
|
||||
{
|
||||
DWORD dwWritten;
|
||||
LPCSTR szText = szRemark;
|
||||
if( szText == NULL )
|
||||
szText = "\r\n";
|
||||
if( hDebug != INVALID_HANDLE_VALUE )
|
||||
{
|
||||
DWORD dwWritten;
|
||||
LPCSTR szText = szRemark;
|
||||
if( szText == NULL )
|
||||
szText = "\r\n";
|
||||
|
||||
LPCSTR szCurrPos = szText;
|
||||
LPCSTR szCurrPos = szText;
|
||||
|
||||
while( ( szCurrPos = strchr( szCurrPos, '\n' )) != NULL )
|
||||
{
|
||||
DWORD length = szCurrPos - szText;
|
||||
if( length > 0 && szCurrPos[-1] == '\r' )
|
||||
--length;
|
||||
while( ( szCurrPos = strchr( szCurrPos, '\n' )) != NULL )
|
||||
{
|
||||
DWORD length = szCurrPos - szText;
|
||||
if( length > 0 && szCurrPos[-1] == '\r' )
|
||||
--length;
|
||||
|
||||
if( length > 0 )
|
||||
WriteFile( hDebug, (LPCVOID)szText, length, &dwWritten, NULL );
|
||||
WriteFile( hDebug, "\r\n", 2, &dwWritten, NULL );
|
||||
if( length > 0 )
|
||||
WriteFile( hDebug, (LPCVOID)szText, length, &dwWritten, NULL );
|
||||
WriteFile( hDebug, "\r\n", 2, &dwWritten, NULL );
|
||||
|
||||
szText = ++szCurrPos;
|
||||
}
|
||||
szText = ++szCurrPos;
|
||||
}
|
||||
|
||||
DWORD length = lstrlenA( szText );
|
||||
DWORD length = lstrlenA( szText );
|
||||
|
||||
if( length > 0 )
|
||||
if( length > 0 )
|
||||
WriteFile( hDebug, (LPCVOID)szText, length, &dwWritten, NULL );
|
||||
}
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void _cdecl _DebugWriteA( LPCSTR szFormat, ... )
|
||||
{
|
||||
if( szFormat != NULL )
|
||||
{
|
||||
char szBuffer[4096];
|
||||
if( szFormat != NULL )
|
||||
{
|
||||
char szBuffer[4096];
|
||||
|
||||
va_list val;
|
||||
va_list val;
|
||||
|
||||
va_start( val,szFormat );
|
||||
wvsprintfA( szBuffer, szFormat, val );
|
||||
va_end( val );
|
||||
szBuffer[sizeof(szBuffer)-1] = '\0';
|
||||
va_start( val,szFormat );
|
||||
wvsprintfA( szBuffer, szFormat, val );
|
||||
va_end( val );
|
||||
szBuffer[sizeof(szBuffer)-1] = '\0';
|
||||
|
||||
_DebugAnsiFileWrite( szBuffer );
|
||||
}
|
||||
else
|
||||
_DebugAnsiFileWrite( szBuffer );
|
||||
}
|
||||
else
|
||||
_DebugAnsiFileWrite( NULL );
|
||||
}
|
||||
|
||||
void _cdecl _DebugWriteW( const LPCWSTR szFormat, ... )
|
||||
{
|
||||
if( szFormat != NULL )
|
||||
{
|
||||
WCHAR szBuffer[4096];
|
||||
va_list val;
|
||||
if( szFormat != NULL )
|
||||
{
|
||||
WCHAR szBuffer[4096];
|
||||
va_list val;
|
||||
|
||||
va_start( val,szFormat );
|
||||
wvsprintfW( szBuffer, szFormat, val );
|
||||
va_end( val );
|
||||
szBuffer[(sizeof(szBuffer) / sizeof(WCHAR))-1] = L'\0';
|
||||
va_start( val,szFormat );
|
||||
wvsprintfW( szBuffer, szFormat, val );
|
||||
va_end( val );
|
||||
szBuffer[(sizeof(szBuffer) / sizeof(WCHAR))-1] = L'\0';
|
||||
|
||||
char szAnsi[sizeof(szBuffer) / sizeof(WCHAR)];
|
||||
WideCharToMultiByte( CP_ACP, 0, szBuffer, -1, szAnsi, sizeof(szAnsi), NULL, NULL );
|
||||
_DebugAnsiFileWrite( szAnsi );
|
||||
}
|
||||
else
|
||||
_DebugAnsiFileWrite( NULL );
|
||||
char szAnsi[sizeof(szBuffer) / sizeof(WCHAR)];
|
||||
WideCharToMultiByte( CP_ACP, 0, szBuffer, -1, szAnsi, sizeof(szAnsi), NULL, NULL );
|
||||
_DebugAnsiFileWrite( szAnsi );
|
||||
}
|
||||
else
|
||||
_DebugAnsiFileWrite( NULL );
|
||||
}
|
||||
|
||||
void _WriteDatasA( LPCSTR Header, const int Control, const unsigned char * Data, const HRESULT hr )
|
||||
{
|
||||
if( !bDebug || Data == NULL )
|
||||
return;
|
||||
if( !bDebug || Data == NULL )
|
||||
return;
|
||||
|
||||
_DebugWriteA( "%d:%s\n", Control, Header);
|
||||
|
||||
if( hr )
|
||||
{
|
||||
_DebugWriteA( "Failed! ErrorCode: %08X\n", hr );
|
||||
}
|
||||
_DebugWriteA( "%d:%s\n", Control, Header);
|
||||
|
||||
if( hr )
|
||||
{
|
||||
_DebugWriteA( "Failed! ErrorCode: %08X\n", hr );
|
||||
}
|
||||
|
||||
|
||||
int iEnd = Data[0] + Data[1] + 2;
|
||||
int iEnd = Data[0] + Data[1] + 2;
|
||||
|
||||
for( int i = -1; i < iEnd; i += 8 )
|
||||
{
|
||||
_DebugWriteA( "%02X%02X%02X%02X %02X%02X%02X%02X\n", Data[i+0], Data[i+1], Data[i+2], Data[i+3], Data[i+4], Data[i+5], Data[i+6], Data[i+7] );
|
||||
}
|
||||
for( int i = -1; i < iEnd; i += 8 )
|
||||
{
|
||||
_DebugWriteA( "%02X%02X%02X%02X %02X%02X%02X%02X\n", Data[i+0], Data[i+1], Data[i+2], Data[i+3], Data[i+4], Data[i+5], Data[i+6], Data[i+7] );
|
||||
}
|
||||
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
void _CloseDebugFile()
|
||||
{
|
||||
if( hDebug != INVALID_HANDLE_VALUE )
|
||||
{
|
||||
_DebugWriteA("---DEBUG FILE CLOSED---\n");
|
||||
CloseHandle( hDebug );
|
||||
}
|
||||
if( hDebug != INVALID_HANDLE_VALUE )
|
||||
{
|
||||
_DebugWriteA("---DEBUG FILE CLOSED---\n");
|
||||
CloseHandle( hDebug );
|
||||
}
|
||||
}
|
||||
|
||||
void _DebugFlush()
|
||||
{
|
||||
if( hDebug != INVALID_HANDLE_VALUE )
|
||||
{
|
||||
FlushFileBuffers(hDebug);
|
||||
}
|
||||
if( hDebug != INVALID_HANDLE_VALUE )
|
||||
{
|
||||
FlushFileBuffers(hDebug);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -37,9 +37,9 @@ void _cdecl _DebugWriteW( LPCWSTR szFormat, ... );
|
|||
void _CloseDebugFile();
|
||||
void _DebugFlush();
|
||||
|
||||
#define DebugWriteA _DebugWriteA
|
||||
#define DebugWriteW _DebugWriteW
|
||||
#define WriteDatasA( header, control, data, hr ) _WriteDatasA( header, control, data, hr )
|
||||
#define DebugWriteA _DebugWriteA
|
||||
#define DebugWriteW _DebugWriteW
|
||||
#define WriteDatasA( header, control, data, hr ) _WriteDatasA( header, control, data, hr )
|
||||
#define CloseDebugFile() _CloseDebugFile()
|
||||
#define DebugWriteByteA(str) DebugWriteA("%02X", str)
|
||||
#define DebugWriteWordA(str) DebugWriteA("%04X", str)
|
||||
|
@ -48,9 +48,9 @@ void _DebugFlush();
|
|||
#else // #ifndef _DEBUG
|
||||
#define DebugWriteByteA(str)
|
||||
#define DebugWriteWordA(str)
|
||||
#define DebugWriteA ;//
|
||||
#define DebugWriteW ;//
|
||||
#define WriteDatasA(header,control,data,hr)
|
||||
#define DebugWriteA ;//
|
||||
#define DebugWriteW ;//
|
||||
#define WriteDatasA(header,control,data,hr)
|
||||
#define CloseDebugFile()
|
||||
#define DebugFlush()
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -55,103 +55,103 @@ HRESULT ReadAdaptoidPak( LPDIRECTINPUTDEVICE8 lpDirectInputDevice, DWORD addr, L
|
|||
HRESULT WriteAdaptoidPak( LPDIRECTINPUTDEVICE8 lpDirectInputDevice, DWORD addr, LPBYTE data );
|
||||
|
||||
|
||||
#define MINAXISVALUE -32767
|
||||
#define MAXAXISVALUE 32767
|
||||
#define ZEROVALUE 0
|
||||
#define THRESHOLD 50
|
||||
#define RANGERELATIVE (MAXAXISVALUE - ZEROVALUE + 1)
|
||||
#define ABSTHRESHOLD (RANGERELATIVE * THRESHOLD / 100)
|
||||
// plus or minus this many 1/100 degrees counts as GetJoyPadPOV being pressed
|
||||
#define POVANGLETHRESH 5675
|
||||
#define MINAXISVALUE -32767
|
||||
#define MAXAXISVALUE 32767
|
||||
#define ZEROVALUE 0
|
||||
#define THRESHOLD 50
|
||||
#define RANGERELATIVE (MAXAXISVALUE - ZEROVALUE + 1)
|
||||
#define ABSTHRESHOLD (RANGERELATIVE * THRESHOLD / 100)
|
||||
// plus or minus this many 1/100 degrees counts as GetJoyPadPOV being pressed
|
||||
#define POVANGLETHRESH 5675
|
||||
|
||||
#define MOUSEMOVE 5
|
||||
// by default, scale the mouse input by this much
|
||||
#define MOUSESCALEVALUE 10
|
||||
// percent to decay mouse buffer every frame.
|
||||
// Tweak this from 0-100 to control how much the mouse drifts; values closer to 100 drift more,
|
||||
// while values closer to 0 are very stiff (deadpan) and don't turn well
|
||||
#define MOUSEBUFFERDECAY 80
|
||||
#define MOUSEMOVE 5
|
||||
// by default, scale the mouse input by this much
|
||||
#define MOUSESCALEVALUE 10
|
||||
// percent to decay mouse buffer every frame.
|
||||
// Tweak this from 0-100 to control how much the mouse drifts; values closer to 100 drift more,
|
||||
// while values closer to 0 are very stiff (deadpan) and don't turn well
|
||||
#define MOUSEBUFFERDECAY 80
|
||||
|
||||
#define N64DIVIDER 258
|
||||
#define N64DIVIDER 258
|
||||
|
||||
|
||||
#define DID_KEYBOARD 0
|
||||
#define DID_MOUSE 1
|
||||
#define DID_GAMEPAD 2
|
||||
#define DID_KEYBOARD 0
|
||||
#define DID_MOUSE 1
|
||||
#define DID_GAMEPAD 2
|
||||
|
||||
#define DIB_KEYBOARD DISCL_NONEXCLUSIVE | DISCL_FOREGROUND
|
||||
#define DIB_MOUSE DISCL_EXCLUSIVE | DISCL_FOREGROUND
|
||||
#define DIB_FF DISCL_EXCLUSIVE | DISCL_BACKGROUND
|
||||
#define DIB_DEVICE DISCL_NONEXCLUSIVE | DISCL_BACKGROUND
|
||||
#define DIB_KEYBOARD DISCL_NONEXCLUSIVE | DISCL_FOREGROUND
|
||||
#define DIB_MOUSE DISCL_EXCLUSIVE | DISCL_FOREGROUND
|
||||
#define DIB_FF DISCL_EXCLUSIVE | DISCL_BACKGROUND
|
||||
#define DIB_DEVICE DISCL_NONEXCLUSIVE | DISCL_BACKGROUND
|
||||
|
||||
#define DIB_CONFIG DISCL_NONEXCLUSIVE | DISCL_BACKGROUND
|
||||
#define DIB_CONFIG DISCL_NONEXCLUSIVE | DISCL_BACKGROUND
|
||||
|
||||
#define RUMBLE_NONE 0x00
|
||||
#define RUMBLE_CONSTANT 0x01
|
||||
#define RUMBLE_RAMP 0x02
|
||||
#define RUMBLE_CONDITION 0x04
|
||||
#define RUMBLE_PERIODIC 0x08
|
||||
#define RUMBLE_CUSTOM 0x10
|
||||
#define RUMBLE_NONE 0x00
|
||||
#define RUMBLE_CONSTANT 0x01
|
||||
#define RUMBLE_RAMP 0x02
|
||||
#define RUMBLE_CONDITION 0x04
|
||||
#define RUMBLE_PERIODIC 0x08
|
||||
#define RUMBLE_CUSTOM 0x10
|
||||
|
||||
#define RUMBLE_DIRECT 0x80
|
||||
#define RUMBLE_DIRECT 0x80
|
||||
|
||||
#define RUMBLE_EFF1 RUMBLE_CONSTANT
|
||||
#define RUMBLE_EFF2 RUMBLE_RAMP
|
||||
#define RUMBLE_EFF3 RUMBLE_DIRECT
|
||||
#define RUMBLE_EFF1 RUMBLE_CONSTANT
|
||||
#define RUMBLE_EFF2 RUMBLE_RAMP
|
||||
#define RUMBLE_EFF3 RUMBLE_DIRECT
|
||||
|
||||
// Reported Name of the Adaptoid
|
||||
#define STRING_ADAPTOID "Adaptoid"
|
||||
#define STRING_GUID_SYSKEYBOARD _T("Keyboard")
|
||||
#define STRING_GUID_SYSMOUSE _T("SysMouse")
|
||||
// Reported Name of the Adaptoid
|
||||
#define STRING_ADAPTOID "Adaptoid"
|
||||
#define STRING_GUID_SYSKEYBOARD _T("Keyboard")
|
||||
#define STRING_GUID_SYSMOUSE _T("SysMouse")
|
||||
|
||||
// Query API - pass in command #, returns 0xB0CAB0CA if supported
|
||||
#define ADAPT_TEST 0x7834BB00
|
||||
// Send command to rumble pack (DWORD 0=stop, 1=go)
|
||||
#define ADAPT_RUMBLE 0x7834BB08
|
||||
// Initialize pak (returns pak status bit flags)
|
||||
#define ADAPT_INIT 0x7834BB0C
|
||||
// Read from pak (reads 32 bytes of data)
|
||||
#define ADAPT_READPAK 0x7834BB0D
|
||||
// Write to pak (writes 32 bytes of data)
|
||||
#define ADAPT_WRITEPAK 0x7834BB0E
|
||||
// Send command directly to controller - synchronous
|
||||
#define ADAPT_DIRECTCOMMAND 0x7834BB28
|
||||
// Query API - pass in command #, returns 0xB0CAB0CA if supported
|
||||
#define ADAPT_TEST 0x7834BB00
|
||||
// Send command to rumble pack (DWORD 0=stop, 1=go)
|
||||
#define ADAPT_RUMBLE 0x7834BB08
|
||||
// Initialize pak (returns pak status bit flags)
|
||||
#define ADAPT_INIT 0x7834BB0C
|
||||
// Read from pak (reads 32 bytes of data)
|
||||
#define ADAPT_READPAK 0x7834BB0D
|
||||
// Write to pak (writes 32 bytes of data)
|
||||
#define ADAPT_WRITEPAK 0x7834BB0E
|
||||
// Send command directly to controller - synchronous
|
||||
#define ADAPT_DIRECTCOMMAND 0x7834BB28
|
||||
|
||||
// The following inline functions are all overloads for existing functions
|
||||
inline bool CreateEffectHandle( int iDevice, BYTE bRumbleTyp, long lStrength )
|
||||
{
|
||||
return CreateEffectHandle( g_strEmuInfo.hMainWindow, g_apFFDevice[iDevice], g_apdiEffect[iDevice], bRumbleTyp, lStrength );
|
||||
return CreateEffectHandle( g_strEmuInfo.hMainWindow, g_apFFDevice[iDevice], g_apdiEffect[iDevice], bRumbleTyp, lStrength );
|
||||
}
|
||||
|
||||
// this used to exist, but it was only used once and makes things more confusing. Removed. --rabid
|
||||
//inline void ReleaseEffect( int iEffect )
|
||||
//{
|
||||
// ReleaseEffect( g_apdiEffect[iEffect] );
|
||||
// ReleaseEffect( g_apdiEffect[iEffect] );
|
||||
//}
|
||||
|
||||
inline BYTE GetAdaptoidStatus( int iDevice )
|
||||
{
|
||||
return GetAdaptoidStatus( g_apFFDevice[iDevice] );
|
||||
return GetAdaptoidStatus( g_apFFDevice[iDevice] );
|
||||
}
|
||||
inline HRESULT WriteAdaptoidPak( int iDevice, DWORD addr, LPBYTE data )
|
||||
{
|
||||
return WriteAdaptoidPak( g_apFFDevice[iDevice], addr, data );
|
||||
return WriteAdaptoidPak( g_apFFDevice[iDevice], addr, data );
|
||||
}
|
||||
inline HRESULT ReadAdaptoidPak( int iDevice, DWORD addr, LPBYTE data )
|
||||
{
|
||||
return ReadAdaptoidPak( g_apFFDevice[iDevice], addr, data );
|
||||
return ReadAdaptoidPak( g_apFFDevice[iDevice], addr, data );
|
||||
}
|
||||
inline HRESULT InitializeAdaptoid( int iDevice, LPBYTE status )
|
||||
{
|
||||
return InitializeAdaptoid( g_apFFDevice[iDevice], status );
|
||||
return InitializeAdaptoid( g_apFFDevice[iDevice], status );
|
||||
}
|
||||
inline HRESULT DirectRumbleCommand( int iDevice, DWORD cmd )
|
||||
{
|
||||
return DirectRumbleCommand( g_apFFDevice[iDevice], cmd );
|
||||
return DirectRumbleCommand( g_apFFDevice[iDevice], cmd );
|
||||
}
|
||||
inline bool IsAdaptoidCommandSupported( int iDevice, DWORD cmd )
|
||||
{
|
||||
return IsAdaptoidCommandSupported( g_apFFDevice[iDevice], cmd );
|
||||
return IsAdaptoidCommandSupported( g_apFFDevice[iDevice], cmd );
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -55,75 +55,75 @@ inline bool StringtoGUIDA( LPGUID guid, const char * szGUIDbuf );
|
|||
unsigned long djbHash(const char *str);
|
||||
|
||||
#ifdef _UNICODE
|
||||
#define TCHAR_TO_CHAR(x,y,z) wcstombs(x,y,z)
|
||||
#define CHAR_TO_TCHAR(x,y,z) mbstowcs(x,y,z)
|
||||
#define TCHAR_TO_CHAR(x,y,z) wcstombs(x,y,z)
|
||||
#define CHAR_TO_TCHAR(x,y,z) mbstowcs(x,y,z)
|
||||
#else
|
||||
#define TCHAR_TO_CHAR(x,y,z) strncpy(x,y,z)
|
||||
#define CHAR_TO_TCHAR(x,y,z) strncpy(x,y,z)
|
||||
#define TCHAR_TO_CHAR(x,y,z) strncpy(x,y,z)
|
||||
#define CHAR_TO_TCHAR(x,y,z) strncpy(x,y,z)
|
||||
#endif
|
||||
|
||||
#define STRING_DEF_MEMPAKFILE _T("MemPaks")
|
||||
#define STRING_DEF_GBROMFILE _T("GBxRoms")
|
||||
#define STRING_DEF_GBROMSAVE _T("GBxSaves")
|
||||
#define STRING_DEF_MEMPAKFILE _T("MemPaks")
|
||||
#define STRING_DEF_GBROMFILE _T("GBxRoms")
|
||||
#define STRING_DEF_GBROMSAVE _T("GBxSaves")
|
||||
|
||||
#define STRING_INI_HEADER "# Generated by NRage input plugin V2 version " VER_FILE_VERSION_STR "\n"
|
||||
#define STRING_INI_HEADER "# Generated by NRage input plugin V2 version " VER_FILE_VERSION_STR "\n"
|
||||
// We use these names for loading from INI files and NRage config files
|
||||
#define STRING_INI_GENERAL "General"
|
||||
#define STRING_INI_CONTROLLER "Controller"
|
||||
#define STRING_INI_FOLDERS "Folders"
|
||||
#define STRING_INI_BROWSER "lastBrowserDir"
|
||||
#define STRING_INI_CONTROLS "Controls"
|
||||
#define STRING_INI_SHORTCUTS "Shortcuts"
|
||||
#define STRING_INI_MODIFIERS "Modifiers"
|
||||
#define STRING_INI_GENERAL "General"
|
||||
#define STRING_INI_CONTROLLER "Controller"
|
||||
#define STRING_INI_FOLDERS "Folders"
|
||||
#define STRING_INI_BROWSER "lastBrowserDir"
|
||||
#define STRING_INI_CONTROLS "Controls"
|
||||
#define STRING_INI_SHORTCUTS "Shortcuts"
|
||||
#define STRING_INI_MODIFIERS "Modifiers"
|
||||
|
||||
#define STRING_INI_LANGUAGE "Language"
|
||||
#define STRING_INI_SHOWMESSAGES "ShowMessages"
|
||||
#define STRING_INI_LANGUAGE "Language"
|
||||
#define STRING_INI_SHOWMESSAGES "ShowMessages"
|
||||
|
||||
#define STRING_INI_BRPROFILE "Profile"
|
||||
#define STRING_INI_BRNOTE "Note"
|
||||
#define STRING_INI_BRMEMPAK "Mempak"
|
||||
#define STRING_INI_BRGBROM "GBxRom"
|
||||
#define STRING_INI_BRGBSAVE "GBxSave"
|
||||
// #define STRING_INI_BRSHORTCUTS STRING_INI_SHORTCUTS
|
||||
#define STRING_INI_BRPROFILE "Profile"
|
||||
#define STRING_INI_BRNOTE "Note"
|
||||
#define STRING_INI_BRMEMPAK "Mempak"
|
||||
#define STRING_INI_BRGBROM "GBxRom"
|
||||
#define STRING_INI_BRGBSAVE "GBxSave"
|
||||
// #define STRING_INI_BRSHORTCUTS STRING_INI_SHORTCUTS
|
||||
|
||||
#define STRING_INI_PLUGGED "Plugged"
|
||||
#define STRING_INI_XINPUT "xInput"
|
||||
#define STRING_INI_N64MOUSE "N64Mouse"
|
||||
#define STRING_INI_BACKGROUNDINPUT "BackgroundInput"
|
||||
#define STRING_INI_RAWDATA "RawData"
|
||||
#define STRING_INI_PAKTYPE "PakType"
|
||||
#define STRING_INI_REALN64RANGE "RealN64Range"
|
||||
#define STRING_INI_RAPIDFIREENABLED "RapidFireEnabled"
|
||||
#define STRING_INI_RAPIDFIRERATE "RapidFireRate"
|
||||
#define STRING_INI_STICKRANGE "StickRange"
|
||||
#define STRING_INI_MOUSEMOVEX "MouseMoveX"
|
||||
#define STRING_INI_MOUSEMOVEY "MouseMoveY"
|
||||
#define STRING_INI_AXISSET "AxisSet"
|
||||
#define STRING_INI_KEYABSOLUTEX "KeyAbsoluteX"
|
||||
#define STRING_INI_KEYABSOLUTEY "KeyAbsoluteY"
|
||||
#define STRING_INI_PADDEADZONE "PadDeadZone"
|
||||
#define STRING_INI_MOUSESENSX "MouseSensitivityX"
|
||||
#define STRING_INI_MOUSESENSY "MouseSensitivityY"
|
||||
#define STRING_INI_RUMBLETYPE "RumbleType"
|
||||
#define STRING_INI_RUMBLESTRENGTH "RumbleStrength"
|
||||
#define STRING_INI_VISUALRUMBLE "VisualRumble"
|
||||
#define STRING_INI_FFDEVICEGUID "FFDeviceGUID"
|
||||
#define STRING_INI_MEMPAKFILE "MemPakFile"
|
||||
#define STRING_INI_GBROMFILE "GBRomFile"
|
||||
#define STRING_INI_GBROMSAVE "GBRomSave"
|
||||
#define STRING_INI_PLUGGED "Plugged"
|
||||
#define STRING_INI_XINPUT "xInput"
|
||||
#define STRING_INI_N64MOUSE "N64Mouse"
|
||||
#define STRING_INI_BACKGROUNDINPUT "BackgroundInput"
|
||||
#define STRING_INI_RAWDATA "RawData"
|
||||
#define STRING_INI_PAKTYPE "PakType"
|
||||
#define STRING_INI_REALN64RANGE "RealN64Range"
|
||||
#define STRING_INI_RAPIDFIREENABLED "RapidFireEnabled"
|
||||
#define STRING_INI_RAPIDFIRERATE "RapidFireRate"
|
||||
#define STRING_INI_STICKRANGE "StickRange"
|
||||
#define STRING_INI_MOUSEMOVEX "MouseMoveX"
|
||||
#define STRING_INI_MOUSEMOVEY "MouseMoveY"
|
||||
#define STRING_INI_AXISSET "AxisSet"
|
||||
#define STRING_INI_KEYABSOLUTEX "KeyAbsoluteX"
|
||||
#define STRING_INI_KEYABSOLUTEY "KeyAbsoluteY"
|
||||
#define STRING_INI_PADDEADZONE "PadDeadZone"
|
||||
#define STRING_INI_MOUSESENSX "MouseSensitivityX"
|
||||
#define STRING_INI_MOUSESENSY "MouseSensitivityY"
|
||||
#define STRING_INI_RUMBLETYPE "RumbleType"
|
||||
#define STRING_INI_RUMBLESTRENGTH "RumbleStrength"
|
||||
#define STRING_INI_VISUALRUMBLE "VisualRumble"
|
||||
#define STRING_INI_FFDEVICEGUID "FFDeviceGUID"
|
||||
#define STRING_INI_MEMPAKFILE "MemPakFile"
|
||||
#define STRING_INI_GBROMFILE "GBRomFile"
|
||||
#define STRING_INI_GBROMSAVE "GBRomSave"
|
||||
|
||||
#define STRING_INI_DINPUTGUID "DInputGUID"
|
||||
#define STRING_INI_BUTTON "Button"
|
||||
#define STRING_INI_MODIFIER "Modifier"
|
||||
#define STRING_INI_DINPUTGUID "DInputGUID"
|
||||
#define STRING_INI_BUTTON "Button"
|
||||
#define STRING_INI_MODIFIER "Modifier"
|
||||
|
||||
// The following are not found in INI files; only profile and shortcuts files
|
||||
#define STRING_PROFILEVERSION22 "Controller Profile 2.2"
|
||||
#define STRING_PROFILEVERSION STRING_PROFILEVERSION22
|
||||
#define STRING_PROFILEVERSION STRING_PROFILEVERSION22
|
||||
|
||||
#define STRING_INI_FFDEVICENAME "FFDeviceName"
|
||||
#define STRING_INI_FFDEVICENR "FFDeviceNr"
|
||||
#define STRING_INI_DINPUTNAME "DInputName"
|
||||
#define STRING_INI_DINPUTNR "DInputNr"
|
||||
#define STRING_INI_FFDEVICENAME "FFDeviceName"
|
||||
#define STRING_INI_FFDEVICENR "FFDeviceNr"
|
||||
#define STRING_INI_DINPUTNAME "DInputName"
|
||||
#define STRING_INI_DINPUTNR "DInputNr"
|
||||
|
||||
|
||||
// the following are hashes for the string values above
|
||||
|
@ -197,40 +197,40 @@ unsigned long djbHash(const char *str);
|
|||
// If any of the following values conflict with djbHash return values (such as a blank string), there will be problems!
|
||||
|
||||
// nothing
|
||||
#define PL_NOHIT 0
|
||||
// [Category]
|
||||
#define PL_CATEGORY 1
|
||||
// @STRING_PROFILEVERSION
|
||||
#define PL_VERSIONSTRING 10
|
||||
#define PL_NOHIT 0
|
||||
// [Category]
|
||||
#define PL_CATEGORY 1
|
||||
// @STRING_PROFILEVERSION
|
||||
#define PL_VERSIONSTRING 10
|
||||
|
||||
// resets the static vars in ProcessKey
|
||||
#define PL_RESET 200
|
||||
// resets the static vars in ProcessKey
|
||||
#define PL_RESET 200
|
||||
|
||||
|
||||
#define DIRECTORY_MEMPAK 0
|
||||
#define DIRECTORY_GBROMS 1
|
||||
#define DIRECTORY_GBSAVES 2
|
||||
#define DIRECTORY_CONFIG 252
|
||||
#define DIRECTORY_LOG 253
|
||||
#define DIRECTORY_DLL 254
|
||||
#define DIRECTORY_APPLICATION 255
|
||||
#define DIRECTORY_INVALID 256
|
||||
#define DIRECTORY_MEMPAK 0
|
||||
#define DIRECTORY_GBROMS 1
|
||||
#define DIRECTORY_GBSAVES 2
|
||||
#define DIRECTORY_CONFIG 252
|
||||
#define DIRECTORY_LOG 253
|
||||
#define DIRECTORY_DLL 254
|
||||
#define DIRECTORY_APPLICATION 255
|
||||
#define DIRECTORY_INVALID 256
|
||||
|
||||
|
||||
#define FILIST_MEM 1
|
||||
#define FILIST_TRANSFER 2
|
||||
#define FILIST_MEM 1
|
||||
#define FILIST_TRANSFER 2
|
||||
|
||||
#define BF_LOAD false
|
||||
#define BF_SAVE true
|
||||
#define BF_LOAD false
|
||||
#define BF_SAVE true
|
||||
|
||||
#define BF_MEMPAK 0
|
||||
#define BF_GBROM 1
|
||||
#define BF_GBSAVE 2
|
||||
#define BF_PROFILE 3
|
||||
#define BF_NOTE 4
|
||||
#define BF_SHORTCUTS 5
|
||||
#define BF_MEMPAK 0
|
||||
#define BF_GBROM 1
|
||||
#define BF_GBSAVE 2
|
||||
#define BF_PROFILE 3
|
||||
#define BF_NOTE 4
|
||||
#define BF_SHORTCUTS 5
|
||||
|
||||
// 32 hex characters, 4 hyphens, 2 end braces
|
||||
#define GUID_STRINGLENGTH 32+4+2
|
||||
// 32 hex characters, 4 hyphens, 2 end braces
|
||||
#define GUID_STRINGLENGTH 32+4+2
|
||||
|
||||
#endif // #ifndef _FILEACCESS_H_
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -21,27 +21,27 @@ typedef struct _gbCartRTC {
|
|||
|
||||
typedef struct _GBCART
|
||||
{
|
||||
unsigned int iCurrentRomBankNo;
|
||||
unsigned int iCurrentRamBankNo;
|
||||
int iCartType;
|
||||
bool bHasRam;
|
||||
bool bHasBattery;
|
||||
bool bHasTimer;
|
||||
bool bHasRumble;
|
||||
bool bRamEnableState;
|
||||
bool bMBC1RAMbanking; // if false, use 2 magic bits for Most Significant Bits of ROM banking (default); if true, use the 2 magic bits for RAM banking
|
||||
unsigned int iNumRomBanks;
|
||||
unsigned int iNumRamBanks;
|
||||
BYTE TimerData[5];
|
||||
BYTE LatchedTimerData[5];
|
||||
time_t timerLastUpdate;
|
||||
bool TimerDataLatched;
|
||||
HANDLE hRomFile; // a file mapping handle
|
||||
HANDLE hRamFile; // a file mapping handle, must be NULL if malloc'd ram is being used instead of a valid memory mapped file
|
||||
const unsigned char * RomData; // max [0x200 * 0x4000];
|
||||
LPBYTE RamData; // max [0x10 * 0x2000];
|
||||
bool (*ptrfnReadCart)(_GBCART * Cart, WORD dwAddress, BYTE *Data); // ReadCart handler
|
||||
bool (*ptrfnWriteCart)(_GBCART * Cart, WORD dwAddress, BYTE *Data); // WriteCart handler
|
||||
unsigned int iCurrentRomBankNo;
|
||||
unsigned int iCurrentRamBankNo;
|
||||
int iCartType;
|
||||
bool bHasRam;
|
||||
bool bHasBattery;
|
||||
bool bHasTimer;
|
||||
bool bHasRumble;
|
||||
bool bRamEnableState;
|
||||
bool bMBC1RAMbanking; // if false, use 2 magic bits for Most Significant Bits of ROM banking (default); if true, use the 2 magic bits for RAM banking
|
||||
unsigned int iNumRomBanks;
|
||||
unsigned int iNumRamBanks;
|
||||
BYTE TimerData[5];
|
||||
BYTE LatchedTimerData[5];
|
||||
time_t timerLastUpdate;
|
||||
bool TimerDataLatched;
|
||||
HANDLE hRomFile; // a file mapping handle
|
||||
HANDLE hRamFile; // a file mapping handle, must be NULL if malloc'd ram is being used instead of a valid memory mapped file
|
||||
const unsigned char * RomData; // max [0x200 * 0x4000];
|
||||
LPBYTE RamData; // max [0x10 * 0x2000];
|
||||
bool (*ptrfnReadCart)(_GBCART * Cart, WORD dwAddress, BYTE *Data); // ReadCart handler
|
||||
bool (*ptrfnWriteCart)(_GBCART * Cart, WORD dwAddress, BYTE *Data); // WriteCart handler
|
||||
} GBCART, *LPGBCART;
|
||||
|
||||
bool LoadCart(LPGBCART Cart, LPCTSTR RomFile, LPCTSTR RamFile, LPCTSTR TdfFile);
|
||||
|
@ -65,15 +65,15 @@ iCartType values:
|
|||
Note, that 7 and up are not implemented yet.
|
||||
*/
|
||||
|
||||
#define GB_NORM 0x00
|
||||
#define GB_MBC1 0x01
|
||||
#define GB_MBC2 0x02
|
||||
#define GB_MMMO1 0x03
|
||||
#define GB_MBC3 0x04
|
||||
#define GB_MBC5 0x05
|
||||
#define GB_CAMERA 0x06
|
||||
#define GB_TAMA5 0x07
|
||||
#define GB_HUC3 0x08
|
||||
#define GB_HUC1 0x09
|
||||
#define GB_NORM 0x00
|
||||
#define GB_MBC1 0x01
|
||||
#define GB_MBC2 0x02
|
||||
#define GB_MMMO1 0x03
|
||||
#define GB_MBC3 0x04
|
||||
#define GB_MBC5 0x05
|
||||
#define GB_CAMERA 0x06
|
||||
#define GB_TAMA5 0x07
|
||||
#define GB_HUC3 0x08
|
||||
#define GB_HUC1 0x09
|
||||
|
||||
#endif // #ifndef _GBCART_H_
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -29,64 +29,64 @@ void SetModifier( CONTROLLER *pcController );
|
|||
void SetControllerDefaults( CONTROLLER *pcController );
|
||||
|
||||
// application internal message
|
||||
#define WM_USER_UPDATE WM_USER + 1
|
||||
#define WM_USER_UPDATE WM_USER + 1
|
||||
// application internal message
|
||||
#define WM_USER_READVALUES WM_USER + 2
|
||||
#define WM_USER_READVALUES WM_USER + 2
|
||||
|
||||
#define CONFIGTHRESHOLD 50
|
||||
#define MOUSE_THRESHOLD 10
|
||||
#define CONFIGTHRESHOLD 50
|
||||
#define MOUSE_THRESHOLD 10
|
||||
|
||||
#define SC_SCANSUCCEED 0x01
|
||||
#define SC_SCANESCAPE 0x10
|
||||
#define SC_SCANSUCCEED 0x01
|
||||
#define SC_SCANESCAPE 0x10
|
||||
|
||||
#define TIMER_BUTTON 1
|
||||
#define TIMER_BUTTON 1
|
||||
|
||||
#define INTERVAL_BUTTON 20
|
||||
#define INTERVAL_RUMBLETEST 20
|
||||
#define INTERVAL_BUTTON 20
|
||||
#define INTERVAL_RUMBLETEST 20
|
||||
|
||||
#define MPAK_FORMATABLE 0x01
|
||||
#define MPAK_READABLE 0x02
|
||||
#define MPAK_WRITEABLE 0x04
|
||||
#define MPAK_FORMATABLE 0x01
|
||||
#define MPAK_READABLE 0x02
|
||||
#define MPAK_WRITEABLE 0x04
|
||||
|
||||
#define MPAK_OK 0x07
|
||||
#define MPAK_INUSE 0x12
|
||||
#define MPAK_WRONGSIZE 0x27
|
||||
#define MPAK_DAMAGED 0x71
|
||||
#define MPAK_ERROR 0x81
|
||||
#define MPAK_NOSELECTION 0xF0
|
||||
#define MPAK_OK 0x07
|
||||
#define MPAK_INUSE 0x12
|
||||
#define MPAK_WRONGSIZE 0x27
|
||||
#define MPAK_DAMAGED 0x71
|
||||
#define MPAK_ERROR 0x81
|
||||
#define MPAK_NOSELECTION 0xF0
|
||||
|
||||
|
||||
#define BSET_CONTROLS 1
|
||||
#define BSET_SHORTCUTS 2
|
||||
#define BSET_CONTROLS 1
|
||||
#define BSET_SHORTCUTS 2
|
||||
|
||||
|
||||
typedef struct _IFDEVICE
|
||||
{
|
||||
TCHAR szProductName[MAX_PATH+1];
|
||||
BYTE bProductCounter;
|
||||
TCHAR szProductName[MAX_PATH+1];
|
||||
BYTE bProductCounter;
|
||||
} IFDEVICE, *LPIFDEVICE;
|
||||
|
||||
typedef struct _INTERFACEVALUES
|
||||
{
|
||||
BYTE ChosenTab;
|
||||
CONTROLLER Controllers[4];
|
||||
IFDEVICE FFDevices[4];
|
||||
SHORTCUTS Shortcuts;
|
||||
LANGID Language;
|
||||
bool fDisplayShortPop;
|
||||
BYTE ChosenTab;
|
||||
CONTROLLER Controllers[4];
|
||||
IFDEVICE FFDevices[4];
|
||||
SHORTCUTS Shortcuts;
|
||||
LANGID Language;
|
||||
bool fDisplayShortPop;
|
||||
} INTERFACEVALUES, *LPINTERFACEVALUES;
|
||||
|
||||
#define TAB_CONTROLLER1 0
|
||||
#define TAB_CONTROLLER2 1
|
||||
#define TAB_CONTROLLER3 2
|
||||
#define TAB_CONTROLLER4 3
|
||||
#define TAB_SHORTCUTS 4
|
||||
#define TAB_FOLDERS 5
|
||||
#define TAB_CONTROLLER1 0
|
||||
#define TAB_CONTROLLER2 1
|
||||
#define TAB_CONTROLLER3 2
|
||||
#define TAB_CONTROLLER4 3
|
||||
#define TAB_SHORTCUTS 4
|
||||
#define TAB_FOLDERS 5
|
||||
|
||||
#define TAB_CONTROLS 0
|
||||
#define TAB_DEVICES 1
|
||||
#define TAB_MODIFIERS 2
|
||||
#define TAB_PAK 3
|
||||
#define TAB_CONTROLS 0
|
||||
#define TAB_DEVICES 1
|
||||
#define TAB_MODIFIERS 2
|
||||
#define TAB_PAK 3
|
||||
|
||||
extern INTERFACEVALUES *g_ivConfig;
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -41,29 +41,29 @@ BOOL CALLBACK EnumLangProc(HANDLE hModule, LPCTSTR lpszType, LPCTSTR lpszName, W
|
|||
// "If it ain't broke, don't fix it."
|
||||
|
||||
// Loads the satellite DLL specified for the language DesiredLanguage
|
||||
HMODULE LoadLanguageDLL(LANGID DesiredLanguage)
|
||||
HMODULE LoadLanguageDLL(LANGID DesiredLanguage)
|
||||
{
|
||||
TCHAR SatellitePath[MAX_PATH];
|
||||
HMODULE hDLL;
|
||||
TCHAR SatellitePath[MAX_PATH];
|
||||
HMODULE hDLL;
|
||||
|
||||
// First try to load the library with the fully specified language
|
||||
_stprintf(SatellitePath, _T("NRage-Language-%u.dll"), DesiredLanguage);
|
||||
hDLL = LoadLibraryEx(SatellitePath, 0, 0);
|
||||
if( hDLL )
|
||||
return hDLL;
|
||||
else
|
||||
{ // try the primary language ID
|
||||
DesiredLanguage = PRIMARYLANGID(DesiredLanguage);
|
||||
_stprintf(SatellitePath, _T("NRage-Language-%u.dll"), DesiredLanguage);
|
||||
hDLL = LoadLibraryEx(SatellitePath, 0, 0);
|
||||
if( hDLL )
|
||||
return hDLL;
|
||||
else
|
||||
{
|
||||
DebugWrite(_T("Couldn't load library: %s\n"), SatellitePath);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
// First try to load the library with the fully specified language
|
||||
_stprintf(SatellitePath, _T("NRage-Language-%u.dll"), DesiredLanguage);
|
||||
hDLL = LoadLibraryEx(SatellitePath, 0, 0);
|
||||
if( hDLL )
|
||||
return hDLL;
|
||||
else
|
||||
{ // try the primary language ID
|
||||
DesiredLanguage = PRIMARYLANGID(DesiredLanguage);
|
||||
_stprintf(SatellitePath, _T("NRage-Language-%u.dll"), DesiredLanguage);
|
||||
hDLL = LoadLibraryEx(SatellitePath, 0, 0);
|
||||
if( hDLL )
|
||||
return hDLL;
|
||||
else
|
||||
{
|
||||
DebugWrite(_T("Couldn't load library: %s\n"), SatellitePath);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The following functions contain code to
|
||||
|
@ -71,7 +71,7 @@ HMODULE LoadLanguageDLL(LANGID DesiredLanguage)
|
|||
// user interface should be displayed
|
||||
|
||||
BOOL CALLBACK EnumLangProc(HANDLE hModule, LPCTSTR lpszType, LPCTSTR lpszName,
|
||||
WORD wIDLanguage, LONG_PTR lParam)
|
||||
WORD wIDLanguage, LONG_PTR lParam)
|
||||
{
|
||||
PLANGINFO LangInfo;
|
||||
|
||||
|
@ -82,7 +82,7 @@ BOOL CALLBACK EnumLangProc(HANDLE hModule, LPCTSTR lpszType, LPCTSTR lpszName,
|
|||
return (TRUE); // continue enumeration
|
||||
}
|
||||
|
||||
// Detects the language of ntdll.dll with some specific processing for
|
||||
// Detects the language of ntdll.dll with some specific processing for
|
||||
// the Hongkong SAR version
|
||||
LANGID GetNTDLLNativeLangID()
|
||||
{
|
||||
|
@ -113,7 +113,7 @@ BOOL IsHongKongVersion()
|
|||
{
|
||||
HMODULE hMod;
|
||||
BOOL bRet=FALSE;
|
||||
typedef BOOL (WINAPI *IMMRELEASECONTEXT)(HWND,HIMC);
|
||||
typedef BOOL (WINAPI *IMMRELEASECONTEXT)(HWND,HIMC);
|
||||
IMMRELEASECONTEXT pImmReleaseContext;
|
||||
|
||||
hMod = LoadLibrary(_T("imm32.dll"));
|
||||
|
@ -133,65 +133,65 @@ BOOL IsHongKongVersion()
|
|||
LANGID DetectLanguage()
|
||||
{
|
||||
|
||||
#define MAX_KEY_BUFFER 80
|
||||
#define MAX_KEY_BUFFER 80
|
||||
|
||||
OSVERSIONINFO VersionInfo;
|
||||
LANGID uiLangID = 0;
|
||||
HKEY hKey;
|
||||
DWORD Type, BuffLen = MAX_KEY_BUFFER;
|
||||
TCHAR LangKeyValue[MAX_KEY_BUFFER];
|
||||
OSVERSIONINFO VersionInfo;
|
||||
LANGID uiLangID = 0;
|
||||
HKEY hKey;
|
||||
DWORD Type, BuffLen = MAX_KEY_BUFFER;
|
||||
TCHAR LangKeyValue[MAX_KEY_BUFFER];
|
||||
|
||||
VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||
if( !GetVersionEx(&VersionInfo) )
|
||||
return(0);
|
||||
VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||
if( !GetVersionEx(&VersionInfo) )
|
||||
return(0);
|
||||
|
||||
switch( VersionInfo.dwPlatformId )
|
||||
{
|
||||
// On Windows NT, Windows 2000 or higher
|
||||
case VER_PLATFORM_WIN32_NT:
|
||||
if( VersionInfo.dwMajorVersion >= 5) // Windows 2000 or higher
|
||||
{
|
||||
// we need to dynamically link the GetUserDefaultUILanguage func
|
||||
HMODULE hmKernDLL = LoadLibrary(_T("kernel32.dll"));
|
||||
if (hmKernDLL)
|
||||
{
|
||||
LANGID (*fpGetLang)() = NULL;
|
||||
fpGetLang = (LANGID(*)(void))GetProcAddress(hmKernDLL, "GetUserDefaultUILanguage");
|
||||
uiLangID = fpGetLang();
|
||||
} // and if we couldn't load kernel32.dll, just fall back to default language
|
||||
}
|
||||
else
|
||||
{ // for NT4 check the language of ntdll.dll
|
||||
uiLangID = GetNTDLLNativeLangID();
|
||||
if (uiLangID == 1033)
|
||||
{ // special processing for Honkong SAR version of NT4
|
||||
if (IsHongKongVersion())
|
||||
{
|
||||
uiLangID = 3076;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
// On Windows 95, Windows 98 or Windows ME
|
||||
case VER_PLATFORM_WIN32_WINDOWS:
|
||||
// Open the registry key for the UI language
|
||||
if( RegOpenKeyEx(HKEY_CURRENT_USER,_T("Default\\Control Panel\\Desktop\\ResourceLocale"), 0,
|
||||
KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS )
|
||||
{
|
||||
// Get the type of the default key
|
||||
if( RegQueryValueEx(hKey, NULL, NULL, &Type, NULL, NULL) == ERROR_SUCCESS
|
||||
&& Type == REG_SZ )
|
||||
{ // Read the key value
|
||||
if( RegQueryValueEx(hKey, NULL, NULL, &Type, (LPBYTE)LangKeyValue, &BuffLen)
|
||||
== ERROR_SUCCESS )
|
||||
{
|
||||
uiLangID = _ttoi(LangKeyValue);
|
||||
}
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
break;
|
||||
}
|
||||
switch( VersionInfo.dwPlatformId )
|
||||
{
|
||||
// On Windows NT, Windows 2000 or higher
|
||||
case VER_PLATFORM_WIN32_NT:
|
||||
if( VersionInfo.dwMajorVersion >= 5) // Windows 2000 or higher
|
||||
{
|
||||
// we need to dynamically link the GetUserDefaultUILanguage func
|
||||
HMODULE hmKernDLL = LoadLibrary(_T("kernel32.dll"));
|
||||
if (hmKernDLL)
|
||||
{
|
||||
LANGID (*fpGetLang)() = NULL;
|
||||
fpGetLang = (LANGID(*)(void))GetProcAddress(hmKernDLL, "GetUserDefaultUILanguage");
|
||||
uiLangID = fpGetLang();
|
||||
} // and if we couldn't load kernel32.dll, just fall back to default language
|
||||
}
|
||||
else
|
||||
{ // for NT4 check the language of ntdll.dll
|
||||
uiLangID = GetNTDLLNativeLangID();
|
||||
if (uiLangID == 1033)
|
||||
{ // special processing for Honkong SAR version of NT4
|
||||
if (IsHongKongVersion())
|
||||
{
|
||||
uiLangID = 3076;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
// On Windows 95, Windows 98 or Windows ME
|
||||
case VER_PLATFORM_WIN32_WINDOWS:
|
||||
// Open the registry key for the UI language
|
||||
if( RegOpenKeyEx(HKEY_CURRENT_USER,_T("Default\\Control Panel\\Desktop\\ResourceLocale"), 0,
|
||||
KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS )
|
||||
{
|
||||
// Get the type of the default key
|
||||
if( RegQueryValueEx(hKey, NULL, NULL, &Type, NULL, NULL) == ERROR_SUCCESS
|
||||
&& Type == REG_SZ )
|
||||
{ // Read the key value
|
||||
if( RegQueryValueEx(hKey, NULL, NULL, &Type, (LPBYTE)LangKeyValue, &BuffLen)
|
||||
== ERROR_SUCCESS )
|
||||
{
|
||||
uiLangID = _ttoi(LangKeyValue);
|
||||
}
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (uiLangID == 0)
|
||||
{
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -30,15 +30,15 @@
|
|||
|
||||
typedef struct LANGINFO_DEF
|
||||
{
|
||||
int Count;
|
||||
LANGID LangID;
|
||||
int Count;
|
||||
LANGID LangID;
|
||||
} LANGINFO;
|
||||
typedef LANGINFO *PLANGINFO;
|
||||
|
||||
// only export these functions if UNICODE support is enabled
|
||||
#ifdef _UNICODE
|
||||
LANGID DetectLanguage();
|
||||
HMODULE LoadLanguageDLL(LANGID DesiredLanguage);
|
||||
HMODULE LoadLanguageDLL(LANGID DesiredLanguage);
|
||||
#endif // #ifdef _UNICODE
|
||||
|
||||
#endif // #ifndef _NRINTERNATIONAL_
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,24 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef _NRAGEPLUGIN_
|
||||
#define _NRAGEPLUGIN_
|
||||
|
@ -30,38 +30,38 @@
|
|||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//General Plugin
|
||||
|
||||
#define TIMER_MESSAGEWINDOW 123
|
||||
#define TIMER_MESSAGEWINDOW 123
|
||||
|
||||
// maximum number of devices other than SysMouse
|
||||
#define MAX_DEVICES 32
|
||||
#define MAX_DEVICES 32
|
||||
// maximum number of modifiers
|
||||
#define MAX_MODIFIERS 256
|
||||
#define MAX_MODIFIERS 256
|
||||
|
||||
#define DEFAULT_STICKRANGE 66
|
||||
#define DEFAULT_DEADZONE 5
|
||||
#define DEFAULT_RUMBLETYP RUMBLE_EFF1
|
||||
#define DEFAULT_RUMBLESTRENGTH 80
|
||||
#define DEFAULT_MOUSESENSIVITY 100
|
||||
#define DEFAULT_PAKTYPE PAK_MEM
|
||||
#define DEFAULT_MOUSEMOVE MM_BUFF
|
||||
#define DEFAULT_STICKRANGE 66
|
||||
#define DEFAULT_DEADZONE 5
|
||||
#define DEFAULT_RUMBLETYP RUMBLE_EFF1
|
||||
#define DEFAULT_RUMBLESTRENGTH 80
|
||||
#define DEFAULT_MOUSESENSIVITY 100
|
||||
#define DEFAULT_PAKTYPE PAK_MEM
|
||||
#define DEFAULT_MOUSEMOVE MM_BUFF
|
||||
|
||||
#define PAK_NONE 0
|
||||
#define PAK_MEM 1
|
||||
#define PAK_RUMBLE 2
|
||||
#define PAK_TRANSFER 3
|
||||
#define PAK_VOICE 4
|
||||
#define PAK_ADAPTOID 7
|
||||
#define PAK_NONE 0
|
||||
#define PAK_MEM 1
|
||||
#define PAK_RUMBLE 2
|
||||
#define PAK_TRANSFER 3
|
||||
#define PAK_VOICE 4
|
||||
#define PAK_ADAPTOID 7
|
||||
|
||||
// just used to display text in GUI
|
||||
#define PAK_NONRAW 16
|
||||
#define PAK_NONRAW 16
|
||||
|
||||
typedef struct _EMULATOR_INFO
|
||||
{
|
||||
bool fInitialisedPlugin;
|
||||
HWND hMainWindow;
|
||||
HINSTANCE hinst;
|
||||
LANGID Language;
|
||||
bool fDisplayShortPop; // do we display shortcut message popups?
|
||||
bool fInitialisedPlugin;
|
||||
HWND hMainWindow;
|
||||
HINSTANCE hinst;
|
||||
LANGID Language;
|
||||
bool fDisplayShortPop; // do we display shortcut message popups?
|
||||
|
||||
/*
|
||||
* 2015.11.09 cxd4
|
||||
|
@ -71,152 +71,152 @@ typedef struct _EMULATOR_INFO
|
|||
*/
|
||||
CONTROL * controllers;
|
||||
|
||||
// BOOL MemoryBswaped; // If this is set to TRUE, then the memory has been pre
|
||||
// bswap on a dword (32 bits) boundry, only effects header.
|
||||
// eg. the first 8 bytes are stored like this:
|
||||
// 4 3 2 1 8 7 6 5
|
||||
// BYTE * HEADER; // This is the rom header (first 40h bytes of the rom)
|
||||
// BOOL MemoryBswaped; // If this is set to TRUE, then the memory has been pre
|
||||
// bswap on a dword (32 bits) boundry, only effects header.
|
||||
// eg. the first 8 bytes are stored like this:
|
||||
// 4 3 2 1 8 7 6 5
|
||||
// BYTE * HEADER; // This is the rom header (first 40h bytes of the rom)
|
||||
} EMULATOR_INFO, *LPEMULATOR_INFO;
|
||||
|
||||
typedef struct _DEVICE
|
||||
{
|
||||
LPDIRECTINPUTDEVICE8 didHandle;
|
||||
TCHAR szProductName[MAX_PATH];
|
||||
BYTE bProductCounter;
|
||||
GUID guidInstance;
|
||||
DWORD dwDevType; // can be DI8DEVTYPE_KEYBOARD, DI8DEVTYPE_MOUSE, etc
|
||||
BYTE bEffType; // What rumble effects does this device support?
|
||||
union INPUTSTATE // the last polled data from this device
|
||||
{
|
||||
DIJOYSTATE joyState;
|
||||
DIMOUSESTATE2 mouseState;
|
||||
BYTE rgbButtons[256]; // keyboard state
|
||||
} stateAs;
|
||||
LPDIRECTINPUTDEVICE8 didHandle;
|
||||
TCHAR szProductName[MAX_PATH];
|
||||
BYTE bProductCounter;
|
||||
GUID guidInstance;
|
||||
DWORD dwDevType; // can be DI8DEVTYPE_KEYBOARD, DI8DEVTYPE_MOUSE, etc
|
||||
BYTE bEffType; // What rumble effects does this device support?
|
||||
union INPUTSTATE // the last polled data from this device
|
||||
{
|
||||
DIJOYSTATE joyState;
|
||||
DIMOUSESTATE2 mouseState;
|
||||
BYTE rgbButtons[256]; // keyboard state
|
||||
} stateAs;
|
||||
} DEVICE, *LPDEVICE;
|
||||
|
||||
typedef struct _BUTTON
|
||||
{
|
||||
bool fPrevPressed; // Was this button pressed last time we checked? (not to be saved in config)
|
||||
BYTE bOffset; // Offset in the DirectInput data structure
|
||||
BYTE bAxisID; // Tells which range of the Axe/POV is important (see AI_AXE_P, AI_POV_UP, etc)
|
||||
BYTE bBtnType; // Type of device/button: Keyboard key, Joystick axis, Joystick button, Mouse axis, etc
|
||||
LPDEVICE parentDevice; // pointer to the DEVICE this assignment came from
|
||||
bool fPrevPressed; // Was this button pressed last time we checked? (not to be saved in config)
|
||||
BYTE bOffset; // Offset in the DirectInput data structure
|
||||
BYTE bAxisID; // Tells which range of the Axe/POV is important (see AI_AXE_P, AI_POV_UP, etc)
|
||||
BYTE bBtnType; // Type of device/button: Keyboard key, Joystick axis, Joystick button, Mouse axis, etc
|
||||
LPDEVICE parentDevice; // pointer to the DEVICE this assignment came from
|
||||
} BUTTON, *LPBUTTON;
|
||||
|
||||
// Modifiers are a feature built into NRage. Emulator turbo buttons, macros, stuff like that.
|
||||
typedef struct _MODIFIER
|
||||
{
|
||||
BUTTON btnButton; // button to associate with
|
||||
BYTE bModType; // Type of modifier (None, Movement, Macro, Config)
|
||||
BOOL fToggle; // false if you have to hold the button down to activate, true if the modifier toggles on button press
|
||||
BOOL fStatus; // if true, control defaults to ACTIVE, and deactivates on button press
|
||||
DWORD32 dwSpecific; // will be cast to MODSPEC_MOVE, MODSPEC_MACRO, or MODSPEC_CONFIG
|
||||
BUTTON btnButton; // button to associate with
|
||||
BYTE bModType; // Type of modifier (None, Movement, Macro, Config)
|
||||
BOOL fToggle; // false if you have to hold the button down to activate, true if the modifier toggles on button press
|
||||
BOOL fStatus; // if true, control defaults to ACTIVE, and deactivates on button press
|
||||
DWORD32 dwSpecific; // will be cast to MODSPEC_MOVE, MODSPEC_MACRO, or MODSPEC_CONFIG
|
||||
} MODIFIER, *LPMODIFIER;
|
||||
|
||||
// bModType (modifiers)
|
||||
#define MDT_NONE 0
|
||||
#define MDT_MOVE 1
|
||||
#define MDT_MACRO 2
|
||||
#define MDT_CONFIG 3
|
||||
#define MDT_NONE 0
|
||||
#define MDT_MOVE 1
|
||||
#define MDT_MACRO 2
|
||||
#define MDT_CONFIG 3
|
||||
|
||||
// buffered
|
||||
#define MM_BUFF 0
|
||||
#define MM_BUFF 0
|
||||
// absolute
|
||||
#define MM_ABS 1
|
||||
#define MM_ABS 1
|
||||
// deadpan
|
||||
#define MM_DEAD 2
|
||||
#define MM_DEAD 2
|
||||
|
||||
// Number of analog axes. Standard N64 controller has just 2: X and Y joystick.
|
||||
#define PF_AXESETS 2
|
||||
#define PF_AXESETS 2
|
||||
|
||||
typedef struct _CONTROLLER // AN N64 CONTROLLER
|
||||
typedef struct _CONTROLLER // AN N64 CONTROLLER
|
||||
{
|
||||
unsigned fPlugged; // is the controller "plugged" (i.e. does the emulator see a controller on this port?)
|
||||
unsigned fXInput; // is the controller an xInput device?
|
||||
unsigned fN64Mouse; // is the controller a N64 Mouse (Relative)?
|
||||
unsigned fRawData; // are we using RAW mode for this controller?
|
||||
unsigned fIsAdaptoid; // is it an adaptoid?
|
||||
unsigned fPlugged; // is the controller "plugged" (i.e. does the emulator see a controller on this port?)
|
||||
unsigned fXInput; // is the controller an xInput device?
|
||||
unsigned fN64Mouse; // is the controller a N64 Mouse (Relative)?
|
||||
unsigned fRawData; // are we using RAW mode for this controller?
|
||||
unsigned fIsAdaptoid; // is it an adaptoid?
|
||||
|
||||
unsigned fKeyboard; // does it use a keyboard?
|
||||
unsigned fMouse; // does it use a mouse?
|
||||
unsigned fGamePad; // does it use a gamepad/joystick?
|
||||
unsigned fKeyboard; // does it use a keyboard?
|
||||
unsigned fMouse; // does it use a mouse?
|
||||
unsigned fGamePad; // does it use a gamepad/joystick?
|
||||
|
||||
unsigned fRealN64Range; // does it have the "Real N64 Range" flag set?
|
||||
unsigned bAxisSet; // which set of axes are we using? (Control 1, Control 2)
|
||||
unsigned bMouseMoveX; // does it use buffered/absolute mouse for X? MM_BUFF, MM_ABS, MM_DEAD
|
||||
unsigned bMouseMoveY; // does it use buffered/absolute mouse for Y?
|
||||
unsigned fKeyAbsoluteX; // does it use absolute key for X?
|
||||
unsigned fKeyAbsoluteY; // does it use absolute key for Y?
|
||||
unsigned fRealN64Range; // does it have the "Real N64 Range" flag set?
|
||||
unsigned bAxisSet; // which set of axes are we using? (Control 1, Control 2)
|
||||
unsigned bMouseMoveX; // does it use buffered/absolute mouse for X? MM_BUFF, MM_ABS, MM_DEAD
|
||||
unsigned bMouseMoveY; // does it use buffered/absolute mouse for Y?
|
||||
unsigned fKeyAbsoluteX; // does it use absolute key for X?
|
||||
unsigned fKeyAbsoluteY; // does it use absolute key for Y?
|
||||
|
||||
unsigned fPakInitialized; // Has our pak been initialized? Used to make sure we don't try to write to a mempak that doesn't point to anything.
|
||||
unsigned fPakCRCError; // The ROM sends CRC data when it tries to write to a mempak. Is the CRC incorrect? Usually indicates a bad ROM.
|
||||
unsigned PakType; // what type of controller pak? mempak? rumble? transfer? etc
|
||||
unsigned fVisualRumble; // is visual rumble enabled for this controller?
|
||||
unsigned fPakInitialized; // Has our pak been initialized? Used to make sure we don't try to write to a mempak that doesn't point to anything.
|
||||
unsigned fPakCRCError; // The ROM sends CRC data when it tries to write to a mempak. Is the CRC incorrect? Usually indicates a bad ROM.
|
||||
unsigned PakType; // what type of controller pak? mempak? rumble? transfer? etc
|
||||
unsigned fVisualRumble; // is visual rumble enabled for this controller?
|
||||
|
||||
unsigned bBackgroundInput; // allow input while main window isn't focused?
|
||||
unsigned bBackgroundInput; // allow input while main window isn't focused?
|
||||
|
||||
BYTE bRumbleTyp; // what type of rumble effect? none, constant, ramp, or direct?
|
||||
BYTE bRumbleTyp; // what type of rumble effect? none, constant, ramp, or direct?
|
||||
|
||||
GUID guidFFDevice; // GUID of the device that rumble gets sent to
|
||||
GUID guidFFDevice; // GUID of the device that rumble gets sent to
|
||||
|
||||
BYTE bStickRange; // our "range modifier".
|
||||
BYTE bStickRange; // our "range modifier".
|
||||
|
||||
long wAxeBuffer[4]; // makes pseudo-relative Movement possible through keyboard or buttons
|
||||
// also acts as a mouse buffer
|
||||
long wAxeBuffer[4]; // makes pseudo-relative Movement possible through keyboard or buttons
|
||||
// also acts as a mouse buffer
|
||||
|
||||
WORD wMouseSensitivityX; // set per N64 controller, that's OK
|
||||
WORD wMouseSensitivityY;
|
||||
BYTE bPadDeadZone; // our manual dead zone, set per N64 controller
|
||||
BYTE bRumbleStrength; // set per N64 controller
|
||||
unsigned short nModifiers; // number of modifiers
|
||||
WORD wMouseSensitivityX; // set per N64 controller, that's OK
|
||||
WORD wMouseSensitivityY;
|
||||
BYTE bPadDeadZone; // our manual dead zone, set per N64 controller
|
||||
BYTE bRumbleStrength; // set per N64 controller
|
||||
unsigned short nModifiers; // number of modifiers
|
||||
|
||||
bool bRapidFireEnabled;
|
||||
BYTE bRapidFireRate;
|
||||
BYTE bRapidFireCounter;
|
||||
bool bRapidFireEnabled;
|
||||
BYTE bRapidFireRate;
|
||||
BYTE bRapidFireCounter;
|
||||
|
||||
TCHAR szMempakFile[MAX_PATH + 1]; // MemPak-FileName
|
||||
TCHAR szTransferRom[MAX_PATH + 1]; // GameBoyRom-Filename
|
||||
TCHAR szTransferSave[MAX_PATH + 1]; // GameBoyEEPRom-Filename
|
||||
TCHAR szMempakFile[MAX_PATH + 1]; // MemPak-FileName
|
||||
TCHAR szTransferRom[MAX_PATH + 1]; // GameBoyRom-Filename
|
||||
TCHAR szTransferSave[MAX_PATH + 1]; // GameBoyEEPRom-Filename
|
||||
|
||||
BUTTON aButton[14 + PF_AXESETS * 4]; // Ten buttons, 4 d-pad directions times two (for Config 1 and Config 2)
|
||||
BUTTON aButton[14 + PF_AXESETS * 4]; // Ten buttons, 4 d-pad directions times two (for Config 1 and Config 2)
|
||||
|
||||
MODIFIER *pModifiers; // Array of Modifiers
|
||||
MODIFIER *pModifiers; // Array of Modifiers
|
||||
|
||||
void *pPakData; // Pointer to Pak Data (specific): see PakIO.h
|
||||
// pPakData->bPakType will always be a BYTE indicating what the current pak type is
|
||||
void *pPakData; // Pointer to Pak Data (specific): see PakIO.h
|
||||
// pPakData->bPakType will always be a BYTE indicating what the current pak type is
|
||||
|
||||
XCONTROLLER xiController; // To handle an XInput enabled controller --tecnicors
|
||||
XCONTROLLER xiController; // To handle an XInput enabled controller --tecnicors
|
||||
} CONTROLLER, *LPCONTROLLER;
|
||||
|
||||
// This is the Index of WORD PROFILE.Button[X]
|
||||
// Buttons:
|
||||
#define PF_DPADR 0
|
||||
#define PF_DPADL 1
|
||||
#define PF_DPADD 2
|
||||
#define PF_DPADU 3
|
||||
#define PF_START 4
|
||||
#define PF_TRIGGERZ 5
|
||||
#define PF_BBUTTON 6
|
||||
#define PF_ABUTTON 7
|
||||
#define PF_DPADR 0
|
||||
#define PF_DPADL 1
|
||||
#define PF_DPADD 2
|
||||
#define PF_DPADU 3
|
||||
#define PF_START 4
|
||||
#define PF_TRIGGERZ 5
|
||||
#define PF_BBUTTON 6
|
||||
#define PF_ABUTTON 7
|
||||
#define PF_CBUTTONR 8
|
||||
#define PF_CBUTTONL 9
|
||||
#define PF_CBUTTONL 9
|
||||
#define PF_CBUTTOND 10
|
||||
#define PF_CBUTTONU 11
|
||||
#define PF_TRIGGERR 12
|
||||
#define PF_TRIGGERL 13
|
||||
#define PF_TRIGGERR 12
|
||||
#define PF_TRIGGERL 13
|
||||
|
||||
// Analog Stick
|
||||
// cause you can assign Buttons to it, I need 4 of 'em
|
||||
#define PF_APADR 14
|
||||
#define PF_APADL 15
|
||||
#define PF_APADD 16
|
||||
#define PF_APADU 17
|
||||
#define PF_APADR 14
|
||||
#define PF_APADL 15
|
||||
#define PF_APADD 16
|
||||
#define PF_APADU 17
|
||||
|
||||
// second Set
|
||||
// #define PF_APADR 18
|
||||
// #define PF_APADL 19
|
||||
// #define PF_APADD 20
|
||||
// #define PF_APADU 21
|
||||
// #define PF_APADR 18
|
||||
// #define PF_APADL 19
|
||||
// #define PF_APADD 20
|
||||
// #define PF_APADU 21
|
||||
|
||||
// Data Format of DWORD Controller.Button:
|
||||
//
|
||||
|
@ -226,140 +226,140 @@ typedef struct _CONTROLLER // AN N64 CONTROLLER
|
|||
// BYTE bOffset : Offset in the DirectInput data structure
|
||||
|
||||
// BYTE bBtnType : Determines the Device and general Type of Control
|
||||
#define DT_UNASSIGNED 0
|
||||
#define DT_UNASSIGNED 0
|
||||
// Joystick
|
||||
#define DT_JOYBUTTON 1
|
||||
#define DT_JOYAXE 2
|
||||
#define DT_JOYPOV 3
|
||||
#define DT_JOYSLIDER 4
|
||||
#define DT_JOYBUTTON 1
|
||||
#define DT_JOYAXE 2
|
||||
#define DT_JOYPOV 3
|
||||
#define DT_JOYSLIDER 4
|
||||
|
||||
// Keyboard
|
||||
#define DT_KEYBUTTON 5
|
||||
#define DT_KEYBUTTON 5
|
||||
|
||||
// Mouse
|
||||
#define DT_MOUSEBUTTON 6
|
||||
#define DT_MOUSEAXE 7
|
||||
#define DT_MOUSEBUTTON 6
|
||||
#define DT_MOUSEAXE 7
|
||||
|
||||
// BYTE bAxisID : AxeIndentifier, Tells which range of the Axe/POV is important
|
||||
|
||||
// Positive Range of an Axe
|
||||
#define AI_AXE_P 0
|
||||
#define AI_AXE_P 0
|
||||
// Negative Range
|
||||
#define AI_AXE_N 1
|
||||
#define AI_AXE_N 1
|
||||
|
||||
// Applies to POVs obviously
|
||||
#define AI_POV_UP 0
|
||||
#define AI_POV_RIGHT 1
|
||||
#define AI_POV_DOWN 2
|
||||
#define AI_POV_LEFT 3
|
||||
#define AI_POV_UP 0
|
||||
#define AI_POV_RIGHT 1
|
||||
#define AI_POV_DOWN 2
|
||||
#define AI_POV_LEFT 3
|
||||
|
||||
// BYTE bOffset : Offset in the DirectInput data structure
|
||||
|
||||
typedef union _MODSPEC_MOVE
|
||||
{
|
||||
DWORD dwValue;
|
||||
struct
|
||||
{
|
||||
short XModification;
|
||||
short YModification;
|
||||
};
|
||||
DWORD dwValue;
|
||||
struct
|
||||
{
|
||||
short XModification;
|
||||
short YModification;
|
||||
};
|
||||
} MODSPEC_MOVE, *LPMODSPEC_MOVE;
|
||||
|
||||
typedef union _MODSPEC_MACRO
|
||||
{
|
||||
DWORD dwValue;
|
||||
struct
|
||||
{
|
||||
unsigned short aButtons;
|
||||
unsigned short aFlags;
|
||||
};
|
||||
struct
|
||||
{
|
||||
unsigned fDigitalRight : 1;
|
||||
unsigned fDigitalLeft : 1;
|
||||
unsigned fDigitalDown : 1;
|
||||
unsigned fDigitalUp : 1;
|
||||
unsigned fStart : 1;
|
||||
unsigned fTriggerZ : 1;
|
||||
unsigned fBButton : 1;
|
||||
unsigned fAButton : 1;
|
||||
unsigned fCRight : 1;
|
||||
unsigned fCLeft : 1;
|
||||
unsigned fCDown : 1;
|
||||
unsigned fCUp : 1;
|
||||
unsigned fTriggerR : 1;
|
||||
unsigned fTriggerL : 1;
|
||||
unsigned : 2;
|
||||
DWORD dwValue;
|
||||
struct
|
||||
{
|
||||
unsigned short aButtons;
|
||||
unsigned short aFlags;
|
||||
};
|
||||
struct
|
||||
{
|
||||
unsigned fDigitalRight : 1;
|
||||
unsigned fDigitalLeft : 1;
|
||||
unsigned fDigitalDown : 1;
|
||||
unsigned fDigitalUp : 1;
|
||||
unsigned fStart : 1;
|
||||
unsigned fTriggerZ : 1;
|
||||
unsigned fBButton : 1;
|
||||
unsigned fAButton : 1;
|
||||
unsigned fCRight : 1;
|
||||
unsigned fCLeft : 1;
|
||||
unsigned fCDown : 1;
|
||||
unsigned fCUp : 1;
|
||||
unsigned fTriggerR : 1;
|
||||
unsigned fTriggerL : 1;
|
||||
unsigned : 2;
|
||||
|
||||
unsigned fAnalogRight : 1;
|
||||
unsigned fAnalogLeft : 1;
|
||||
unsigned fAnalogDown : 1;
|
||||
unsigned fAnalogUp : 1;
|
||||
unsigned fRapidFire : 1;
|
||||
unsigned fRapidFireRate : 1;
|
||||
unsigned fPrevFireState : 1;
|
||||
unsigned fPrevFireState2 : 1;
|
||||
};
|
||||
unsigned fAnalogRight : 1;
|
||||
unsigned fAnalogLeft : 1;
|
||||
unsigned fAnalogDown : 1;
|
||||
unsigned fAnalogUp : 1;
|
||||
unsigned fRapidFire : 1;
|
||||
unsigned fRapidFireRate : 1;
|
||||
unsigned fPrevFireState : 1;
|
||||
unsigned fPrevFireState2 : 1;
|
||||
};
|
||||
} MODSPEC_MACRO, *LPMODSPEC_MACRO;
|
||||
|
||||
typedef union _MODSPEC_CONFIG
|
||||
{
|
||||
DWORD dwValue;
|
||||
struct
|
||||
{
|
||||
BYTE bAnalogStick;
|
||||
BYTE bMouse;
|
||||
BYTE bKeyboard;
|
||||
};
|
||||
struct
|
||||
{
|
||||
unsigned fChangeAnalogConfig : 1;
|
||||
unsigned fAnalogStickMode : 7;
|
||||
unsigned fChangeMouseXAxis : 1;
|
||||
unsigned fChangeMouseYAxis : 1;
|
||||
unsigned : 6;
|
||||
unsigned fChangeKeyboardXAxis : 1;
|
||||
unsigned fChangeKeyboardYAxis : 1;
|
||||
unsigned : 6;
|
||||
};
|
||||
DWORD dwValue;
|
||||
struct
|
||||
{
|
||||
BYTE bAnalogStick;
|
||||
BYTE bMouse;
|
||||
BYTE bKeyboard;
|
||||
};
|
||||
struct
|
||||
{
|
||||
unsigned fChangeAnalogConfig : 1;
|
||||
unsigned fAnalogStickMode : 7;
|
||||
unsigned fChangeMouseXAxis : 1;
|
||||
unsigned fChangeMouseYAxis : 1;
|
||||
unsigned : 6;
|
||||
unsigned fChangeKeyboardXAxis : 1;
|
||||
unsigned fChangeKeyboardYAxis : 1;
|
||||
unsigned : 6;
|
||||
};
|
||||
} MODSPEC_CONFIG, *LPMODSPEC_CONFIG;
|
||||
|
||||
#define SC_NOPAK 0
|
||||
#define SC_MEMPAK 1
|
||||
#define SC_RUMBPAK 2
|
||||
#define SC_TRANSPAK 3
|
||||
#define SC_VOICEPAK 4
|
||||
#define SC_ADAPTPAK 5
|
||||
#define SC_SWMEMRUMB 6
|
||||
#define SC_SWMEMADAPT 7
|
||||
#define SC_NOPAK 0
|
||||
#define SC_MEMPAK 1
|
||||
#define SC_RUMBPAK 2
|
||||
#define SC_TRANSPAK 3
|
||||
#define SC_VOICEPAK 4
|
||||
#define SC_ADAPTPAK 5
|
||||
#define SC_SWMEMRUMB 6
|
||||
#define SC_SWMEMADAPT 7
|
||||
|
||||
// total arraysize of aButtons in SHORTCUTSPL;
|
||||
// make sure you update this if you change the list above
|
||||
#define SC_TOTAL 8
|
||||
#define SC_TOTAL 8
|
||||
|
||||
typedef struct _SHORTCUTSPL
|
||||
{
|
||||
BUTTON aButtons[SC_TOTAL];
|
||||
//BUTTON NoPakButton;
|
||||
//BUTTON MemPakButton;
|
||||
//BUTTON RumblePakButton;
|
||||
//BUTTON TransferPakButton;
|
||||
//BUTTON VoicePakButton;
|
||||
//BUTTON AdaptoidPakButton;
|
||||
//BUTTON SwMemRumbleButton;
|
||||
//BUTTON SwMemAdaptoidButton;
|
||||
BUTTON aButtons[SC_TOTAL];
|
||||
//BUTTON NoPakButton;
|
||||
//BUTTON MemPakButton;
|
||||
//BUTTON RumblePakButton;
|
||||
//BUTTON TransferPakButton;
|
||||
//BUTTON VoicePakButton;
|
||||
//BUTTON AdaptoidPakButton;
|
||||
//BUTTON SwMemRumbleButton;
|
||||
//BUTTON SwMemAdaptoidButton;
|
||||
} SHORTCUTSPL, *LPSHORTCUTSPL;
|
||||
|
||||
typedef struct _SHORTCUTS
|
||||
{
|
||||
SHORTCUTSPL Player[4];
|
||||
BUTTON bMouseLock;
|
||||
SHORTCUTSPL Player[4];
|
||||
BUTTON bMouseLock;
|
||||
} SHORTCUTS, *LPSHORTCUTS;
|
||||
|
||||
typedef struct _MSHORTCUT {
|
||||
int iControl;
|
||||
int iShortcut;
|
||||
} MSHORTCUT, *LPMSHORTCUT; // shortcut message
|
||||
int iControl;
|
||||
int iShortcut;
|
||||
} MSHORTCUT, *LPMSHORTCUT; // shortcut message
|
||||
|
||||
#define CHECK_WHITESPACES( str ) ( str == '\r' || str == '\n' || str == '\t' )
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -54,65 +54,65 @@ void HextoTextA( const unsigned char * Data, LPSTR szText, const int nBytes );
|
|||
//byte 2 = number of bytes to recieve
|
||||
//byte 3 = Command Type
|
||||
|
||||
// get status
|
||||
#define RD_GETSTATUS 0x00
|
||||
// read button values
|
||||
#define RD_READKEYS 0x01
|
||||
// read from controllerpak
|
||||
#define RD_READPAK 0x02
|
||||
// write to controllerpack
|
||||
#define RD_WRITEPAK 0x03
|
||||
// reset controller
|
||||
#define RD_RESETCONTROLLER 0xff
|
||||
// read eeprom
|
||||
#define RD_READEEPROM 0x04
|
||||
// write eeprom
|
||||
#define RD_WRITEEPROM 0x05
|
||||
// get status
|
||||
#define RD_GETSTATUS 0x00
|
||||
// read button values
|
||||
#define RD_READKEYS 0x01
|
||||
// read from controllerpak
|
||||
#define RD_READPAK 0x02
|
||||
// write to controllerpack
|
||||
#define RD_WRITEPAK 0x03
|
||||
// reset controller
|
||||
#define RD_RESETCONTROLLER 0xff
|
||||
// read eeprom
|
||||
#define RD_READEEPROM 0x04
|
||||
// write eeprom
|
||||
#define RD_WRITEEPROM 0x05
|
||||
|
||||
// Codes for retrieving status
|
||||
// Codes for retrieving status
|
||||
// 0x010300 - A1B2C3FF
|
||||
|
||||
//A1
|
||||
// Default GamePad
|
||||
#define RD_ABSOLUTE 0x01
|
||||
#define RD_RELATIVE 0x02
|
||||
// Default GamePad
|
||||
#define RD_GAMEPAD 0x04
|
||||
//A1
|
||||
// Default GamePad
|
||||
#define RD_ABSOLUTE 0x01
|
||||
#define RD_RELATIVE 0x02
|
||||
// Default GamePad
|
||||
#define RD_GAMEPAD 0x04
|
||||
|
||||
//B2
|
||||
#define RD_EEPROM 0x80
|
||||
#define RD_NOEEPROM 0x00
|
||||
//B2
|
||||
#define RD_EEPROM 0x80
|
||||
#define RD_NOEEPROM 0x00
|
||||
|
||||
//C3
|
||||
// No Plugin in Controller
|
||||
#define RD_NOPLUGIN 0x00
|
||||
// Plugin in Controller (Mempack, RumblePack etc)
|
||||
#define RD_PLUGIN 0x01
|
||||
// Pak interface was uninitialized before the call
|
||||
#define RD_NOTINITIALIZED 0x02
|
||||
// Address of last Pak I/O was invalid
|
||||
#define RD_ADDRCRCERR 0x04
|
||||
// eeprom busy
|
||||
#define RD_EEPROMBUSY 0x80
|
||||
//C3
|
||||
// No Plugin in Controller
|
||||
#define RD_NOPLUGIN 0x00
|
||||
// Plugin in Controller (Mempack, RumblePack etc)
|
||||
#define RD_PLUGIN 0x01
|
||||
// Pak interface was uninitialized before the call
|
||||
#define RD_NOTINITIALIZED 0x02
|
||||
// Address of last Pak I/O was invalid
|
||||
#define RD_ADDRCRCERR 0x04
|
||||
// eeprom busy
|
||||
#define RD_EEPROMBUSY 0x80
|
||||
|
||||
// The Error values are as follows:
|
||||
// 0x01ER00 - ........
|
||||
|
||||
//ER
|
||||
// no error, operation successful.
|
||||
#define RD_OK 0x00
|
||||
// error, device not present for specified command.
|
||||
#define RD_ERROR 0x80
|
||||
// error, unable to send/recieve the number bytes for command type.
|
||||
#define RD_WRONGSIZE 0x40
|
||||
//ER
|
||||
// no error, operation successful.
|
||||
#define RD_OK 0x00
|
||||
// error, device not present for specified command.
|
||||
#define RD_ERROR 0x80
|
||||
// error, unable to send/recieve the number bytes for command type.
|
||||
#define RD_WRONGSIZE 0x40
|
||||
|
||||
// the address where rumble-commands are sent to
|
||||
// this is really 0xC01B but our addressing code truncates the last several bits.
|
||||
#define PAK_IO_RUMBLE 0xC000
|
||||
// the address where rumble-commands are sent to
|
||||
// this is really 0xC01B but our addressing code truncates the last several bits.
|
||||
#define PAK_IO_RUMBLE 0xC000
|
||||
|
||||
// 32 KB mempak
|
||||
#define PAK_MEM_SIZE 32*1024
|
||||
#define PAK_MEM_DEXOFFSET 0x1040
|
||||
// 32 KB mempak
|
||||
#define PAK_MEM_SIZE 32*1024
|
||||
#define PAK_MEM_DEXOFFSET 0x1040
|
||||
|
||||
// Pak Specific Data //
|
||||
// First BYTE always determines current Paktype
|
||||
|
@ -125,49 +125,49 @@ void HextoTextA( const unsigned char * Data, LPSTR szText, const int nBytes );
|
|||
//PAK_MEM
|
||||
typedef struct _MEMPAK
|
||||
{
|
||||
BYTE bPakType; // set to PAK_MEM
|
||||
HANDLE hMemPakHandle; // a file mapping handle
|
||||
bool fDexSave; // true if .n64 file, false if .mpk file
|
||||
bool fReadonly; // set if we can't open mempak file in "write" mode
|
||||
LPBYTE aMemPakData; //[PAK_MEM_SIZE];
|
||||
BYTE aMemPakTemp[0x100]; // some extra on the top for "test" (temporary) data
|
||||
BYTE bPakType; // set to PAK_MEM
|
||||
HANDLE hMemPakHandle; // a file mapping handle
|
||||
bool fDexSave; // true if .n64 file, false if .mpk file
|
||||
bool fReadonly; // set if we can't open mempak file in "write" mode
|
||||
LPBYTE aMemPakData; //[PAK_MEM_SIZE];
|
||||
BYTE aMemPakTemp[0x100]; // some extra on the top for "test" (temporary) data
|
||||
} MEMPAK, *LPMEMPAK;
|
||||
|
||||
//PAK_RUMBLE
|
||||
typedef struct _RUMBLEPAK
|
||||
{
|
||||
BYTE bPakType;
|
||||
// BYTE bRumbleTyp; // obsolete: use g_pcControllers[i].xyz instead --rabid
|
||||
// BYTE bRumbleStrength;
|
||||
// bool fVisualRumble;
|
||||
bool fLastData; // true if the last data sent to block 0x8000 was nonzero
|
||||
BYTE bPakType;
|
||||
// BYTE bRumbleTyp; // obsolete: use g_pcControllers[i].xyz instead --rabid
|
||||
// BYTE bRumbleStrength;
|
||||
// bool fVisualRumble;
|
||||
bool fLastData; // true if the last data sent to block 0x8000 was nonzero
|
||||
} RUMBLEPAK, *LPRUMBLEPAK;
|
||||
|
||||
#include "GBCart.h"
|
||||
//PAK_TRANSFER
|
||||
typedef struct _TRANSFERPAK
|
||||
{
|
||||
BYTE bPakType;
|
||||
int iCurrentBankNo;
|
||||
int iCurrentAccessMode;
|
||||
int iAccessModeChanged;
|
||||
bool iEnableState;
|
||||
bool bPakInserted;
|
||||
GBCART gbCart;
|
||||
BYTE bPakType;
|
||||
int iCurrentBankNo;
|
||||
int iCurrentAccessMode;
|
||||
int iAccessModeChanged;
|
||||
bool iEnableState;
|
||||
bool bPakInserted;
|
||||
GBCART gbCart;
|
||||
} TRANSFERPAK, *LPTRANSFERPAK;
|
||||
|
||||
//PAK_VOICE
|
||||
typedef struct _VOICEPAK //not supported
|
||||
{
|
||||
BYTE bPakType;
|
||||
BYTE bPakType;
|
||||
} VOICEPAK, *LPVOICEPAK;
|
||||
|
||||
|
||||
//PAK_ADAPTOID
|
||||
typedef struct _ADAPTOIDPAK
|
||||
{
|
||||
BYTE bPakType;
|
||||
BYTE bIdentifier;
|
||||
bool fRumblePak;
|
||||
BYTE bPakType;
|
||||
BYTE bIdentifier;
|
||||
bool fRumblePak;
|
||||
} ADAPTOIDPAK, *LPADAPTOIDPAK;
|
||||
|
||||
#endif // #ifndef _PAKIO_H_
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +1,14 @@
|
|||
/*
|
||||
XInput Controller support for N-Rage`s Dinput8 Plugin
|
||||
XInput Controller support for N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka - N-Rage`s Dinput8 Plugin
|
||||
(C) 2009 Daniel Rehren - XInput Controller support
|
||||
(C) 2009 Daniel Rehren - XInput Controller support
|
||||
|
||||
N-Rage`s Dinput8 Plugin:
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
N-Rage`s Dinput8 Plugin:
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
XInput Controller support:
|
||||
Author's Email: rehren_007@hotmail.com
|
||||
XInput Controller support:
|
||||
Author's Email: rehren_007@hotmail.com
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -33,7 +33,7 @@
|
|||
/* fixes undefined FILE, etc. type errors in MSVC 2010 build -- cxd4 */
|
||||
#include <stdio.h>
|
||||
|
||||
#ifndef SAFE_RELEASE // when Windows Media Device M? is not present
|
||||
#ifndef SAFE_RELEASE // when Windows Media Device M? is not present
|
||||
#define SAFE_RELEASE(x) \
|
||||
if(x != NULL) \
|
||||
{ \
|
||||
|
@ -43,18 +43,18 @@
|
|||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Enum each PNP device using WMI and check each device ID to see if it contains
|
||||
// Enum each PNP device using WMI and check each device ID to see if it contains
|
||||
// "IG_" (ex. "VID_045E&PID_028E&IG_00"). If it does, then it's an XInput device
|
||||
// Unfortunately this information can not be found by just using DirectInput
|
||||
// Unfortunately this information can not be found by just using DirectInput
|
||||
//-----------------------------------------------------------------------------
|
||||
BOOL IsXInputDevice( const GUID* pGuidProductFromDirectInput );
|
||||
//END conde from ...
|
||||
|
||||
/*
|
||||
Xinput header for NRage Plugin, by tecnicors.
|
||||
Xinput header for NRage Plugin, by tecnicors.
|
||||
|
||||
XInput Controller is going to take over the N64 control that matches its
|
||||
number, ie. first XInput controller is first N64 player, etc.
|
||||
XInput Controller is going to take over the N64 control that matches its
|
||||
number, ie. first XInput controller is first N64 player, etc.
|
||||
*/
|
||||
|
||||
#include "commonIncludes.h"
|
||||
|
@ -68,34 +68,34 @@ BOOL IsXInputDevice( const GUID* pGuidProductFromDirectInput );
|
|||
//enums
|
||||
namespace N64_BUTTONS
|
||||
{
|
||||
// Whith this we can asign buttons to the xinput struct
|
||||
enum _N64_BUTTONS { A = 0x0080, B = 0x0040, Z = 0x0020, R = 0x1000, L = 0x2000, XAxis = 0x4000,
|
||||
Start = 0x0010, DUp = 0x0008, DDown = 0x0004, DLeft = 0x0002, YAxis = 0x8000,
|
||||
DRight = 0x0001, CUp = 0x0800, CDown = 0x0400, CLeft = 0x0200, CRight = 0x0100,
|
||||
None = 0x0 };
|
||||
// Whith this we can asign buttons to the xinput struct
|
||||
enum _N64_BUTTONS { A = 0x0080, B = 0x0040, Z = 0x0020, R = 0x1000, L = 0x2000, XAxis = 0x4000,
|
||||
Start = 0x0010, DUp = 0x0008, DDown = 0x0004, DLeft = 0x0002, YAxis = 0x8000,
|
||||
DRight = 0x0001, CUp = 0x0800, CDown = 0x0400, CLeft = 0x0200, CRight = 0x0100,
|
||||
None = 0x0 };
|
||||
}
|
||||
|
||||
//structures
|
||||
typedef struct _XCONTROLLER // XInput controller struct
|
||||
typedef struct _XCONTROLLER // XInput controller struct
|
||||
{
|
||||
int nControl;
|
||||
bool bConfigured;
|
||||
int nControl;
|
||||
bool bConfigured;
|
||||
|
||||
struct _N64_BUTTONS // For button configurations
|
||||
{
|
||||
int iA, iB;
|
||||
int iStart;
|
||||
int iL, iR, iZ;
|
||||
int iXAxis, iYAxis;
|
||||
int iDUp, iDDown, iDLeft, iDRight;
|
||||
int iCUp, iCDown, iCLeft, iCRight;
|
||||
}stButtons;
|
||||
struct _N64_BUTTONS // For button configurations
|
||||
{
|
||||
int iA, iB;
|
||||
int iStart;
|
||||
int iL, iR, iZ;
|
||||
int iXAxis, iYAxis;
|
||||
int iDUp, iDDown, iDLeft, iDRight;
|
||||
int iCUp, iCDown, iCLeft, iCRight;
|
||||
}stButtons;
|
||||
|
||||
struct _XINPUT_ANALOGS // For analog configurations
|
||||
{
|
||||
int iLeftTrigger, iRightTrigger;
|
||||
unsigned int iRXAxis, iRYAxis, iLXAxis, iLYAxis;
|
||||
}stAnalogs;
|
||||
struct _XINPUT_ANALOGS // For analog configurations
|
||||
{
|
||||
int iLeftTrigger, iRightTrigger;
|
||||
unsigned int iRXAxis, iRYAxis, iLXAxis, iLYAxis;
|
||||
}stAnalogs;
|
||||
|
||||
}XCONTROLLER;
|
||||
|
||||
|
@ -132,32 +132,32 @@ void StoreXInputControllerKeys( HWND hDlg, LPXCONTROLLER gController );
|
|||
// Fills N64 button comobox with its buttons.
|
||||
inline void FillN64ButtonComboBox( HWND hDlg, int ComboBox )
|
||||
{
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "None" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "A" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "B" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "Z" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "L" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "R" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "Start" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Up" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Left" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Down" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Right" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Up" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Left" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Down" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Right" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_SETCURSEL, 0, ( LPARAM )0 );
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "None" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "A" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "B" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "Z" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "L" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "R" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "Start" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Up" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Left" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Down" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C-Right" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Up" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Left" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Down" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "D-Right" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_SETCURSEL, 0, ( LPARAM )0 );
|
||||
}
|
||||
|
||||
inline void FillN64AnalogComboBox( HWND hDlg, int ComboBox )
|
||||
{
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "None" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "DPad" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C Buttons" ));
|
||||
if( ComboBox != IDC_XC_DPAD )
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "Analog Stick" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_SETCURSEL, 0, ( LPARAM )0);
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "None" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "DPad" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "C Buttons" ));
|
||||
if( ComboBox != IDC_XC_DPAD )
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_ADDSTRING, 0, ( LPARAM )_T( "Analog Stick" ));
|
||||
SendDlgItemMessage( hDlg, ComboBox, CB_SETCURSEL, 0, ( LPARAM )0);
|
||||
}
|
||||
|
||||
// Save/Load Keys from own config file
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -40,7 +40,7 @@
|
|||
#define P_malloc( size ) HeapAlloc( g_hHeap, 0, size )
|
||||
#define P_free( memory ) HeapFree( g_hHeap, 0, memory )
|
||||
#define P_realloc( memory, size ) \
|
||||
( (memory == NULL) ? P_malloc(size) : HeapReAlloc( g_hHeap, 0, memory, size ) )
|
||||
( (memory == NULL) ? P_malloc(size) : HeapReAlloc( g_hHeap, 0, memory, size ) )
|
||||
|
||||
#ifdef ARRAYSIZE
|
||||
#undef ARRAYSIZE
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// Microsoft Visual C++ generated include file.
|
||||
// Used by NRagePluginV2.rc
|
||||
//
|
||||
#define IDC_STATIC -1
|
||||
#define IDC_STATIC -1
|
||||
#define IDC_STOREINDB 3
|
||||
#define IDC_ERASEFROMDB 4
|
||||
#define IDC_SAVEPROFILE 5
|
||||
|
@ -365,7 +365,7 @@
|
|||
#define IDC_BACKGROUNDINPUT 1197
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 149
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
/*
|
||||
N-Rage`s Dinput8 Plugin
|
||||
(C) 2002, 2006 Norbert Wladyka
|
||||
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
Author`s Email: norbert.wladyka@chello.at
|
||||
Website: http://go.to/nrage
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -44,31 +44,31 @@
|
|||
|
||||
#endif // #ifdef __GNUC__
|
||||
|
||||
// Our default buffer size for TCHAR arrays (resources get loaded through here)
|
||||
// MAKE SURE localized resources do not exceed this limit, or they will be cut off.
|
||||
#define DEFAULT_BUFFER 256
|
||||
// Our default buffer size for TCHAR arrays (resources get loaded through here)
|
||||
// MAKE SURE localized resources do not exceed this limit, or they will be cut off.
|
||||
#define DEFAULT_BUFFER 256
|
||||
|
||||
// use default settings for Release and Debugbuild
|
||||
// use default settings for Release and Debugbuild
|
||||
#define STDCONFIG
|
||||
|
||||
#ifndef STDCONFIG
|
||||
// ----------------------------------------------------------------------------
|
||||
// custom (nonstandard) settings here
|
||||
// workaround for a Adaptoiddriver bug;
|
||||
// basically if the Adaptoid USB driver doesn't respond that there's a pak, say there is one anyway
|
||||
// workaround for a Adaptoiddriver bug;
|
||||
// basically if the Adaptoid USB driver doesn't respond that there's a pak, say there is one anyway
|
||||
#define ADAPTOIDPAK_RUMBLEFIX
|
||||
|
||||
// remove unimplemented Elements of the GUI
|
||||
// remove unimplemented Elements of the GUI
|
||||
// #define HIDEUNIMPLEMENTED
|
||||
|
||||
// check controllercommands for valid CRC
|
||||
// check controllercommands for valid CRC
|
||||
// #define MAKEADRESSCRCCHECK
|
||||
// display Button for writing Shortcuts binary
|
||||
// display Button for writing Shortcuts binary
|
||||
// #define RAWPROFILEWRITE
|
||||
|
||||
// enable selection of Transferpak
|
||||
// enable selection of Transferpak
|
||||
// #define V_TRANSFERPAK
|
||||
// enable selection of VoicePak
|
||||
// enable selection of VoicePak
|
||||
// #define V_VOICEPAK
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
@ -78,20 +78,20 @@
|
|||
#ifdef _DEBUG
|
||||
// ----------------------------------------------------------------------------
|
||||
// Standard Debug Settings
|
||||
// workaround for a Adaptoiddriver bug
|
||||
// workaround for a Adaptoiddriver bug
|
||||
#define ADAPTOIDPAK_RUMBLEFIX
|
||||
|
||||
// remove unimplemented Elements of the GUI
|
||||
// remove unimplemented Elements of the GUI
|
||||
// #define HIDEUNIMPLEMENTED
|
||||
|
||||
// check controllercommands for valid CRC
|
||||
// check controllercommands for valid CRC
|
||||
#define MAKEADRESSCRCCHECK
|
||||
// display Button for writing Shortcuts binary
|
||||
// display Button for writing Shortcuts binary
|
||||
#define RAWPROFILEWRITE
|
||||
|
||||
// enable selection of Transferpak
|
||||
// enable selection of Transferpak
|
||||
#define V_TRANSFERPAK
|
||||
// enable selection of VoicePak
|
||||
// enable selection of VoicePak
|
||||
#define V_VOICEPAK
|
||||
|
||||
// spits out loads of extra info for ControllerCommand and ReadController
|
||||
|
@ -102,20 +102,20 @@
|
|||
#else
|
||||
// ----------------------------------------------------------------------------
|
||||
// Standard Release Settings
|
||||
// workaround for a Adaptoiddriver bug
|
||||
// workaround for a Adaptoiddriver bug
|
||||
#define ADAPTOIDPAK_RUMBLEFIX
|
||||
|
||||
// remove unimplemented Elements of the GUI
|
||||
// remove unimplemented Elements of the GUI
|
||||
#define HIDEUNIMPLEMENTED
|
||||
|
||||
// check controllercommands for valid CRC
|
||||
// check controllercommands for valid CRC
|
||||
// #define MAKEADRESSCRCCHECK
|
||||
// display Button for writing Shortcuts binary
|
||||
// display Button for writing Shortcuts binary
|
||||
// #define RAWPROFILEWRITE
|
||||
|
||||
// enable selection of Transferpak
|
||||
// enable selection of Transferpak
|
||||
#define V_TRANSFERPAK
|
||||
// enable selection of VoicePak
|
||||
// enable selection of VoicePak
|
||||
// #define V_VOICEPAK
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue