• Welcome to PiBoSo Official Forum. Please login or sign up.
 
February 11, 2026, 06:09:27 PM

News:

GP Bikes beta21c available! :)


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Nihil

1
Support / VR head tracking off center - fisheye
July 18, 2024, 10:51:19 PM
Hi, I've been having this issue for over a year -
In VR it seems the perspective, FOV or tracking is not centered,
Everything looks like "Fisheye" camera, where screen center is ok but edges are stretched,
And head movement is very strange.

Everything was fine until Virtual Desktop switched to OpenVR a while back,
But!
Issue is same in both SteamVR and Oculus VR,
Using Virtual Desktop, AirLink and Oculus Link,
In Quest 2 and Quest Pro.

Tried re-installing, fresh demo profile, deleted all local files.. no bueno.

I thought an update of GP-bikes or Virtual Desktop will fix it, so I waited..
But still same issue.

Thanks for your help!
2
Plugins / Input plugin - inject to existing controller
February 27, 2022, 02:26:14 PM
Hi I'm trying to write an input plugin that would inject inputs to an existing controller (i.e Xbox gamepad).

I've created and compiled a DLI, setting the `SControllerInfo_t` m_szUUID to the existing external controller UUID taken from `controls.txt` in profile (Don't know where to take `m_iID` from),
And injecting max values in `GetControllerData`.


This doesn't seem to work though.
I think it's compiled correctly as `printf` statements work.

Is that even possible?

Also, am I using the data structures / populating _psData correctly?
What are _iID and _iIndex for? they seem to be always zero.

Thanks!

Here's my input file:
/*
If compiled as C++, extern "C" must be added to declaration of functions to export
*/
#include <string.h>
#include <stdio.h>

typedef struct
{
char m_szName[100];
char m_szUUID[37]; /* universally unique identifier */
int m_iID; /* internal unique ID */
char m_iNumAxis; /* number of axis */
short m_aaiAxisRange[6][3]; /* min, max and center value of each axis */
char m_iNumSliders; /* number of sliders */
short m_aiSliderRange[6]; /* max value of each slider */
char m_iNumButtons; /* number of buttons */
char m_iNumPOV; /* number of POVs */
char m_iNumDials; /* number of dials */
char m_aiDialRange[8]; /* max value of dials */
} SControllerInfo_t;

typedef struct
{
short m_aiAxis[6];
short m_aiSlider[6];
char m_aiButton[32];
unsigned short m_aiPOV[2];
char m_aiDial[8];
} SControllerData_t;

__declspec(dllexport) int Version()
{
return 3;
}

/* called when software is started. If return value is not 0, the plugin is disabled */
__declspec(dllexport) int Startup()
{
FILE *fp;
fp = fopen ("C:/Users/nihil/Desktop/testInput.txt", "w");
fprintf(fp, "test");
fclose(fp);
return 0;
}

/* called when software is closed */
__declspec(dllexport) void Shutdown()
{
}

/* called every rendering frame. This function is optional */
__declspec(dllexport) void Update()
{

}

/* called when a control is queried */
__declspec(dllexport) void Reset()
{
}

/* called every few seconds to support hot plugging. The return value is the number of active controllers */
__declspec(dllexport) int GetNumControllers()
{
//return 0;
return 1;
}

/* _iIndex is the 0 based controller index. _psInfo must be filled with controller info */
__declspec(dllexport) int GetControllerInfo(int _iIndex,SControllerInfo_t *_psInfo)
{
SControllerInfo_t myinfo = {
"myInput",
"47f219dc-2cb8-4afc-b670-56c637f64a5a",
0,
4,
{
{0, 32767, 16383},
{0, 32767, 16383},
{0, 32767, 16383},
{0, 32767, 16383}
},
2,
{32767,32767,0,0,0,0},
6,
2,
2,
{255,255,0,0,0,0,0,0}
};

FILE *fp;
fp = fopen ("C:/Users/nihil/Desktop/testInput.txt", "a");
fprintf(fp, "iIndex = %d", _iIndex);
fclose(fp);
return 0;

_psInfo = &myinfo;


return 0;
}

/* _iID is the unique controller ID. _psData must be filled with controller data */
__declspec(dllexport) int GetControllerData(int _iID,SControllerData_t *_psData)
{

SControllerData_t mydata = {
{32767, 32767, 32767, 32767, 0, 0},
{32767, 32767, 32767, 32767, 0, 0},
"BUTTONS",  // This is probably wrong, but not focusing on buttons at the moment
{20, 20},
"DIAL"   // This is probably wrong, but not focusing on dials at the moment
};

FILE *fp;
fp = fopen ("C:/Users/nihil/Desktop/testInput.txt", "a");
fprintf(fp, "iID = %d", _iID);
fclose(fp);
return 0;

_psData = &mydata;

return 0;
}
3
Suggestions and wishlist / Look back to work in VR
February 15, 2022, 12:58:49 AM
I don't know if this is possible (or recommended), but perhaps look-back should work in VR?
At the moment it does not.

For me it's a bit difficult to rotate fully, and can't do the under-arm-upside-down look I used to do in real life because headset will fall off.

4
Suggestions and wishlist / News and Events on home screen
February 08, 2022, 02:22:02 PM
Hi,

I think it would be nice to have an events section on the home screen,
Where we can update riders on upcoming races, championships etc.

This will increase engagement and help us schedule our riding times rather than randomly finding a race.
Especially for users that are not on the forum/discord.

Cheers
5
Support / Debug and crash logs
January 15, 2022, 03:08:33 PM
Hi, is there a way to create a log file for post-crash debugging?

I'm trying to use a very old bike mod - SV650 minitwin, but GPB keeps crashing a few seconds after I go to track or click bike settings in testing session.

I have tyres installed, and tried modding bike cfg to use a different set of tyres, so I don't think that's it.

Comparing the cfg files to newer bikes it looks some settings are missing on the old mod.
I'd love to fix it, but would be best if I had a log file telling me what's the reason for the crash...

Thanks!