RailWorks Joystick API - Version 0.0.5_4 (Works for TS2012)
Moderator: Moderators
RailWorks Joystick API - Version 0.0.5_4 (Works for TS2012)
Hi all, as promised in the Beta 5 thread where i first and foremost was looking for a fix to a bug with the "Railworks Joystick Beta 5" application but then decided to code my own application both fixing my own problem that way and now providing what in my opinion is a much more feature rich application for enabling joysticks to be used in RW2. (And possibly other versions of RailSim)
Since this is the first "working" release (one that actually works to the extent it is suitable for release) i won't say much about it in my initial post.
Instead i urge you to read the "RW Joystick API README.txt" file included with the download.
Please keep in mind that this first release is probably riddled with bugs and might not even work for you... But it works for me and to be honest that's why i made it.
Then, nice as i am i decided to make sure others could use it too! And even releasing the source!
Requirements
- Windows Vista or Windows 7 (Or an operating system capable of showing WPF applications)
- .Net Framework 3.5
- Some patience if it decides to crash on you...
- <Optional> Extra monitor for showing the speedometer and controls window while playing.
- <Optional> A game controller (Joystick or Gamepad or likewise, you should still be able to show the controls window for the speedometer!)
Downloads
I've re-uploaded the latest version I have.
Download 0.0.5_4: https://www.dropbox.com/s/9xwgg0p5yp140 ... .0.5_4.rar
Download 0.0.5_4 Source: https://www.dropbox.com/s/h6hkuo3lcezqi ... Source.rar
However, i should recommend the CPU usage fix provided here: http://forums.uktrainsim.com/viewtopic. ... 4#p1631784
Like i said, please read the readme file. Don't ask a question already answered in there!
Since this is the first "working" release (one that actually works to the extent it is suitable for release) i won't say much about it in my initial post.
Instead i urge you to read the "RW Joystick API README.txt" file included with the download.
Please keep in mind that this first release is probably riddled with bugs and might not even work for you... But it works for me and to be honest that's why i made it.
Then, nice as i am i decided to make sure others could use it too! And even releasing the source!
Requirements
- Windows Vista or Windows 7 (Or an operating system capable of showing WPF applications)
- .Net Framework 3.5
- Some patience if it decides to crash on you...
- <Optional> Extra monitor for showing the speedometer and controls window while playing.
- <Optional> A game controller (Joystick or Gamepad or likewise, you should still be able to show the controls window for the speedometer!)
Downloads
I've re-uploaded the latest version I have.
Download 0.0.5_4: https://www.dropbox.com/s/9xwgg0p5yp140 ... .0.5_4.rar
Download 0.0.5_4 Source: https://www.dropbox.com/s/h6hkuo3lcezqi ... Source.rar
However, i should recommend the CPU usage fix provided here: http://forums.uktrainsim.com/viewtopic. ... 4#p1631784
Like i said, please read the readme file. Don't ask a question already answered in there!
Re: RailWorks Joystick API (A new start)
go on, i'll be the first you can cal a twonk for doing something wrong then....
cant get it to recognise my joysticks, i have 2 connected via usb, in windowz 7 64 bit, ones a digital game pad, 12 buttons, the other is a wheel, 2 axis and 16 buttons,
they are recognised by windowz and other games, but when i click on a control in your app to asign them, it is reading the 'virtual HID Devise (0)' and dosent pick anything up.
i gather the virtual hid devise thing is the usb input jobbie windows uses, as its in there i can select which is the prefered devise (for older apps it says) and even doing that it wont work,
even windows on the test page dosent show any input from the joysticks on the virtual hid devise settings tab.
go on, tell me what stupid thing i've done wrong.
cant get it to recognise my joysticks, i have 2 connected via usb, in windowz 7 64 bit, ones a digital game pad, 12 buttons, the other is a wheel, 2 axis and 16 buttons,
they are recognised by windowz and other games, but when i click on a control in your app to asign them, it is reading the 'virtual HID Devise (0)' and dosent pick anything up.
i gather the virtual hid devise thing is the usb input jobbie windows uses, as its in there i can select which is the prefered devise (for older apps it says) and even doing that it wont work,
even windows on the test page dosent show any input from the joysticks on the virtual hid devise settings tab.
go on, tell me what stupid thing i've done wrong.
Re: RailWorks Joystick API (A new start)
First of all, since i don't have all the devices in the entire world i can't be certain that all devices will work as expected.gazz292 wrote:go on, i'll be the first you can cal a twonk for doing something wrong then....
cant get it to recognise my joysticks, i have 2 connected via usb, in windowz 7 64 bit, ones a digital game pad, 12 buttons, the other is a wheel, 2 axis and 16 buttons,
they are recognised by windowz and other games, but when i click on a control in your app to asign them, it is reading the 'virtual HID Devise (0)' and dosent pick anything up.
i gather the virtual hid devise thing is the usb input jobbie windows uses, as its in there i can select which is the prefered devise (for older apps it says) and even doing that it wont work,
even windows on the test page dosent show any input from the joysticks on the virtual hid devise settings tab.
go on, tell me what stupid thing i've done wrong.
1) Did you get a message box saying it didn't find any devices?
2) Have you tried with just one or the other device connected to see if any particular one fails?
This "Virtual HID device" you are talking about... Does it specifically say "Virtual HID Device" in my application when you assign a control or are you talking about something in Windows?
Due to the limited logging and error notification/handling in the prototype i can't say for sure that it's something to do with my application or your "virtual device". I can just say that none of my devices are virtual ones and they are appropriately named...
"Saitek X52 Flight Controller (HID)" and "Saitek X52 Flight Controller (USB)" in my device manager.
My steering wheel is named "Logitech MOMO Force"
The only virtual devices i have is the "Logitech Gaming Virtual Keyboard" and "Logitech Gaming Virtual Mouse" which both are related to my G15 keyboards macro/programming functionality.
With virtual i am suspecting there is some kind of hand over drivers for your devices which for some reason causes my application to not recognize them properly.
If you have any experience with programming of any sort then please, if you don't mind, download Visual Studio 2010 Express (It's free) and open the source and run the application from there by pressing F5.
Now, do you get any errors by doing so?
If you then open the class "Joystick.vb" and find the line that reads "If (_DeviceList.Count > 0) Then" (by line 23) and on the leftmost side click so you get a red ball (indicating a break point) and run the application again... It should stop right on that line and if you now hover your mouse over the "_DeviceList" variable two lines above you get the object (variable contents) shown to you, I am in particular interested in the contents of the "internalList" object.
See picture:

Copy the VALUE of that and you should get something like:
Code: Select all
{Usage: 4 UsagePage: 1 FFDriverGuid: 00000000-0000-0000-0000-000000000000 ProductName: Saitek X52 Flight Control System InstanceName: Saitek X52 Flight Control System DeviceSubType: 3 DeviceType: FirstPerson ProductGuid: 025506a3-0000-0000-0000-504944564944 InstanceGuid: a694eae0-1d63-11e0-8005-444553540000 }Short of that there is nothing i can do with the limited amount of details you have given me. And since no other person has posted yet about if it works for them or not i have practically nothing but my own PC and controllers to go by.
But finally, can you tell if the rest of the application works? Besides your controllers then...
And nothing shows up in the debug tab of the main window?
Re: RailWorks Joystick API (A new start)
hi there,
thanks for replying, firstly the rest of the app works fine, speedo reads nice (tho i drive german trains mostly, and they are on kmh, but it is cool that your proggy displays the correct mph values, i max the needle out at 125mph, but the digital speedo keeps going up)
i would almost bet money on it being my system screwing things up,
i had a faff about this morning, this virtual hid devise thing is present on all my computers (they all run windows 7) but i found out that if i disable it in the devise manager, i can get one joystick to work on your proggy....
which ever one is pluggd in first is read, the 2nd one is ignored, thats what i guess the virtual hid devise thing is there for.
i'll have another play and see waht i can come up with.
it is a great proggy you have made btw, i am extremely impressed, i wish i was able to do things like that, but i am more a hardware type person... welders and angle grinders are more my thing.
thanks for replying, firstly the rest of the app works fine, speedo reads nice (tho i drive german trains mostly, and they are on kmh, but it is cool that your proggy displays the correct mph values, i max the needle out at 125mph, but the digital speedo keeps going up)
i would almost bet money on it being my system screwing things up,
i had a faff about this morning, this virtual hid devise thing is present on all my computers (they all run windows 7) but i found out that if i disable it in the devise manager, i can get one joystick to work on your proggy....
which ever one is pluggd in first is read, the 2nd one is ignored, thats what i guess the virtual hid devise thing is there for.
i'll have another play and see waht i can come up with.
it is a great proggy you have made btw, i am extremely impressed, i wish i was able to do things like that, but i am more a hardware type person... welders and angle grinders are more my thing.
RailWorks Joystick API (0.0.2 PROTOTYPE)
Hi again, myself i like a challenge and therefore only try to look at the digital speedometer when driving trains that would have one. (Like a high speed train)
But the analog speedometer is too small for reading fine values so i made a new window with an analog speedometer twice the size.

Changelog
0.0.2
* [FEATURE] Added another analog speedometer in a separate window twice the size.
* [BUGFIX] Fixed switch junction ahead/behind so it now has more consistent results.
Downloads
RailWorks Joystick API 0.0.2 PROTOTYPE
Source code for 0.0.2 PROTOTYPE
For older versions see my earlier posts in this thread... (Why is there no EDIT post function for an extended period of time? *sigh*)
P.S. For now, i will provide as much support as i can since this is the initial releases. So contrary to what my readme says please feel free to ask silly questions.
However, if something doesn't work i want you to tell me as much about the problem as you possibly can... The more i know the higher the chance is i can actually do something about it.
But the analog speedometer is too small for reading fine values so i made a new window with an analog speedometer twice the size.

Changelog
0.0.2
* [FEATURE] Added another analog speedometer in a separate window twice the size.
* [BUGFIX] Fixed switch junction ahead/behind so it now has more consistent results.
Downloads
RailWorks Joystick API 0.0.2 PROTOTYPE
Source code for 0.0.2 PROTOTYPE
For older versions see my earlier posts in this thread... (Why is there no EDIT post function for an extended period of time? *sigh*)
P.S. For now, i will provide as much support as i can since this is the initial releases. So contrary to what my readme says please feel free to ask silly questions.
However, if something doesn't work i want you to tell me as much about the problem as you possibly can... The more i know the higher the chance is i can actually do something about it.
Re: RailWorks Joystick API (A new start)
i havent been able to play about with finding out why my computers use that virtual hid thingy, and all that yet, reason being a parcel came for me today, a saitek 3 throttle quadrant (cost me 5 quid off fleabay... one of the pots was bad, a 49p replacement from maplins and it's all sorted)
so i've been playing with that all day, i still have the virtual hid thingy disabled, so only one usb game devise can be used at once it seems, but for me atm thats fine, as i have a gamers keypad, which is just a keyboard re-mapper and macro thingy, seens ats another keyboard, so i assign most buttons to that, and use the throttle quadrant for the power, brake and regen. brake levers,
but your proggy has been working brilliantly with my throttle quadrant, with one exception, which i imagine is user error, i cant seem to set up combined throttle and brakes for the voyagers,
i remove the assignment for brakes, so i only have throttle on stick 1, stick 2 nothing, stick 3 reverser set up as a 3 notched slider,
i cant move the throttle back into the brake position... i've tried setting a notched slider up, but that dosent work either,
any ideas what i need to do to work a combined throttle and brake lever?
with the lever at 50%, it's showing 33% on railworks hud, i pull it back to about 40%, and it's at zero, but pulling back more dosent move into the brake settings,
if your taking suggestions for future builds.... is it possible to get the data for the other gauges from railworks like you have with the speedo?
would be very handy to have the power/regenerative brake force meter used on (german) electric loco's, as well as brake pressures, ammeters etc.
basicaly turn your proggy into a virtual gauge panel that also does a great job of giving us the joystick functionality railworks should have had in the first place,
that way we can move the view on the main monitor more out of the cab window, and have your proggy in the 2nd monitor giving us the gauge readings,
could even go as far as mounting the 2nd monitor on an angle below the main one.
so i've been playing with that all day, i still have the virtual hid thingy disabled, so only one usb game devise can be used at once it seems, but for me atm thats fine, as i have a gamers keypad, which is just a keyboard re-mapper and macro thingy, seens ats another keyboard, so i assign most buttons to that, and use the throttle quadrant for the power, brake and regen. brake levers,
but your proggy has been working brilliantly with my throttle quadrant, with one exception, which i imagine is user error, i cant seem to set up combined throttle and brakes for the voyagers,
i remove the assignment for brakes, so i only have throttle on stick 1, stick 2 nothing, stick 3 reverser set up as a 3 notched slider,
i cant move the throttle back into the brake position... i've tried setting a notched slider up, but that dosent work either,
any ideas what i need to do to work a combined throttle and brake lever?
with the lever at 50%, it's showing 33% on railworks hud, i pull it back to about 40%, and it's at zero, but pulling back more dosent move into the brake settings,
if your taking suggestions for future builds.... is it possible to get the data for the other gauges from railworks like you have with the speedo?
would be very handy to have the power/regenerative brake force meter used on (german) electric loco's, as well as brake pressures, ammeters etc.
basicaly turn your proggy into a virtual gauge panel that also does a great job of giving us the joystick functionality railworks should have had in the first place,
that way we can move the view on the main monitor more out of the cab window, and have your proggy in the 2nd monitor giving us the gauge readings,
could even go as far as mounting the 2nd monitor on an angle below the main one.
Re: RailWorks Joystick API (A new start)
I will slap some logging onto it so that it can report what devices it finds or not... That should be released later today if i have the time.gazz292 wrote:i havent been able to play about with finding out why my computers use that virtual hid thingy, and all that yet, reason being a parcel came for me today, a saitek 3 throttle quadrant (cost me 5 quid off fleabay... one of the pots was bad, a 49p replacement from maplins and it's all sorted)
so i've been playing with that all day, i still have the virtual hid thingy disabled, so only one usb game devise can be used at once it seems, but for me atm thats fine, as i have a gamers keypad, which is just a keyboard re-mapper and macro thingy, seens ats another keyboard, so i assign most buttons to that, and use the throttle quadrant for the power, brake and regen. brake levers,
These are the settings i am using...gazz292 wrote:but your proggy has been working brilliantly with my throttle quadrant, with one exception, which i imagine is user error, i cant seem to set up combined throttle and brakes for the voyagers,
i remove the assignment for brakes, so i only have throttle on stick 1, stick 2 nothing, stick 3 reverser set up as a 3 notched slider,
i cant move the throttle back into the brake position... i've tried setting a notched slider up, but that dosent work either,
any ideas what i need to do to work a combined throttle and brake lever?
with the lever at 50%, it's showing 33% on railworks hud, i pull it back to about 40%, and it's at zero, but pulling back more dosent move into the brake settings,
Assigned To: Saitek X52 Flight Control System (0), Z, Positive
Treat as: Axis
Mode: Notched Slider Ranges
Notches: 0, 5, 45, 55, 80, 95, 96, 100
Ranges: 0, 0, 50, 50, 75, 90, 100, 100
The "80" notch gives a value up to 75%. This makes the brake section less sensitive for fine braking control.
Then the "95" notch is a very rough brake area giving up to 90%. (normally only used at high speeds anyways)
Finally, the "96 to 100" notch snaps into E-brake application on the brakes.
Some trains can use brake values above 90%, thus some adjustments might be necessary for the voyager. (haven't tried that train yet)
I had quite a few dreams about it just this night actually. And all of them turned into nightmares!gazz292 wrote:if your taking suggestions for future builds.... is it possible to get the data for the other gauges from railworks like you have with the speedo?
would be very handy to have the power/regenerative brake force meter used on (german) electric loco's, as well as brake pressures, ammeters etc.
basicaly turn your proggy into a virtual gauge panel that also does a great job of giving us the joystick functionality railworks should have had in the first place,
that way we can move the view on the main monitor more out of the cab window, and have your proggy in the 2nd monitor giving us the gauge readings,
could even go as far as mounting the 2nd monitor on an angle below the main one.
What i am saying is that the only value i have been able to read from the game so far with success is the speedometer. The remaining values has returned "0" for me.
Further more, the raildriver API doesn't provide brake pressure at all... In other words, i will have to either:
1) Write a memory reading class... (The stuff of nightmares)
2) Find some other way to extract game data in realtime.
If i could... I would have done so already!
Well, i think the AWS worked when i tested it but i forgot to use that.
I would love to have the assignment list on the other monitor myself and all gauges of course.
RailWorks Joystick API (0.0.3 PROTOTYPE)
Another update, this time to 0.0.3 Prototype
Changelog
Downloads
RailWorks Joystick API 0.0.3 PROTOTYPE
Source code for 0.0.3 PROTOTYPE
For older versions see my earlier posts in this thread...
This should fix the issues that gazz292 has had with multiple devices... If not let me know!
Changelog
Code: Select all
0.0.3
* [FEATURE] Added "Shift all mapped devices Up/Down" functionality.
Pressing "Up" Causes all input maps that where previously assigned to DeviceID X to be assigned to DeviceID X + 1. Pressing down has the opposite effect!
This is great to have when you connect or disconnect devices and all your mappings are mapped to the wrong device.
!!! Warning !!! If the device ID already is at 0 for a specific mapping it will be shifted to -1 and as such will be REMOVED.
The same applies to ID's that are greater than the number of devices you have...
For example: You have 2 devices connected and most mappings are on the wrong DeviceID 0 but you also have some mapped to DeviceID 1.
Using the "Up" button will cause those few to be set from DeviceID 1 to DeviceID 2 but you only have 2 devices connected (ID's 0 and 1) so
the ones that now get ID 2 will be REMOVED.
Obviously, save your shifted control maps separately until you can verify that the shift operation had the desired result!
* [FEATURE] Programmed the buttons on the debug tab for "Previous Device" and "Next Device". Pressing these will cause the debug window to only update for the selected device.
* [FEATURE] Added "Listen to all" button on the debug tab. Pressing this restores the debug to react to ANY device input.
Filtering to one device can be useful if another device is "spazzing" out.
* [BUGFIX] Fixed a bug causing multi devices to not work as expected. Using more than one device should now work again. (*Facepalm*)Downloads
RailWorks Joystick API 0.0.3 PROTOTYPE
Source code for 0.0.3 PROTOTYPE
For older versions see my earlier posts in this thread...
This should fix the issues that gazz292 has had with multiple devices... If not let me know!
Re: RailWorks Joystick API (A new start)
caddie, you da man 
it now sees multiple game controllers.
i can use it with the voyager trains, but the pendolinos and class 166's i cant figure out, that's because they have a combined throttle and brake where 50% is not the point where the 2 controls meet, on the pendolino it's 33% i believe, but nothing i can do gets it to work in the brake part of those controls,
i recall reading tha the origional railworks joystick interface had that problem too,
i love the new large speedo, only wish would be able to change it to kph or mph, as i like to drive mainly german loco's atm,
keep up the great work on this amazing app,
it now sees multiple game controllers.
i can use it with the voyager trains, but the pendolinos and class 166's i cant figure out, that's because they have a combined throttle and brake where 50% is not the point where the 2 controls meet, on the pendolino it's 33% i believe, but nothing i can do gets it to work in the brake part of those controls,
i recall reading tha the origional railworks joystick interface had that problem too,
i love the new large speedo, only wish would be able to change it to kph or mph, as i like to drive mainly german loco's atm,
keep up the great work on this amazing app,
Re: RailWorks Joystick API (A new start)
That's nice to hear.gazz292 wrote:caddie, you da man
it now sees multiple game controllers.
For Class 166 i use the following:gazz292 wrote:i can use it with the voyager trains, but the pendolinos and class 166's i cant figure out, that's because they have a combined throttle and brake where 50% is not the point where the 2 controls meet, on the pendolino it's 33% i believe, but nothing i can do gets it to work in the brake part of those controls,
Mode: NotchedSliderRanges
Notches = "0, 8, 36, 44.99, 45, 53.99, 54, 62.99, 63, 71.99, 72, 80.99, 81, 89.99001, 90, 96.99, 97"
Ranges = "0, 8, 36, 36, 45, 45, 54, 54, 63, 63, 72, 72, 81, 81, 90, 90, 100, 100"
8% is E-Brake
36% is Idle/Release
45, 54, 63, 72, 81, 90, 100 is notches 1 through 8.
To make it work with the pendolino you can do any of two things... Either test your way forwards until you get what you are looking for. Or start RailWorks without the Joystick API and see what the controls snaps to.
Remember that you cannot use negative values in Notches or Ranges so a in-game value of -80 is a Notch/Range value of 10%.
Math: 50% + (InGameValue / 2)
Example 1: APIValue = 50% + (-22 / 2) = 50% - 11 = 39%
Example 2: APIValue = 50% + (65 / 2) = 50% + 32.5 = 82.5%
When making notches that should snap to a specific in-game value mare sure you use close together values for notches like 39.9, 40 and then the desired value for in game in ranges like 40, 40 or whatever you wanted.
I cannot (unfortunately) spend time on making the Notches and Ranges into a user friendly GUI so numbers will have to cut it for now.
This app doesn't have a problem with that but it might be hard to use the features provided considering it's all about setting up the numbers right.gazz292 wrote:i recall reading tha the origional railworks joystick interface had that problem too,
I intend to make a KPH speedo that can be switched manually or even with a device input. There is also examples on night time speedos in the "optional original images" package in the first post.gazz292 wrote:i love the new large speedo, only wish would be able to change it to kph or mph, as i like to drive mainly german loco's atm,
keep up the great work on this amazing app,
Can even make speedometers with a greater range than 120, i merely picked 120 as MOST trains operate below 120 MPH. (Or at least those i like
I will do this sometime this week if i have the time.
Re: RailWorks Joystick API (A new start)
most excelent, i'll have a go with those notch settings tommorow (boiler died yesterday, gonna take a few days to get the parts, so it's bloomin freezing everywhere except the bedroom where i have my only fan heater, rented house so i'm not paying for the repairs at least... 14 month old boiler, 12 month guarentee, typical)
anyhoo, no probs re: the notch gui, i wish i had the skills to help, but even working out math things muddles my brain,
once i have the trains i like to drive set up, and different profiles for the settings, it'll be all set,
i've got to read how to set 2 switches to work an analog control, i'm sure you said how to do it in your readme file (i only drive diesel or electric trains, so dont need more than full forwards or reverse) i just need one button to put it in forwards, and the other button to either go back down to neuteral then reverse, or just go straight into reverse.
i could do with a speedo that goes to 250kph, is it possible to keep the current resolution... but move the end stop and allow the needle to carry on round to almost the start again to give the extra readings? dont do anything specialy for me mind, see if other want it, and no rush,
i do hope other people are using this proggy and appreciate it as much as i do, it's changed my enjoyment of the game 10 fold.
anyhoo, no probs re: the notch gui, i wish i had the skills to help, but even working out math things muddles my brain,
once i have the trains i like to drive set up, and different profiles for the settings, it'll be all set,
i've got to read how to set 2 switches to work an analog control, i'm sure you said how to do it in your readme file (i only drive diesel or electric trains, so dont need more than full forwards or reverse) i just need one button to put it in forwards, and the other button to either go back down to neuteral then reverse, or just go straight into reverse.
i could do with a speedo that goes to 250kph, is it possible to keep the current resolution... but move the end stop and allow the needle to carry on round to almost the start again to give the extra readings? dont do anything specialy for me mind, see if other want it, and no rush,
i do hope other people are using this proggy and appreciate it as much as i do, it's changed my enjoyment of the game 10 fold.
Re: RailWorks Joystick API (A new start)
Oh yeah, keep forgetting this one, I cant seem to get the bell command to be assigned to a button, right clicking on the bell in the display does nothing,
I dont bother with american trains personaly which use the bell button to operate the bell to warn people at level crossing a train is going past (like it isnt big enough to be seen, but then again, american train drivers use the horn lever instead of the brake lever when a car is stuck on the crossing
, but I do like to be sad and reply to the 'guard' when he gives me 2 buzzes to go on a class 101, and I think the voyagers or class 166's do the guards 'ding ding and away we go' thing too.
I dont bother with american trains personaly which use the bell button to operate the bell to warn people at level crossing a train is going past (like it isnt big enough to be seen, but then again, american train drivers use the horn lever instead of the brake lever when a car is stuck on the crossing
Re: RailWorks Joystick API (A new start)
The reason is simple... The raildriver API doesn't provide a function for the bell.gazz292 wrote:Oh yeah, keep forgetting this one, I cant seem to get the bell command to be assigned to a button, right clicking on the bell in the display does nothing,
Though that wasn't documented before... It is now!
Re: RailWorks Joystick API (0.0.3 PROTOTYPE)
As promised... The 0.0.4 PROTOTYPE update is here!
This is mainly a graphics update which adds KPH speedometers, high speed speedometers and night time speedometers... But why talk about it when there can be pretty pictures!

The analog speedometers can now be cycled by left clicking them. Both the control screen speedometer and the larger speedometer can be cycled independently.
If the speedometer in the control setup screen is a KPH (Kilometers per second) type then the digital speedometer will read KPH values as well!
But, with that much added graphics in the application we also get a larger file to download. Currently at 6.2 megabytes. (which is still small but considerably larger than the previous at 1.4 MB)
The server that hosts the file is hooked up to a 100/100 MBit unlimited connection so no worries there but if you have a slow connection and you don't like large files... That's just a heads up!
As always, replace the .exe in your plugins folder with the new one and start it.
Changelog
Downloads
RailWorks Joystick API 0.0.4 PROTOTYPE
Source code for 0.0.4 PROTOTYPE
For older versions see my earlier posts in this thread...
Notes
If/When i decide to leave the prototype stage i intend to allow GUI skins to be used... That is a big IF though and i am just putting this out there!
If you have a speedometer or entire GUI redesign that can fit the current project then don't be afraid to post it. Though i will want a .png image (300x300 AND 600x600 pixels for the speedometer... Background, indicator and glass) or i won't waste my time with it.
Also, unless i have said it before... Well i am going to say it again! IF i decide to keep working on this application i might remake it from scratch once more taking all i have learned when making the prototype and making the code cleaner and more efficient. (Not that the application draws much resources anyways)
If you get a brilliant idea on what else the application could do (besides reading more game data, that is very unlikely to happen) then feel free to share it!
Which reminds me...
Virtual Keyboard
Considering the Bell, Zoom In/Out and such functions are not available through the raildriver API. I am planning on letting the application send key strokes to the game via low level calls.
The problem with this is that doing so can possibly flag the executable as a keylogger by various anti virus, anti spyware and other such security applications and (not yet sure of this) might also require the application to be run with administrator privileges. Why is this a bad thing??? Well, in practice it isn't but doing so will cause plenty of confusion among people getting warnings about the application.
So that's why i am asking (since i am using my Saitek SST to send key presses anyways) if anyone would need the ability to send keystrokes via the application to the game or are you guys already using whatever joystick mapper program to do that?
Well, enjoy the release!
This is mainly a graphics update which adds KPH speedometers, high speed speedometers and night time speedometers... But why talk about it when there can be pretty pictures!

The analog speedometers can now be cycled by left clicking them. Both the control screen speedometer and the larger speedometer can be cycled independently.
If the speedometer in the control setup screen is a KPH (Kilometers per second) type then the digital speedometer will read KPH values as well!
But, with that much added graphics in the application we also get a larger file to download. Currently at 6.2 megabytes. (which is still small but considerably larger than the previous at 1.4 MB)
The server that hosts the file is hooked up to a 100/100 MBit unlimited connection so no worries there but if you have a slow connection and you don't like large files... That's just a heads up!
As always, replace the .exe in your plugins folder with the new one and start it.
Changelog
Code: Select all
0.0.4
* [FEATURE] Added several analog speedometers... Both MPH and KPH ones. You can cycle through them by left clicking on them.
* [FEATURE] The digital speedometer now reads MPH or KPH depending on what analog speedometer you have selected in the control setup screen.
* [REQUIREMENTS] The speedometer additions makes the executable file considerably larger. (from 1.6 MB to 6.5 MB, this will change in a future build with external skins.)Downloads
RailWorks Joystick API 0.0.4 PROTOTYPE
Source code for 0.0.4 PROTOTYPE
For older versions see my earlier posts in this thread...
Notes
If/When i decide to leave the prototype stage i intend to allow GUI skins to be used... That is a big IF though and i am just putting this out there!
If you have a speedometer or entire GUI redesign that can fit the current project then don't be afraid to post it. Though i will want a .png image (300x300 AND 600x600 pixels for the speedometer... Background, indicator and glass) or i won't waste my time with it.
Also, unless i have said it before... Well i am going to say it again! IF i decide to keep working on this application i might remake it from scratch once more taking all i have learned when making the prototype and making the code cleaner and more efficient. (Not that the application draws much resources anyways)
If you get a brilliant idea on what else the application could do (besides reading more game data, that is very unlikely to happen) then feel free to share it!
Which reminds me...
Virtual Keyboard
Considering the Bell, Zoom In/Out and such functions are not available through the raildriver API. I am planning on letting the application send key strokes to the game via low level calls.
The problem with this is that doing so can possibly flag the executable as a keylogger by various anti virus, anti spyware and other such security applications and (not yet sure of this) might also require the application to be run with administrator privileges. Why is this a bad thing??? Well, in practice it isn't but doing so will cause plenty of confusion among people getting warnings about the application.
So that's why i am asking (since i am using my Saitek SST to send key presses anyways) if anyone would need the ability to send keystrokes via the application to the game or are you guys already using whatever joystick mapper program to do that?
Well, enjoy the release!
Re: RailWorks Joystick API (0.0.3 PROTOTYPE)
Major bug in 0.0.4, 0.0.4_2 released!!!
Changelog
Downloads
RailWorks Joystick API 0.0.4_2 PROTOTYPE
Source code for 0.0.4_2 PROTOTYPE
This is the same file name as the 0.0.4 release. If you previously downloaded 0.0.4 you don't need to worry about replacing the old download.
Both application and source are updated in their respective file.
Sorry about not detecting this bug in time for the release but i merely tested all the functions in the app besides setting up new controls and just stumbled over this as i wanted to create a new control set for a new train.
Somehow, someway, visual studio decided to be cute and alter my code without telling me about it. That's why this happened!
Changelog
Code: Select all
0.0.4_2
* [BUGFIX] Fixed a MAJOR bug that was introduced in 0.0.4 that caused all controls to become unresponsive to right clicks. They are now working as intended again!Downloads
RailWorks Joystick API 0.0.4_2 PROTOTYPE
Source code for 0.0.4_2 PROTOTYPE
This is the same file name as the 0.0.4 release. If you previously downloaded 0.0.4 you don't need to worry about replacing the old download.
Both application and source are updated in their respective file.
Sorry about not detecting this bug in time for the release but i merely tested all the functions in the app besides setting up new controls and just stumbled over this as i wanted to create a new control set for a new train.
Somehow, someway, visual studio decided to be cute and alter my code without telling me about it. That's why this happened!