Some Compatibility Issues

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

jwick
Moderator
Moderator
Posts: 3418
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Some Compatibility Issues

Post by jwick »

3D User wrote: Fri Dec 17, 2021 6:50 am - Which file does nothing, the copy of the JoystickTemplate.xml file that I make for a game and change the <Name> and <ExecutableName> tags, etc.? Those are all the files that I've been working on, and I know that they do something, because without creating them the games never read the device at all. Or do you mean a different file?
The files you posted inline (below) where <AppCfgTemplate> files. The driver only reads <AppCfg> files. Maybe you have <AppCfg> files somewhere else that you are working on, which you didn't post. In any case, the driver will write a valid starting point for you.
3D User wrote: Fri Dec 17, 2021 6:50 am- I'll uninstall it, but as I recall (and I may be misremembering), the software installed with the driver automatically, so wouldn't that uninstall the driver as well? Or if not then is there a different way to reinstall the software later without reinstalling the driver that's already there, or would that even conflict with it, or just overwrite it?
I only want you to uinstall everything to see what, if anything, the game is doing. With all the drivers installed, there are too many moving pieces. The game probably isn't going to do anything. But occasionally they surprise me.
3D User wrote: Fri Dec 17, 2021 6:50 am- I've noticed about all game controllers usually ranging from 0 to 255 (like they store it in a byte or something), and I've actually done a lot of programming for DirectInput, so I know that you can just query the device for the min and max numbers, and then scale the range to that. It's never been difficult for me at all. But I suppose if a game doesn't bother to do this then it wouldn't work, hence the reason why I tried changing the -511 to 0, hoping that it would cause the scaling to happen before it even gets sent to the game, but somehow that didn't work.
Great. Then you know how many options DirectInput allows. It's no surprise that most developers don't handle all of them. By -511, 0, I assume you are referring to the <Input> max, min. Those carve up the input side of the axis. I didn't think I had an option for remapping that on the output side. The KMJ emulator does map to a standard range (IIRC, it's been a while).
3D User wrote: Fri Dec 17, 2021 6:50 am- You say that if it doesn't recognize the device without KMJ and I reinstall it (which I expect will be the case, because games never seem to be written to natively support a 3D mouse, though I don't know why not), and then disable all extra axes then it will automatically create a new cfg - by that do you mean a new .xml file? I thought I had to create that manually, or am I misunderstanding you, and you just mean a new configuration file within the game itself?
The driver/GUI will write an <AppCfg>...</AppCfg> XML file in %appdata%\3Dconnexion\3DxWare\Cfg\YourGameName.xml. That file will have the game executable name. But it will require hand editing after that. IF the game has its own configuration file, that is probably were you need to do most of the editing. This is typically where you would control the way they parse the data from the device.
3D User wrote: Fri Dec 17, 2021 6:50 am- In any case, does that mean that I'd have to go through this process of uninstalling and reinstalling the software/driver/whatever for each game that I want to test? What if some work without it and some work with it, then do I have to uninstall/reinstall it whenever I switch from one to another?
Once you have a valid cfg file (our XML file) for the app, you can edit it. You can have one per ExecutableName. You can have as many as you want. The driver will switch to the file that matches the executable in focus at any given time.
No need to reinstall each time. It's all directed by the file contents. The install/uninstall, is just to try to figure out what the game is doing. I suspect games from the same developer will all work the same.

I apologize. This was not meant to be so difficult. There was a configuration program that did all this for you. It got axed.
3D User
Posts: 18
Joined: Fri Dec 10, 2021 7:10 am

Re: Some Compatibility Issues

Post by 3D User »

Now I've tested a bunch of stuff, and I'll post that next, but first I wanted to reply to your post:

The files of which I posted the text are the ones that I modified from the JoystickTemplate.xml file, I promise. If they resemble another file then that's just how they are. I don't know anything about the other file you're talking about, but now that I think about it, I think I may have made a small mistake. Now I remember in my original notes that it said to change a tag from something like <AppCfgTemplate> to <AppCfg> or something like that, and I guess it's possible that I re-copied the original JoystickTemplate.xml file at some point and may have forgotten to make that change. Well, that's disappointing, but it also may possibly clear up some errors when I go back and do it the correct way. Sorry for any confusion - I'm not perfect.

If I'm understanding you correctly about the numbers, do you mean that when I change it from -511 to 0, it doesn't actually cause it to scale the whole input from between 0 and a positive number, but rather it simply clips the input to 0, so that if it was any negative number then it will set it to = 0 instead, effectively eliminating half of the axis and pretending that it doesn't exist? Why would I do that - or is it intended for just clipping a small amount off of the ends to make it not be able to reach the full maximum range for some reason, like how people set dead zones and things similar to that? Otherwise I'm not sure what that's doing.

I'm not sure how it could automatically make a configuration file for each game that I play, without me initially creating one first, because that would imply that it always makes a new .xml file for every program that is ever run, in case it needs the emulation, but again, maybe I'm misinterpreting you.

Now I'll get to my next post of the progress (or unfortunate lack thereof) that I made this morning.
3D User
Posts: 18
Joined: Fri Dec 10, 2021 7:10 am

Re: Some Compatibility Issues

Post by 3D User »

-- A small amount of this may have been answered in your previous post, but I wrote this while I was working on it, before I had a chance to read your post, so please bear with me. Also, I'm planning to go back into Windows this afternoon so hopefully I can fix the <AppCfg> problem and some other stuff then. --



This is sort of a long post, so I'm sorry about that, but I spent all morning working on this and I wanted to be thorough, because in the long run it's easier to see if something is wrong with intricate information than to have to make any assumptions that turn out to be inaccurate, isn't it? And for that reason, this post isn't intended to replace my previous one, but just be in addition to it, because I'm still stumped by the list of questions that I posted earlier today.

I tried to stick to what you asked me to do but had difficulty even doing some of those tasks, because there simply didn't seem to be a way to do some of them, so in those instances I did the closest thing that I could. I hope that's alright. And even if I did make a wrong turn somewhere, the rest of the post may still be relevant, because I tried a bunch of different things, some of which may be useful and others perhaps not, but I really don't know.



So anyway, here's what I've done: I made sure that no input devices other than my keyboard, mice (I have 2) and the SpaceMouse Compact are plugged in, and then booted Windows (slowly, of course) and the device was recognized as usual, with the blue light and everything.

I couldn't figure out how to uninstall the software and/or driver, because there was no shortcut for doing so, nor any executable as far as I could tell, and uninstallation wasn't mentioned in the manual or readme, though I couldn't search online while in Windows because I have the Internet disabled (because of stupid Windows 10 spyware that I can NOT shut off no matter how hard I try, and I absolutely refuse to allow it to run, hence the reason why I started using Linux in the first place, but that's a whole other can of worms).

So instead I just closed all of the programs appearing in the Task Manager which have anything to do with 3Dconnexion (3Dconnexion, 3DxHome, 3DxNIServer (32 bit), 3DxProfileServer.exe - 2 running instances for some reason, 3DxRadialMenus, 3DxVirtualLCD). I figured that if none of it is running then why would it matter whether it's installed? One of these turned out to be the icon that I right-clicked before to enable logging, because that disappeared after I closed all of those, so I really don't think ANY of it is running as far as I can tell.



Anyway, then I opened the game (Crime Cities) through its shortcut, and before starting it actually shows a popup window to change settings, and one of the options is a button called "Joystick properties", which displays the Windows "Game Controllers" configuration tool, so I thought I'd check that just to see what it says now that every relevent program is closed. It still lists "3Dconnexion KMJ Emulator" (which is selected and the only one on the list, and it's also the "Preferred device" if I click the "Advanced..." button) as it had done so before, but now if I click the "Properties" button it still shows the axis/button testing page, but it doesn't read any of the input (as would be expected I guess).

And before I closed all of the relevent programs I had thought to test this same thing, and at that time it had been reading the input (though with some axes inexplicably swapped and/or inverted, even though when I use the viewer tool it still moves the model of the airplane engine correctly), so I guess that proves that closing the programs is what made the difference.

So then I ran the game, and it didn't read any of the axes at all, or even the buttons (also when I press the buttons in Windows now it does nothing, even though before they showed circular menus), so at the moment it's effectively not doing anything at all except showing a blue light, and appearing as an option in the Windows configuration tool.

As for what you called the "internal control panel", the game does provide a way to set the controls, but it's pretty simple, and I can only choose to use a keyboard, mouse or joystick, but not *which* joystick. I can also set the axes but to do that I'd have to move one on the device, which isn't being recognized, so that wouldn't work (but they're already set anyway, and were being read before, so that shouldn't be the problem).



Then I got to the part in your post (I copied them into a text file so that I'd have notes while doing this, and I'm writing this as I go along, so it should be 100% accurate) where you said to reinstall the software, but since I hadn't actually uninstalled it in the first place, I just reopened it all from the start menu.

Or rather, I tried to, but I couldn't find all of the programs that I had closed listed on the start menu, so I could just restart the computer and they'd all reopen automatically, but like I said, it would take a long time for Windows to start again, so instead, I just started by opening 3Dconnexion Home, and then testing the Viewer program, which seems to work perfectly, so it's recognizing the device again (at least with its native mode, if not necessarily DirectInput, etc.).

And then I checked the Task Manager and it seems that by simply opening that one program it automatically opened all of the other programs that I had closed before (even the 2 instances of 3DxProfileServer.exe). Then I noticed that there are also a couple of other interesting options on the Start menu: Start/Stop 3DxWare and 3Dconnexion Pairing. I'm not sure it's a good idea to mess with the pairing unless you say I should (isn't pairing usually for wireless devices though, or is that just installed with the whole package for any device, so that I'd use it only if I had one of the wireless ones?).

But I tried clicking "Stop 3DxWare" to see if that would give the same results of attempting to uninstall it. It seems to have just quit all of those same processes within the Task Manager, so I guess it's just a simplified way of doing the same thing as I did before, but when I tried the joystick testing tool and the game, again it didn't read the device at all. The "3Dconnexion KMJ Emulator" is still listed in the joystick testing tool though. I also noticed that the blue light is off.

So then I clicked "Start 3DxWare" and the light turned on again and the device works in the Viewer program, but now it isn't being read by the joystick testing tool or in the game. Then the weirdest thing happened: I re-copied my backup of the .xml file for the game (the RawInput one) into the Cfg folder and then suddenly the joystick testing tool could read it again, but the game still didn't! Remember that this game has always been able to read any of the 4 modes with the same result, including RawInput.



So finally, you say to disable all axes except one in the GUI while the game is running. Which GUI are you talking about? The settings within the game, or do you want me to minimize the game and click the "Settings" button in the "3Dconnexon Home" window? In any case, I interpreted it as the latter, because I can't really "disable" axes in the game other than by unmapping them, but that seems possibly counterintuitive, especially since it's hard to get them mapped in the first place.

But I tried to minimize the game so that I could go into the "Advanced Settings" window to unchecking the "Active" boxes, just in case that's what you mean (could you clarify please?). However, as I expected, I couldn't find a way to minimize the game and get back into the desktop without actually quitting the game. I pressed the Window key (the one between Ctrl and Alt), and that just showed the task bar and Start menu, but if I clicked anything there it would just disappear and show only the game. I also pressed Ctrl-Esc, but that just caused the game to quit. It's been my experience that for nearly all games, when they're running, you can't really get back to the desktop without quitting them, or if you can then I don't know how to do it.

In any case, if I'm correctly interpreting you (and please correct me if I'm wrong), then your implication is that if I change the settings by clicking the "Settings" button in the "3Dconnexion Home" window while the game is running and minimized, then it will somehow know to associate the new settings with the game itself, and perhapse automatically create or update the .xml file corresponding to the game, to take those chnages into account. Is this correct? If so then I wonder if perhaps I should remove the .xml file for the game and then let it create a new one, rather than risk it creating a new one which might conflict with the one that is already there, unless it just overwrites that one. Am I on the right track at all?



But regardless, I can't seem to minimize the game and change those settings, and I'm not even precisely certain that's what you want me to do. I may possibly have misunderstood the instructions, but I never knew what you meant by the "GUI" (I know what a GUI is, but I'm not sure what you're referring to in this specific context), and I'm really not sure whether the .xml files are ever created automatically, or only manually, and whether or not those are the only relevant control configuration files.

I could try to just disable the axes before I open the game and see if that does anything, except that now I can't seem to get the game to read the device at all anymore! This is even after I replace the .xml file with my backup copy! I don't know whether restarting will fix this or not, but I'm going back into Linux now so that I can post this message.
3D User
Posts: 18
Joined: Fri Dec 10, 2021 7:10 am

Re: Some Compatibility Issues

Post by 3D User »

Sorry for yet another post in a row, but I went back into windows and tried each file again with <AppCfg attributes...> instead of <AppCfgTemplate attributes...> and all modes could read input in the game and the Windows tool, except for KMJ, but all still caused the spinning. So I guess that clarifies why it had stopped working before.

Nothing could be detected in the game or the Windows controller tool when I turned off 3DxWare (I mean, the tool still found the device but it didn't read it during the testing phase).

I still haven't figured out how to uninstall it, but if turning it off causes the game to stop seeing it completely then I don't see how uninstalling it could improve the situation, can you? Though I'd still like to know how to uninstall it, because I wonder if reinstalling it might possibly fix the problem with the axes being accidentally switch and inverted.

In any case, what would be the next thing to try?
3D User
Posts: 18
Joined: Fri Dec 10, 2021 7:10 am

Re: Some Compatibility Issues

Post by 3D User »

Also, it seems to be happening with all axes, not just a specific one, as you had implied might be the case.

I'm pretty much out of ideas at this point. What was the next thing that you were going to say to try after all of that? Or do you have any thoughts on the current results?
jwick
Moderator
Moderator
Posts: 3418
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Some Compatibility Issues

Post by jwick »

You can uninstall 3DxWare, or any software, by opening the Settings program and clicking on the Apps category. Click on the Start menu to see a "gear" icon on the far left. Or use the Windows key + I to open the Settings program.

It is still worth uninstalling. Just stopping the executables in the taskmgr doesn't remove the "3Dconnexion KMJ Emulator" the game is detecting. You have to disable that--uninstalling is the easiest way to do that.
As I mentioned before, a lot of games will be confused by finding this Joystick.

The symptoms you are describing (continuous motion), is indicative of the game misinterpreting, at least some, if not all, of the axes.
It's encouraging that they put up a joystick control window when you start the game. This indicates that they have put in more than the minimal thought to supporting such devices. It is not unusual for a game to tell you to move an input device to indicate which axis to work on. It's rather friendly, IMO, but it doesn't work unless the device is being detected correctly. Normally, though, these settings are backed up by some file you can manually edit. You may have to find that file. Hopefully, they have a forum where you can ask about these details.

Is there a demo version of this game available for me to take a look at?

When I say "GUI" / "our GUI", I mean the 3DxSmartUI.exe program we ship. This is the one that shows the picture of your device, and allows you to set the button assignment, etc.

If the game doesn't have a "windowed mode", but is only full-screen, it will not be easy to run 3DxSmartUI while the game is running. If you have a second monitor, you may be able to place the 3DxSmartUI window on that monitor. Otherwise, you will be forced to edit the cfg files manually.

It sounds like you have figured out the problem with the <AppCfgTemplate> vs <AppCfg> files.

It seems we should make things as simple as possible:
1) Only work on one game at a time. E.g. Crime Cities
2) Run our software (Start menu->3Dconnexion->Start 3DxWare)
3) Setup the 3D mouse as a straight joystick emulator. PM me your CrimeCities.xml (whatever it is called) file from %appdata%\3dconnexion\3DxWare\Cfg
4) Find the game's internal configuration file and PM that to me.

While we are at it, PM your email address to me. We can take this all off-line. It may be informative to have the entire conversation here, but we can put the end result summary here when we figure it out.
3D User
Posts: 18
Joined: Fri Dec 10, 2021 7:10 am

Re: Some Compatibility Issues

Post by 3D User »

Oh, of course that's how I would uninstall it. Sorry, I forgot all about that, because I'm just so used to using an uninstaller program or shortcut for everything that the other method just slipped my mind.

Anyway, I'll uninstall it, but I'm worried that if that does somehow fix the problem then how would I be able to install and use that and also play games that conflict with it? Would I actually have to install Windows on two separate partitions just to do that?!

I guess one thing that I don't quite understand is, if I understand correctly something that you said before, the driver or emulator or something is automatically translating the -512, 511 range to an all-positive range for DirectInput. If that's the case then wouldn't that automatically fix the problem, or did I misunderstand you?

I can't find a demo for that specific game. I got it from www.gog.com, and I searched the free games (which are mostly demos), but can't find any flight sims or anything that you'd typically use a SpaceMouse with (except Overload, but as I said, that already works perfectly, even if I don't set up an .xml file for it!). I'm not attached to Crime Cities though - that was just an example, but feel free to get any other demo from that site and I'll get it too (if you don't have an account you can get one for free and it doesn't require any credit card information unless you buy something, which doesn't count if it's free). But I don't have Steam or any other accounts like that.

I don't have a second monitor, but I can probably find the configuration file on www.pcgamingwiki.com which I plan to check momentarily.

I'll get into this stuff in a few minutes, but I have to restart in Windows to do it. In any case, I'm sorry for being such a bother, but I really hope to get this to work, and since it's a proprietary product, it's not like I can go to a thousand different websites and ask for advice, as I could if I had a question about programming, for example.
3D User
Posts: 18
Joined: Fri Dec 10, 2021 7:10 am

Re: Some Compatibility Issues

Post by 3D User »

I tried some stuff and I'll send you an e-mail, as soon as you send me one so that I can reply. I already sent a PM.
3D User
Posts: 18
Joined: Fri Dec 10, 2021 7:10 am

Re: Some Compatibility Issues

Post by 3D User »

I'm not sure whether my PMs got sent to you. They're in my outbox but not sent. Is that how it's supposed to work?
Post Reply