View Full Version : New Girder 3.2 Joystick plugin
sundance
August 9th, 2003, 10:33 PM
I have written a new joystick plugin for Girder 3.2 that enumerates and simultaneously uses up to 8 joysticks. It works thru DirectX8+. Right now it does 2 axis (digital threshold) and 128 buttons. It appears to be working great for me
Anybody want it. I will upload it and the source to sourceforge if I find much interest.
I used the old DX8 plugin, but it did not seem to work with girder 3.2 (I think it was written for 3.0) and only did one joystick. Couldnt get the source from the author, so I wrote my own.
cheers,
-sundance
Ron
August 10th, 2003, 05:50 AM
Yeah! Please upload it, There are quite a few people wanting to use it! Do you need a plugin number?
sundance
August 10th, 2003, 03:39 PM
sure. I am using 2069 right now.
Bitmonster
August 11th, 2003, 06:48 AM
@sundance
Nice to see a new joystick-plugin coming out. I missed this for so long time.
Thx sundance. I have many use for this.
BTW: wasn't there a sourceforge-page for all this small girder plugins from different authors who wan't to share their code?
Mark F
August 11th, 2003, 07:13 AM
BTW: wasn't there a sourceforge-page for all this small girder plugins from different authors who wan't to share their code?
Try this (http://sourceforge.net/projects/girderplugins) page.
Ron
August 11th, 2003, 10:04 AM
You get plugin ID 90.
sundance
August 11th, 2003, 03:08 PM
ok. I will make the change and post a source and bin pack on sourceforge and your site tonight (or so, if BF1942 doesnt steer me in the wrong direction). :)
Used it to play a round of "You Dont Know Jack2" using wireless gamepads last night. worked good.
sundance
August 11th, 2003, 09:58 PM
Well, I havent uploaded anything to Sourceforge before, and it looks like I will have to do a little reading. I have used cvs before, so that should make it easier. As for girder.nl, I thought maybe I could do an anon ftp or something, to no avail.
Here are the plugin files (now using id 90).
Ron- could you put them on your site, or tell me how to do it? I dont see any instructions.
http://home.comcast.net/~sundanse/joypad/JoypadSource.zip
http://home.comcast.net/~sundanse/joypad/joypad.dll
good luck.
-ck
Bitmonster
August 12th, 2003, 05:23 AM
Great work sundance.
But I have some small suggestions:
1. If no joystick is connected, the plugin gives an error. That's what it should do so far. But if I then press the OK-button, girder crashes completely.
2. I have a joypad with a digital XY-axis and an analog Z-axis. Would it be much work to extend the plugin for the Z-axis? Would it also be possible to get more analog-axis from different joysticks?
I want to disassemble this joypad and use the buttons for some actions that can be started directly from the PC case. Also I would like to use the analog Z-axis to control volume.
3. Is it possible to get 8-way control events? Currently I only get left, right, up and down. But it would be nice to get up-left, up-right, down-left and down-right also as an event.
Ron
August 12th, 2003, 06:29 AM
@sundance,
To publish the plugin I'll need:
1. Your full name ( email optional)
2. Plugin name
3. Plugin version
4. Plugin description
5. Link (optional)
6. Zip file with a small readme (or link to zipfile with readme)
Please send this information to support@... girder ... nl
Sorry about the misunderstanding about uploading
sundance
August 15th, 2003, 03:37 PM
Ron,
I will send out that info as soon as I can.
bitmonster,
- I will check out the bug and try to fix it next release (if I do one).
- Adding a Z axis to it will take me like 2 minutes.
- However, a analog axis might take a goodly amount of work. Dont know when I can get to that.
- Not sure what you mean about another Z axis? If I add Z axis functionality to it, it will appear for all joysticks enumerated. If the joystick does not have a Z axis it will just stay at 0 and never create an event (unless they have a dangling marsupial)
- As for diag directions, I can put a axis off event to complement the axis on event (like I do for the buttons). This should allow you to setup diagonals in girder by looking for two on events at the same time.
Bitmonster
August 15th, 2003, 03:52 PM
- However, a analog axis might take a goodly amount of work. Dont know when I can get to that.
It would be great to have this. :)
- Not sure what you mean about another Z axis? If I add Z axis functionality to it, it will appear for all joysticks enumerated. If the joystick does not have a Z axis it will just stay at 0 and never create an event (unless they have a dangling marsupial)
This was just a misunderstanding. I mean Z-axis support and also analog support for all axis (and all joysticks).
- As for diag directions, I can put a axis off event to complement the axis on event (like I do for the buttons). This should allow you to setup diagonals in girder by looking for two on events at the same time.
This would also be a solution. Direction-handling is a little more complicated this way, but with LUA I can work arround this.
Atgast
August 19th, 2003, 10:51 AM
http://picserver.student.utwente.nl/getpicture.php?id=273541
It would really be great if I would have full control over these functions (playstation2 controller)
I now only have a directional control (little circle in the lower right corner) and all of the buttons. And, as stated earlier, the directional controls are only 4way, which is quite difficult to use.
I would like to know if you think if there is anything you could improve in the current version, offcourse I'm only asking this from you, if you do not have the time or motivation, then I am just going to thank you for your work that you have done allready, and I will be using your plugin much more.
another thing, wouldn't it be easier to just pass variables?
for example, a digital control would be J0:button01 = 1 or 0
and an analog control would be J0:axis1 = 0-255
ah well, I hope you find some time to fix that analog control, that would really be great :)
sundance
August 23rd, 2003, 09:26 AM
I just thought of something...anybody have an idea what events I would send to have both analog support AND diagonal support? If I do analog support, I would just send X and Y axis values continously. There would be no diagonal component to that. I might still do digital diagonal, I dont think that will be too time consuming.
Bitmonster
August 23rd, 2003, 09:49 AM
I just thought of something...anybody have an idea what events I would send to have both analog support AND diagonal support? If I do analog support, I would just send X and Y axis values continously. There would be no diagonal component to that. I might still do digital diagonal, I dont think that will be too time consuming.
Wouldn't it be possible to send the analog X/Y information by payload-data and the diagonal information by eventstring?
So we have events like
J0:D0:LU (first joystick, first direction pad left-up)
J0:D0:C (direction pad centered)
and an event for changing in between the sectors like:
J0:D0:VE (for a new value event)
and also for all events:
pld1 = X-axis (or Z-axis) and pld2 = Y-axis
This way a script can work both with digital and analog pads when it only want's a directions. And if the analog value is needed, all 10 events could be set to one command and the script will only evaluate the pld-values. And this pld-evaluating-script will also work if the pld-values are maxed out for digital pads (so left-up is also pld1=-128 / pld2=128).
Bitmonster
PS: one of the values is absolute 127 and not 128, but I don't know which of them. The negativ ones I assume. Or do you want to use positve values (0..255) only?
haim
August 25th, 2003, 12:49 PM
GREAT PLUGIN !!! i just wanted to ask if someone develpoe such plug
and then i show this post.....
why it isnt in the download page ?
sundance
September 2nd, 2003, 08:52 AM
Ron,
I sent all of the information and files to the support address you indicated. Did you get it so you can post the Joypad plugin?
thanks.
Bitmonster
September 12th, 2003, 03:34 AM
Are there any news about a new release? :)
sundance
September 27th, 2003, 05:09 PM
I am still trying to get the original version published/posted. No answer from Ron. Maybe he is on "holiday". Isn't that what the Euros take on the other side of the pond? I could use me one of those.
-ck
pump89
November 2nd, 2003, 01:18 PM
hello !
When no joystick is connect girder crash !
I use the plug-in with my HTPC on TV and control the PC with my gamepad with the great Joytopad software and girder but sometimes the pad is unplug at start.
PLEASE make a new version ! ...no mather if Ron is on 'holidays' and can't publish the first version.
Make a good working version first :D !
Liickdude
November 26th, 2003, 04:45 PM
Just a bump
Any word on a new version? I have been using this great plugin for a short time now, and the one feature request I would make is to have a programmable repeat, so you could set thte repeat rate yourself in the plugin. I used this plugin to run the button panel on a mod I recently did. Posted here if anyones interested:
http://www.htpcnews.com/main.php?id=controllermod1
Selyb
December 16th, 2003, 12:51 PM
:o
JOYSTICK SUPPORT!!!
:D :D :D
V-Turn
January 30th, 2004, 10:03 AM
:o
JOYSTICK SUPPORT!!!
:D :D :D
That's great, indeed!
V.
Marsupial
January 30th, 2004, 06:15 PM
Hello I would like to know if the joystick plugin currently support analogic axis control, and how it does interface within girder.
I got myself over ebay (still have to come but already looking to interface it) a sony car audio remote RM-X1S and it seams that there is a way to use that controller within a game port - it gives different resistance depending what button is pressed, and that is sent to one axis on a game port.
look at the schematics on tha page to understand
http://show.supereva.it/dmc.freeweb/input.htm?p
I would like to know if there is a way to catch all the different position on one axis and generate girder events from that point, or if I should get myself into another interface instead.
thanks
Wagner
January 30th, 2004, 08:17 PM
The plugin just uses DirectInput, so if Windows can read it as a joystick, the plugin can use it. Also, the plugin is digital only, meaning you get a event when you move the stick past a certain threshhold and then another when you recenter it. There is no way to get the exact position of the stick. It can read up to 128 button (far more than enough) but it can only do 2 axes.
Marsupial
January 30th, 2004, 09:15 PM
is the digital-only limitation from the plugin, or the directInput offers only that?
Selyb
January 30th, 2004, 10:56 PM
i dont know much about this stuff but...
i use EMS USB2 which is a usb device that has Playstation controller ports
this lets me use my Playstation controllers as joysticks for PC via USB
it interfaces with DirectX
it gives me access to two analog axes and 16 digital buttons
Wagner
January 31st, 2004, 07:51 AM
DirectInput is the DirectX module that most games use to provide joystick support. The limitation is in the plugin itself. You can use both axes and all 16 buttons, but they will be on/off only. You'll get an event when you press them, and another when you release them. People have requested more axes and analog support, but I don't think the author has been to the boards since some time in September.
Marsupial
January 31st, 2004, 07:58 AM
would it be possible to edit the plugin to have analogic support?
Wagner
January 31st, 2004, 09:14 AM
Yes it would, but....
The only way to easily edit it to do so would be by modifying the source code. But as I said in the previous post, the author, sundance, has not been heard from since late September. So basically the only options would be to either track down the author, or write a new plugin from scratch.
Edit: I just looked on the previous page and it seems he did post the sourcecode as well. I looked through the source and the required code is in the function WalkandSend() in the file thread.cpp. I am going to attempt some minor adjustments to allow use of all six DirectInput supported axes. Adding analog data would require a complete rewrite of the joystick section of the function. Im going to get the axes added now. Ill work on the analog data when I get some free time from classes.
Marsupial
January 31st, 2004, 02:20 PM
That's a great news!
I think I'm not the only one looking for analog devices. This said, if it works, I'll try out if we can use the newly made plugin with the RM-X1S being pluged into the gameport.
if that works, there's going to be a new input alternative to girder.
if it don't, I'll work out a more complex way by building an interface which communicates by rs-232, but I'd like it if it would work.
if you need any assistance or testor, count me in.
BTW thanks a lot. I haven't gotten into plugin programmation so far, I guess I should give a try.
Wagner
February 1st, 2004, 08:38 AM
Version .60a
I added support for all 6 axes (X, Y, Z, Rx, Ry, Rz), both sliders, and all 4 POVs. I also changed the eventstrings as follows:
Axes 0-5
-----J<joy num>:A<axis num>:<state>
-----The states are C(enter), L(ow value), H(igh value)
Slider 0-1
-----J<joy num>:S<slider num>:<state>
-----The states are the same as for the axes
POV 0-3
-----J<joy num>:POV<pov num>:<state>
-----The states are C(enter), N(orth), E(ast), S(outh), and W(est)
Buttons 0-127
-----J<joy num>:B<button num>:<state>
-----The states are ON and OFF
Bugs:
1. Plugin will crash if no joystick present and will take Girder with it
2. If events are triggered too rapidly, not all will be received by Girder
3. Plugin triggers random events on input device startup
To Do:
1. Fix bugs
2. Add options to settings window (rescan for joysticks, invert axes)
3. Add analog data through payload strings
I'll find somewhere to upload it to and post the link sometime later today.
Wagner
February 1st, 2004, 09:37 AM
I'm just going to host the file myself for now.
ftp://wagnerr.dyndns.org/joypad.dll
Ron, for now I just left the plugin number at 90. Should I change the number in newer versions or keep it at 90? I haven't gotten authorization from Sundance to take over his plugin, but he hasn't been on the boards since last September and he has no contact information listed in his profile.
Marsupial
February 1st, 2004, 01:25 PM
Great, wagner!
keep us posted if you manage analog payload support. That would be just perfect.
jakeman
February 2nd, 2004, 10:24 AM
Is there a way this plugin would allow smooth movement, I got girder just for the very use of using it with a gamepad to control the windows cursor with the right gamestick on my controller. I currently have it setup so that I have four commands and events. Each event is for a mouse direction (left, right, up, down) It successfully moves the cursor 10 left when i tap left, 10 right if i move it right. what i was wondering is if I could set it up so that when i hold a direction it will smoothly flow in that direction say 1 pixel at a time. then once i release that direction stop moving. like those little pins you find in laptop keyboards that allow you to move the mouse. The controller does have an event for when the joystick returns to center location both for horizontal and vertical. I wasnt sure how to use this for anything but it might help for making the control move smoothly, im not sure like i said im new to girder
Thanks in advance.
Jake
Wagner
February 2nd, 2004, 08:57 PM
For now, you would have to write your own auto-repeat function.
Multigroup (Start)
----Command (Enable) - enable group - loop
----Command (Initiate) - goto - loop
----Eventstring - Jx:Ax:<H or L>
Multigroup (Loop)
----Command (Move) - move mouse x pixels
----Command (Restart) - alarm timer - x ms - on end run loop
Command (Stop) - disable group - loop
----Eventstrin - Jx:Ax:C
When you move the joystick, it will enable and trigger the loop which will continually move the mouse. When you recenter the joystick, it will disable the loop, stopping the mouse. I have a more advanced version for use with the seek in Winamp where after the loop runs a certain number of times, it starts accelerating. Once I figure out how to send payloads properly, I'll release a new version that gives the analog data as well. I have two tests on Wednesday, so I'll probably have the updated version out Thursday or Friday.
Marsupial
February 2nd, 2004, 09:07 PM
I have a package in the mail, should be the RM-X1S.
when you figure out how to set payload data, PM me and explain how to use that payload with the analog signal, as I will test it with the sony joystick.
this will most likely give birth to a brand new type of girder-human interfaces if it works. :D
Wagner
February 3rd, 2004, 06:36 PM
Version .65 is now on the ftp, same address.
Analog data is now outputted through two new eventstrings.
Jx:Ax:A
Jx:Sx:A
"A" signifys that the payload contains the analog data. The output is from -10 to +10. The ON/OFF events still fire at the same point. I will likely lower the resolution of the payload data due to the sheer number of events triggered when moving the joysticks or sliders. In this build, I decreased the polling frequency to 20 times/second to try to cut down on the number of events.
Girder no longer crashes on startup if no joystick is connected. However, it now crashes if you move the joystick much while the Girder window is open. This may just be because of the number of events sent. With the window closed, it has not crashed for me yet.
I changed the way the plugin detects changes and since I haven't noticed any missed joystick movements.
Marsupial
February 3rd, 2004, 06:57 PM
I started by trying out the gameport plugin with my gravis gamepad, it works great!
now I only need a gameport connector to try the RM-X1S on it. Thanks
corrected - had to go to windows joysting on the control panel to enbable the joystick. works fine not
Wagner
February 3rd, 2004, 07:26 PM
The original version popped up a messagebox saying that no joysticks were detected and the plugin was disabled when there were no attached joysticks. In this release, I changed it so it would send the event joy_init_failed. It also stops the loop from running which is why it no longer crashes on boot with no joystick attached. Anyway, the reason you got that is because it did not detect any attached joysticks. Check the Game Controllers settings in control panel and see if there are any problems there. The plugin draws straight from DirectInput, so it's likely Windows does not think it is connected.
It works using my logitech usb gamepad on my laptop and desktop. Also, Girder crashes on my desktop if I use the joystick much with the window open on my laptop, however I do not see the same behavior on my desktop so I'll have to look into that further.
I have a old gameport MS Sidewinder joystick, but I won't be able to test the plugin using it until probably Thursday. My sound card died over the weekend and the new one I bought should be shipped in by then. Onboard AC-97 is evil... I have to have the volume turned all the way up and my speakers turned way down to cut down on the noise.
Wagner
February 3rd, 2004, 08:28 PM
I started rewriting some of my commands to use the analog data and found the 10 points to be too much for my liking. I recompiled it to be only +- 4. New links...
ftp://wagnerr.dyndns.org/girder/joypad4.dll
ftp://wagnerr.dyndns.org/girder/joypad10.dll
Also, having both the analog and digital events fireing at the same time just doesn't work for learning events. I have another way I'm going to try out tomorrow.
Marsupial
February 3rd, 2004, 08:44 PM
would it be possible to disable all events for -1 to 1?
the unit is not able to center very good, and the center is always "flashing" even if I placed a fixed resistance on a particular axis (to fool windows into thinking I have a 2-axis joystick) its fooling between -1 and 1 so I cant read anything : only random joystick events.
its better on the 4 then on the 10, but filtering the -1 to 1 would then make sense...
here is a logged example: I am not pressing anything.
00:47:43 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:43 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:43 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:43 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:43 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:43 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:43 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:42 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:42 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:42 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:42 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:42 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:42 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:42 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:42 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:42 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:42 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:42 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:42 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:41 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:41 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:41 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:40 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:40 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:40 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:40 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: -1
00:47:40 EVENT: Dev: 90 J0:A1:A Pld1: 0
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: 0
00:47:40 EVENT: Dev: 90 J0:A1:A Pld1: 1
00:47:40 EVENT: Dev: 90 J0:A0:A Pld1: -1
a "filter" would be excellent...
note that I would require the value to be relatively big to make difference between the buttonpresses. They all seam to be moving around the -3,-2 zone, but are all different signals. The -4 to 4 version barely leaves place to understand the position of the "joystick" that is really just a simulated joystick.
this said, I have a way to wire the joystick to generate events, now I need to control those :)
Marsupial
February 3rd, 2004, 09:58 PM
I am wondering - maybe the joystick 5V rail is not stable ennough to get clear readings to the sony RM unit, thus the unstable output readings?
I could add a voltage regulator, if anyone thinks this would help getting a more stable signal.
jakeman
February 4th, 2004, 12:04 PM
I can tell that the analog is working very well with my controller I see a different code the further i push the stick to the right. There is a range of about 3-4 different codes when slowing pushing it in a particular direction. I am using the 4 direction one untill I get this down good. I can see the codes but how would i make it move slowly. Does anyone have a girder file. Alli can do is get it to jump say 10 pixels by pressing left and then another howevermany when i push it to a further extent. I want it to move the cursor smoothly across the screen. I am pretty sure there is a way to make it work. I just dont really know what im doing.
Wagner
February 4th, 2004, 04:16 PM
Marsupial: The next version will allow you to set the range and dead zone in the settings window.
jakeman: Try using the WinLua Ex plugin. Use the same method I described earlier. Have the "Start" multigroup enabled with the eventstrin Jx:Ax:A and then add a command to save the payload to a variable before you go to the loop. Instead of using "Relative mouse move", use the functions in WinLua Ex. Have it vary the speed the mouse moves based on the variable you saved the payload to.
Marsupial
February 4th, 2004, 05:54 PM
Thanks wagner. The plugin is really getting fully complete.
now all I need is a way to "calibrate" the windows driver with a non-joystick joystick. I guess I'll have to build a device expressely for calibration :(
Marsupial
February 10th, 2004, 04:49 AM
sorry wagner: when is the 'next version' going to be done? (no rush, just want to try it out.)
Wagner
February 10th, 2004, 06:47 AM
Sorry its taking so long. Its been a busy week at school. Right now I'm trying to figure out how to use the DDX functions to transfer information back and forth between the plugin and the settings windows.
I was trying a new way to send the events. When the low, center, and high events would fire, they would contain the analog data and there would be no analog event. This ended up being harder to use since you would need all 4 events if you wanted to use the analog data. Instead, I'm going to add buttons to the settings window to let you manually trigger the low, center, and high events. You have to go into the plugin settings to get to it, but it should be a lot easier than trying to position the joystick just right to get the proper eventstring.
I have a presentation to give in 15 minutes but there's nothing big in class for the week. I'll try to have the new version up in a few days.
Wagner
February 16th, 2004, 06:19 PM
Sorry its been so long. I have it nearly finished. I never was able to get the DDX (dodataexchange) function to work and I just resorted to using sendmessage to control the dialog box. That part is working fine, but I'm having trouble with the code for the dead zone. I should release it some time in the next two days.
Marsupial
February 16th, 2004, 06:37 PM
thanks!
keep us posted. I'll retry then, and try to manage my unit to work, but am starting to think I will have to rewire it.
Wagner
February 17th, 2004, 02:56 PM
v.85
I tested it for a few minutes and didn't have any problems.
ftp://wagnerr.dyndns.org/girder/joypad.dll
The settings window actually has settings. You can set the sensitivity, dead zone, and refresh rate. To make learning eventstrings easier, you can trigger them manually inside the settings window using the 4 buttons near the bottom. Just select which joystick and axis and then hit one of the buttons. If you add a new joystick, click "Refresh Interface" and it will reset the number of joysticks. There is now a "Readings" dialog that will give the current value of everything on your joystick. It only shows one joystick at a time and you select with joystick with the dropdown in the configuration dialog.
There are a few things I still need to do. First, the plugin does not remember your settings. Every time you restart Girder, the plugin reverts to its defaults. Also, you can only set the values globally, not for each individual axis. There is also still the problem with it sending commands when first started.
Marsupial
February 17th, 2004, 07:06 PM
I have an exam on monday, I will test this on next tuesday, unless I have an occasion before that, but I doubt it.(its my turn)
Thanks a lot, this seams to be really well done so far. Can't wait to have a working version - even if its unsuitable for the RM-X1S, I will manage to use it.
I think I'll rewire my RM-X1S to a RM-X2S compatible circuit if I fail to make it work, and use it within you newly made plugin :D
Wagner
February 18th, 2004, 10:48 AM
Whoops!
Forgot a line in the code, causing the refresh rate option in the configuration box to not actually do anything. I updated the file and it should work now, but I'll be at class for the next few hours and wont be able to test it.
Wagner
February 18th, 2004, 05:21 PM
WARNING
Close the main Girder window or save your current script before using any analog controls. This is still the same problem as before. While, completely stable with the main window closed, it WILL crash Girder when the main window is open. I think this has to do with how I handle the payloads, although I don't know why it is only a problem when the Girder window is open. This is currently first on my list of things to fix/change.
Marsupial
February 18th, 2004, 06:20 PM
thanks for the info. Keep us posted.
thanks a lot.
will try that as of next week, have an exam monday.
Wagner
February 29th, 2004, 05:51 AM
Until I get the next release out that saves the settings, just PM me what default settings you want along with an email. Ill recompile it and mail it to you. Or if you want to download and set up the DirectX SDK, I can just send you the source.
Marsupial
February 29th, 2004, 07:09 AM
I am having internet problems at the moment from home, so untill I manage to fix the issue, I'll have to delay the usage of the plugin... Sorry about it - its been more then a week already. :(
as soon as I can, I'll get the latest version, and then contact you via email.
thanks a lot.
Wagner
February 29th, 2004, 07:36 AM
OK. Just making it available. The file on the FTP defaults the deadzone to 0%. My wireless gamepad is too sensitive so if I accidently tap one of the analogs, it will stay in that direction even if I am no longer touching it. I ended up making a new copy for my own use with the deadzone at 15%. All I have to do to change them is open it up, change one of three values defined at the top of the main file, and recompile. It takes less than a minute.
Marsupial
February 29th, 2004, 08:36 AM
Can you put both the 0 and 15% on the FTP site.
when I finally get a way on downloading those on my home's computer, I'll try both, this would give me a great help.
Wagner
March 7th, 2004, 07:38 PM
I just checked the logs to my ftp and I saw some people having trouble with the file. Just go to the girder folder (ftp://wagnerr.dyndns.org/girder/). The files will be listed by their default settings. 'S' is sensitivity in number of different point, 'D' is dead zone in percentage, and 'R' is refresh rate in cycles per second.
Marsupial
March 8th, 2004, 07:19 AM
I'm sorry I haven't tried it yet.
still can not log to web from home. Can't wait to give a try.
Wagner
March 8th, 2004, 07:59 AM
I wasn't talking about you specifically. I just saw an error in the logs where someone tried to download a non-existant because I had changed the name of the plugin file name.
Anyway, my server is currently having some difficulties where the process locks up and the only way I can reset it is to reboot. I took it down for now. My school allows me 5MB of webspace so I'm going to put it there soon.
The site (http://homepages.uc.edu/~wagnerrp/) seems to be working fine...
Marsupial
March 9th, 2004, 05:49 AM
I am now online at home.
I tried one new version of the plugin yesterday.
It is really great, Thanks a lot.
on another hand, my unit is not giving coherent signals, and I will have to rewire it in order to be able to use it. :(
morale: don't get a RM-X1S. If you get a sony joystick remote controller, get the X2S or X4S. It should be easy to wire to the computer.
Wagner, keep us informed when you release a complete version, I'll use it for sure.
Wagner
March 9th, 2004, 07:06 AM
The quarter is almost over. I've got two more presentations, and 3 exams left. I'll start work on the plugin again next Wednesday.
gore
April 16th, 2004, 06:50 AM
Hello.. I search to download the dll but the link is dead...
I try to connect my X2S joystick too :D
Marsupial
April 17th, 2004, 09:04 AM
Hey Wagner!!!
I just finished my semester and was to regive a look at the whole project soon... Let me know when you updated anything.
Thanks again.
meyer64
April 19th, 2004, 08:58 AM
i cant seem to get any of the download links to work. is anyone else having this problem, or is there any where else i can get this plugin?
Wagner
April 20th, 2004, 05:57 PM
This one works for me... http://homepages.uc.edu/~wagnerrp/
Anyway, I haven't really done much on the plugin in about a month. Ever heard of the game X2?
gore
April 21st, 2004, 01:07 PM
I have connected My sony X2S joystick but I have 2 questions :
- The joystick simulate deplacement of X axis but is not stable : -475/-485 for a button , -840/-850 for an other .. etc ..
Can we have a lower sensibility ?
- can I configure girder like that : X-400 = vol - .... X-800 = vol + etc... ?
thank you :)
gore
April 21st, 2004, 02:02 PM
I have all values :
axis1 745/755
axis0
repos : 985/1000
source: -930/-935
vol+ : -720/-725
vol- : -640/-645
seek+ : -830/-835
seek- : -785/-790
mute : -895/-900
off : -965/-970
uptri : -530/-535
downtri : -860/-865
last button : -390/-400
shift : Button ON/OFF
How to use this joystick... A special plugin?
gore
April 21st, 2004, 02:14 PM
for winamp there is a plugin :
http://show.supereva.it/dmc.freeweb/input.htm?p
my diagram is different (X axis move.. not Y)
I it can help you to understand what I search to realize :D
(i'm a franch guy and don't speak english very well :( )
Marsupial
April 21st, 2004, 02:20 PM
Gore if I understand well, you have these values upon pressing the buttons... it varies a bit. Am I right?
(I was expecting to get variable output for a single button, depending on voltage, etc...)
I think you should be able to build a lua code to perform different command depending on the payload (the values) of the button.
From there you would say if (> 985 AND < 1000) then repos, if (>(-930) AND <(-935)) then source, etc...
and those would call different actions.
would that sounds like a correct course of action??
gore
April 21st, 2004, 02:31 PM
its varies with high spped...
yes It can be a perfect solution.. or define for example
995 +/- 5 for repos etc ;)
the winamp plugin has a "calibration" fonction :
He show a button, you press it while a seconde at least.. and click next.. then an other button to press... this solution with a margin can be a good solution too :D
gore
April 21st, 2004, 03:00 PM
when I press the button the value moves always example : 991-990-992-991-993-992..
I don't know anyting about programation :(
Marsupial
April 21st, 2004, 06:59 PM
what settings are you using??
I think the sensitivity could be lowered for a more stable reading, and also maybe reducint the refresh rate.
Give me a few days and I will rewire the X1S and give you a hand on this...
Can you give me your reading of resistors for every buttons please, I'll try to copy that when doing the X1S. :)
gore
April 21st, 2004, 11:07 PM
I have try lot of setings for sensivity and dead zone.
lower refresh rate cause problems :
if i fix the rate to 1sec for example; I can't do 2 commands in 1 second, and if I puch a button bettwen 2 laps, no command was send ti girder :(
I can give you my reading of resistors , I make it and give it to you ;)
gore
April 21st, 2004, 11:47 PM
values are not vry fast to came.. for example in one second :
1.25-1.40-2-2.18K... but more stable after that ...
source : 2.18K
vol+ : 16.83K
Vol- : 23.6K
seek+ : 8.9K
seek- : 12.1K
mute : 4.4K
Off : 60 Ohms
up triangle : 33.7K
down tri : 6.6K
last button : 48.6K
;)
gore
April 21st, 2004, 11:48 PM
I have found this on a website ;)
0 OFF
2.2k SOURCE
4.4k MUTE
6.6k LIST(DISP)
8.8k SEEK UP
12.1k SEEK DOWN
16.8k VOLUME UP
23.6k VOLUME DOWN
33.6k SELECT
48.6k MODE
Marsupial
May 21st, 2004, 05:10 AM
I restarted to work on the joysticks.
Right now I interfaced potentiometers to a gameport and am able to read within the game controller section of the OS.
what is the URL of the most recent version of the joystick plugin? I will need it soon.
Thanks.
gore
May 21st, 2004, 10:51 AM
http://www.mp3car.com/vbulletin/showthread.php?t=21978&page=1&pp=15
You can founs winamp plugin and new girder plugin :D
Marsupial
May 21st, 2004, 12:23 PM
is that girder plugin for the sony remote, or for any joystick - I am digging for the JOYSTICK plugin at the moment, then will get back to the RM-X2S project...
gore
May 21st, 2004, 09:16 PM
it's a joystick plugin, created for the sony X2S but can be used for any jaoystick ;)
Mastiff
May 23rd, 2004, 05:17 AM
Before I make a fool out of myself trying the impossible, this will work with an USB joypad, right? I only need two buttons (for pause/play and to turn off the computer).
Wagner
May 23rd, 2004, 07:18 AM
Yes... it just runs off DirectX so anything windows recognizes as a joystick and puts into the game controllers thing in the control panel will work.
Right now it only has three major problems.
1. If you use the analog controls while the main girder window is open, it WILL crash. (If you go into the plugin settings, you can trigger the events manually so you can learn them) I still haven't figured out whats causing this.
2. It does not save your settings so when you restart girder, it sets your settings back to the default. The next version is going to have per axis settings saved in a text file somewhere in the girder directory.
3. If you have more than one joystick, Windows has the nasty habit of randomly assigning their IDs on reboot. Since the plugin identifies the joystick based on its DirectX ID, if Windows changes the joysticks around, your settings no longer work. Probably the next version is going to fix this by identifying and remembering your joystick based on what axes/buttons it has available. You will have to name your joysticks something other than the default "J0", "J1", etc... to prevent conflicts. Unrecognized joysticks will just default to the current naming scheme. The only problem with this method is if you have two or more joysticks with the same exact controls. If this is a problem, I'll look around to see if there is any sort of serial number or anything I can pull.
Mastiff
May 23rd, 2004, 07:22 AM
Thanks! I have heard about analog controls, but I don't know what they are... I will have only one joypad connected to the computer, and it will only have the two fire buttons (since they are regular buttons, not advanced touch systems) connected. Are they analog?
Wagner
May 24th, 2004, 02:28 AM
Any buttons are digital controls (on or off). Analog controls would be the actual joystick, rudder pedals, throttles, etc... Something that has a wide range of outputs rather than just on or off. Theres a problem with how I handle the payload system. It works, but only if the main girder window is closed. Otherwise, if the window is open, you may get a few commands through but it will eventually crash.
Mastiff
May 24th, 2004, 03:03 AM
Aha. OK, then I'll be safe! Thanks! :D
Mastiff
May 29th, 2004, 12:13 PM
Yessir, that worked perfectly! I bought a cheap (less than 20 bucks here in Norway) USB gamepad (Logitech), opened it, ripped out the external part of the buttons (so I won't have accidental presses) and soldered cables to the two fire buttons (the only "hard buttons" that are easy to solder cables on for a clutz like me). Then I hooked them up to two regular car relays (the type you use for extra lights and such). The ground of the control power was put to ground in the car (surprise!) and the plus on one of them was connected to the cable to the power locks that gets power when the doors are locked, the other one to the cable that gets power when the door locks are opened. So when I press the arming button of my alarm, which locks the doors, my Media Center 10 pauses all three zones at once (and the car stereo turns off since that's wired to the alarm). When I disarm the alarm, Girder waits for three seconds (to give the stereo time to power up) and then starts playing. Neat! :D And if I'm out of the car for more than one hour the computer automatically goes into hibernation. I never have to worry about draining the battery because I have a Chevy Suburban that I have put an extra battery in, just for the carputer and the stereo. It even reduced noise a bit! :D
skippyd
August 11th, 2004, 12:30 PM
found another problem in the plugin.
The plugin doesn't work with a held key.
example
I use alt for a couple of commands like alt + enter and alt + x
One key is being mapped for alt other buttons for enter and x so I need alt to be held down.
jwilson56
September 22nd, 2005, 09:34 AM
Any chance we can get this Joystick plugin converted to Girder4? It would be a useful addition to home automation projects (cheap digital inputs).
John
Wagner
September 22nd, 2005, 10:10 AM
I haven't actually worked on this project for several years now, and am probably not going to fork over the $150 to upgrade my computers to Girder 4. I gave someone else the code several months ago, but I do not know what his intentions are.
ikarus7
October 24th, 2005, 10:44 AM
any help for held buttons with joysticks ? i really would like to have that .....
thanks !
Wagner
October 24th, 2005, 11:44 AM
The eventstrings for digital buttons are in the form:
J<joystick number>:B<button number>:<ON|OFF>
So when you press button 0 on joystick 0, you will get "J0:B0:ON". When you release it, you get "J0:B0:OFF".
ikarus7
October 25th, 2005, 09:48 PM
i know that, but how do i get a repeat into this ?
i want to adjust a volume with a button, and if the button is held, the volume should increase until i release the button....
how to ?
sundansx
November 27th, 2005, 02:19 PM
Wagner,
Can you post a link to your latest source? I am think I want to put this plugin on sourceforge and I figure it is probably better to put your source up there, as opposed to mine since it likely has more features.
thanks,
-Sundance
Edit: Nevermind, I found it on your ftp site. thanks.
37099562
January 15th, 2006, 12:21 PM
any analog stick support on this yet?
:D
Ras Dan
June 15th, 2006, 12:06 PM
is this plugin still avaliable for downloading? :)
reeven
June 16th, 2009, 11:35 PM
Yes, check previous pages.
I put plugin in my Girder:D, i have an Xbox 360 Wireless, every button press is seen in Girder, It's working.
Today i want to test more of this.
For people who want badly to control computer with gampead, look on google for: xppader, very good, free, 200 profiles.
My Xbox must be ON before start Girder.
My 2 triggers is seen as single one, if i put for exemple for left trigger command fullscreen, and i push right trigger it execute fullscreen.
I suspect that an ordinar gamepad is working 100% with this plugin.
flyvans.com
September 23rd, 2009, 04:21 AM
amazing!
just tried this old plugin in girder 5 and it basically works!!!
i do have a slight timing problem with rotary buttons. the input device triggers a button press for a configurable amount of miliseconds.
the plugin scan interval is set a bit too high and can not be configured :-(
however, based on this plugin usb hid can be made to work much easier than with the complicated lua-transport-script construct.
rgds,
bernie
flyvans.com
September 23rd, 2009, 05:02 AM
great!
it works in girder 5 as well...
however has some limitations regarding polling interval and needs another event handler in between.
but definitely much easier and comfortable than the lua-script-transport-hid cryptic interface.
rgds, bernie
reeven
October 17th, 2009, 05:44 AM
Nothing work better with pads then Pinnacle game Profiler.
Is just like Girder in term of great options.
This plugin is old, triggers it's not seen by this plugin, and also other buttons.
Girder 5 has some king of new plugin for HID devices, transport... you could search on forum.
Powered by vBulletin® Version 4.1.8 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.