Clone/download the repository, open it in visual studio, and inside dinput8.cpp, add SetCurrentDirectory("PATHTOYOURPSOBBHERE") somewhere in Initialize() or DllMain(). Probably a better idea to put it in Initialize() near the end. So if your home server's psobb.exe is at C:\MyTeth\psobb, you would add
Code:
SetCurrentDirectory("C:\\MyTeth\\psobb");
at the end of the Initialize() function, rebuild it (in Release x86 mode) and grab the new dll and put it with your psobb.exe.
If you have others who use the client+addons for your server with the launcher, it might be a good idea to hack something so that the directory isn't hardcoded in the addon. I came up with this monstrosity a year+ ago... I put this code at the end of Initialize() in the plugin instead of the code above.
Code:
char *pdir = getenv("PSO_HOME");
if (pdir)
SetCurrentDirectory(pdir);
And then where the psobb.exe and launcher.exe are located, I created a bat script with this:
Code:
setx PSO_HOME "%cd%"
echo %PSO_HOME%
launcher.exe
So when I run this bat script, it will set an environment variable named PSO_HOME with the current directory, and it will then run the launcher.exe. The plugin will grab the PSO_HOME variable value (the current directory) and set that as its current directory.