|
For a good while I have wanted to be able to use a joystick or keyboard button to control some/all of the in cockpit controls, rather than using a mouse. I have my own cockpit setup with many buttons and switches etc and I wanted to be able to operate all of the shiney switches in the P47s cockpit. Indeed the design of my control system largely follows the P47 cockpit (though not completely, its supposed to be a general WW2 fighter pit, I also use it in IL2)
As many of you may know a good proportion of the controls within the P47 cockpit (with Accusim, cant speak for without) cannot be assigned to a keyboard or joystick command as they are special to Accusim and there is no FSX equivilent. An example would be the Cockpit Ventilation handle or the starter switch. Also some FSX commands have been used to operate other devices, e.g. the tailwheel lock when assigned actually operates the WEP switch! Another issue is the Landing light switch, the FSX version doesnt work.
A while ago I posted on these forums asking if there was a way around these issues, and if there was a way to operate these Accusim and native-to-A2A commands with a joystick. The reply I got was no, it was not possible as these controls have special coding and therefore cannot be assigned. I was a little disappointed but accepted that with Accusim the complexity was beyond the bog standard FSX. I should point out I was disappointed in general, this is by no means just an A2A issue, the same problem occurs with other makers Payware!
Anyway, I have solved the problem. I can now operate EVERY switch in the P47 cockpit using a keyboard or joystick button. I mean every one, including the just visual ones like the gun charging handles. There are still some issues and hopefully A2A can be of help here (or others smarter than me!).
XXX Attention A2A chappies. To be honest I havent read any EULA or whatever with regards to this but i dont think im being naughty. All i did was use FSUIPC to read the Local Variables (LVars) within the cockpit and then assign controls to operate those Lvars. I havent made any changes to the the aircraft or Accusim itself (wouldnt know how too..) Everything below happens in FSUIPC alone (i believe anyway......). I simply copied and pasted some of the LVar entries to create the macro file and those are included in this thread. If I have transgressed where I shouldnt please fell free to close this thread and send me a message telling me how bad I am! However hopefully you will be happy someone has managed to work out how to operate your special controls, I know I am! XXX
Here is how I did it, and how you can too. Im afraid im one of lifes wafflers so bear with me! I should point out that at no time do you make ANY changes to either FSX itself of the A2A aircraft. All of the changes made are made within a program called FSUIPC. You CANNOT break your FSX or P47 by doing this!
First you need a registered copy of a program called FSUIPC 4. I am using version 4.53. Become familiar with this program, it is very, very useful. For those who dont know basically one of its prime functions is assigning controls. It has access to many, many controls that are not accessible through the normal FSX controls section. I could write a whole long thread on the features and usefulness of this program, but I wont. For the purposes of this explanation I am assuming a reader would have some experience with this program and know at least how to assign controls to buttons or keys. I dont claim to be a super expert at using FSUIPC so if i tell you something daft, sorry! Also FSUIPC is not always that stable, occasionally it wont save key commands when you shut down FSX. Note: make sure any switch or key command you are using for this does NOT have an operation with FSX itself otherwise you will have conflicts.
Next you need to create a Macro file. Right click on desktop and create a notepad file and call it 1P47.MCRO click yes to change file type (note it is called 1P47 for a reason, it will now be at the very top of your control list within FSUPIC thanks to the ~1, making it easier to find the controls). This file needs to be put in your FSX/Modules folder (this folder also contains all the other files you will need in this operation including FSUIPC. I think it is created when you install FSUIPC). Now open up the file and copy and paste the text below into that file and save.
[MACROS] 1=L:GunSightSwitchOn=SET 2=L:CabinVent=SET 3=L:DefrosterSwitch=SET 4=L:TailWheelLock=SET 5=L:PrimerOn=TOGGLE 6=L:WEPMasterSwitch=SET 7=L:OilDilute1=SET 8=L:FuelSelKnob1State=SET 9=L:FuelSelKnob2State=SETP 10=L:CompassLight=SET 11=L:LandingLightExtendSwitch=SET 12=L:StarterSwitch=SET 13=L:EngineCrankPowered=SET 14=L:OxyFlowModeValve=SET 15=L:OxyEmergencyValve=SET 16=L:OxyMaskOn=SET 17=L:OverspeedTestSwitch=SET 18=L:LightRecogWhiteSwitch=SET 19=L:LightRecogRedSwitch=SET 20=L:LightRecogGreenSwitch=SET 21=L:LightRecogAmberSwitch=SET 22=L:deice_electrical_switch=SET 23=L:GunHeat=SET 24=L:RadioChannelSwitch=SET 25=L:RadioAudioSwitch=SET 26=L:RadioMasterSwitch=SET 27=L:TurboClutch=SET 28=L:Propeller1SwitchMode=SET 29=L:ClutchTurboSwitch=SET 30=L:Propeller1SwitchRPM=SET 31=L:FuelLampTestSwitch=SET 32=L:ReleaseLeftSwitch=SET 33=L:ReleaseRighttSwitch=SET 34=L:ReleaseBellySwitch=SET 35=L:GunCharge2=SET 36=L:GunCharge1=SET 37=L:HydrHandPump=SET
Now you will see a heading of [MACROS] followed by a numbered list. These numbers refer to the new controls available. Note with the FSUIPC prgram you will see the controls in alphabetical order rather than the number order shown here. Do not be tempted to slip extra contols in between these or change the number. FSUIPC will assign a control by its macro number to a specific key. If you change the text after the number then the control will change (or stop working). Note these controls now only exist within this MACRO file, therefore if you delete it or rename it the controls will no longer be available. Also its why you cant break FSX with this workaround. I cannot garuantee that by operatiing some of these commands it wont muck up operation the Accusim systems, though in testing there doesnt seem to be any issues (except those i mention below)however if there are any major issues and you want all this to go away simply delete the MCRO file and forget this ever happened!
Here is how to use these 37 new commands!
Here is a typical command: 32=L:ReleaseLeftSwitch=SET
This command operates the Left Wing release lever. note the end says '=SET'. This is important. In FSUIPC (See advanced user guide) this tells the program what to do with that command. I use SET as its the easiest for the controls we have here. there are other such as toggle or repeat. With =SET you also need to set a parameter and this is what makes the command useful! To assign this simple command to a switch to do the following:
in FSUIPC go to buttons and Switches. Make sure you select 'Profile Specific' (you will need to assign a name to this profile the first time you use it) for ALL of the commands we use here. You need to click this EVERY time you open up FSUIPC other wise you make it a general command and your 737 will be wondering just how to drop its bombs!
Operate the switch and FSUIPC will give that switch a specific number just as 'joy#4, Btn# 17'. Next click on the drop down for 'Control Sent when button is pressed'. Now if you have done the Macro part correctly you will see the very first control is '1p47:L:CabinVent=SET'. now scroll down the list to find '1p47:L:ReleaseLeftSwitch=SET'. Next in the Parameter box type 1. the figure 1 means the switch is on in most cases (other cases to be explained). leave 'control repeat when held' blank
Next click on 'Control Sent when button released', scroll down and select the SAME control but this time put 0 in the parameter box. The 0 means the switch is off.
Close down FSUIPC by clicking OK and try your switch. Flick it up (or press it), the Left wing release lever will move out, flick the switch down it goes back in (or for a keypress of joystick button, when pressed the lever moves out, when release it goes back in). This is how you assign the new controls. If you forget to do the 'Control sent when button released' the control will simply stay on once it has been set.
The reason I use =SET rather than =Toggle is that my control system has a lot of on/off switches rather than pushbuttons. In other words when the switch is up it is 'on', (like permanently pressing a joystick button) and when it is down it is off. If i simply set the command to =toggle then flicking the switch just changes its state and you can end up with your actual switch in the down position but the in game switch is up and 'on' (The standard FSX Battery command is a pain for this!). By using =SET and the parameters the switch in game operates the same as the physical switch. This is not an issue for keyboard or normal joystick buttons. (use =toggle for those, see explanation at end of this message). Use this same method for most of the commands in the list above. Experiment with them and see what they do! They all work (with a few exceptions which I will explain) and are pretty self explanetory by name.
There are a number of commands which have more parameters than 0 and 1. or operate differently. I will explain them below. Any not mentioned can be set using the method above: Note: if I show a switch function as follows 1,0 that mean 'Control when button pressed' =1 and 'Control when button released' = 0. Where I mention a 3 position switch I mean a switch which is up= switch 1, centre = off, down= switch 2. i.e. 3 positons but two actual switches. Also my explanation is for using switches and buttons. You can assign these commands to the keyboard but some fucntions might be slightly different (i.e. making changes to the FSUIPC.INI file). look it up in the FSUIPC guides if you need to!
2=L:CabinVent=SET
This operates the cabin vent, 0 is shut, 100 is fully open. it can be gradually opened by using any figure between 0 and 100. It woul also be possible to assign an axis to this through FSUIPC. I just have a switch with the parameter 100 and 0.
5=L:PrimerOn=TOGGLE
I have found with my system it is best to have this set to =TOGGLE. all you need to do is assign it to a switch in the 'control when button pressed box' with a parameter of 1. when you flick the switch it will go in and out. You can change it to =SET and then use paratemers for when button pressed and released, however i found this didnt work 'right', hence using toggle. Note this is the only command in my list using =Toggle
8=L:FuelSelKnob1State=SET
This operates the main fuel selector with the follwing parameters: 1= Aux, 2= main, 3= External, 4 = Off. Note there is no need to assign a control for when button released for this control
9=L:FuelSelKnob12State=SET
This operates the external fuel selector with the follwing parameters: 1= Belly, 2= Right, 3= Left 4 = Off. Note there is no need to assign a control for when button released for this control.
11=L:LandingLightExtendSwitch=SET
This has three parameters (I only use the extend and retract ones as i only have a two position switch for it) 0= OFF (centre position) 1= Retract, 2= Extend. I have 'control when pressed' as parameter 2 and when released as parameter 1. If you where to use a 3 position switch you would have the up switch as 2,0 and the down switch and 1,0 and this would simulate the actual switch operation. Note when extended the light is also on and there is no need to assign a further control to turn the light itseld on.
16=L:OxyMaskOn=SET
This just uses the two normal parameter 1 and 0. there is no in cockpit switch for this but it allows you to put your mask on with a key or switch command rather than using the menu! also note there are other Oxygen related switches available for the regulator in the cockpit
24=L:RadioChannelSwitch=SET
This operates the radio push buttons. Again do not set a 'Control when released' with these ones. 0 = off 1-4 = A-D
26=L:RadioMasterSwitch=SET
This operates the three way switch TX/Rx switch. Havent checked the functions properly but it used 0,1,2 parameters
28=L:Propeller1SwitchMode=SET
This is for the models which have the extra propellor operation switch. This one operates the main Auto/ Manual swicth with 0 = Auto, 1 = Manual
30=L:Propeller1SwitchRPM=SET
This operates the 3 position switch to adjust the prop RPM 0= inc RPM, 1= OFF, 2= DEC RPM. I have a 3 position switch with parameters 0,1 and 2,1 set.
There are some controls which need further explanation or do not work completely correctly.
4=L:TailWheelLock=SET
This has parameters assigned to a normal switch, i.e. 1,0. However for a reason I do not fully understand this command also operates the WEP on/off switch (which has its own command within the list). Before I discovered this method (im sure im not the first to discover this method BTW, after all Pete Dowson who wrote FSUIPC specifically enabled the facility to make it work hence Im not about to steal his glory!) I had tried to assign the normal FSX tailwheel lock command to a switch , however i discovered that this actually operated the WEP switch instead. Therefore this issue I assume is a consequence of that, with Accusim using the FSX tailwheel lock for the WEP system.
Its not a major issue, simply use the tailwheel lock for take off and then use the independant WEP switch to turn on or off the WEP system as necessary. Just remember operating the tailwheel lock messes with the WEP. Perhaps an A2A person can be of assistance here!
**EDIT** In another thread I have seen mention that this problem is related to SP2. Acceleration users may not have this problem and the tailwheel lock should work normally.
Two of the commands also require the editing of the FSUIPC.INI file (also found in the Modules folder). The first involves the Turbo clutch which locks the turbine lever to the throttle. There are two commands which operates this function.
29=L:ClutchTurboSwitch=SET and 27=L:TurboClutch=SET.
TurboClutchSet 'attaches' the turbo lever to the throttle but the animation for the actual catch doesnt operate. 'ClutchTurboSwitch' Operates the animation for the catch but doesnt lock the turbo lever to the throttle. Basically for the sysetm to work AND look right we need to operate both commands. To do this using the same switch we need to edit the FSUIPC.INI file.
First, assign TurboClutch to a switch with the normal 1,0 parameters. This is the command that physically attaches the two levers together. Next open up the FSUIPC.INI file in notepad and seach until you find the section called [Buttons.XXXXXX] where XXXXX is whatever you called the specific profile for the P47.
scroll to the bottom of that section and add the following, adding your own figures as necessary
88=P2,27,CM14:29,1 89=U2,27,CM14:29,0
The bluefigures are the control number and should be sequential, if not this might not work. The red figures identify the specific joystick button. in my case Joystick 2, button 27. This can be found in the FSUIPC when you press the button. (dont use the Windows button ID in controllers, FSUIPC shows buttons as 0-31, whereas your controller thingy in windows would show em as 1-32...it gets confusing, trust me!). Also your Macro file might have a different number from mine (the Green figures). to see what you macro file is numbered have a look for any previous command in the buttons list with the figures CMXX, the green figures being your macro number.
Also see page 13 in the Advanced User guide for FSUIPC (found in modules folder) for a further explanation in manually adding controls to the .ini file. Im not goinfg to explain what the lines mean, look it up yourself!
Now save the FSUIPC.INI file and close down FSX, and restart. Changes made to the .INI file only seem to work after FSX has been restarted.
These two lines tell FSUIPC that when this switch is operated it should do the command in Macro14, number 29. (In this case ClutchTurboSwitch=Set) as well as what ever you have assigned with FSUIPC. Note: when you have two commands assigned to a switch you CANNOT now use that switch for something else within FSUIPC until you remove the extra commands in the .INI file. In FSUIPC it will appear greyed out. If you have done this right by flicking the single switch the turbo lever is now attached to the throttle AND the animation works.
There is one control I havent fully worked out yet and Im hoping someone else (Maybe someone at A2A ,hint hint...) might be able to help me with. The starter switch on the Accusim P47 is unusual as it has three settings, Ennergize, off and Engage. The following command operates the switch but doesnt operate the whole function of the switch:
12=L:StarterSwitch=SET
This command operates the starter switch which has three positions, energise, off and engage. For this I use a 3 position on-off-on toggle switch.
**EDIT** I have managed to make this work (Thanks to Rob from A2A for the info for solving this problem! see reply further down) therefore have changed this description on 02 Oct 09.
**Note** If you are reading this after trying my first attempt at making this button work and you have used the workaround I suggested then you need to erase the line in your FSUPIC.INI file relating to command C66300. This would have been assigned to the same switch as the 'engage' command. You need to make this change before you start FSX, or restart FSX. (Changes to the FSUIPC.INI file only seem to take effect when FSX is restarted)
This command has three Parameters 0 = Energize (the inertia motor) 1= off, 2 = Engage. I have assigned this to a three position switch (cente position is off) with parameters of 0 and 2,1.
First, Set the switch for the in cockpit 'Energize' position with paramater 0. DO NOT set any command or parameter for the 'command when button released' section in FSUIPC or this will not work! (thats why i couldnt get it to work the first time)
Next, flick your switch to the cockpit 'engage position', assign the command and set parameter 2 and parameter 0 for 'command when button released'.
What happens when you operate you switch is that you throw it to 'energize' and the inertia motor starts. you them throw it over to engage and the prop should turn (maybe starting the engine, maybe not!) and when you move the switch back to the centr position it should be off. Note the only way to stop the inertia motor is by moving your switch to the 'engage' side and then back to the centre off position. If you assign parameter 0 to the 'command when released' part for the energize switch, this just turns off the Accusim starter system before you hit 'engage'.
Notes on =SET and =Toggle.
All of the explanation above is for how I have made this work on my system. With my system I have homemade controls (that the computer sees as a joystick) but this uses on/off switches mainly rather than a momentary switch (a joystick button or keyboard button is a momentary switch). If that is how your system works then use =SET at the end of the commands in the macro file. However if you are using standard joystick buttons or the keyboard and these do not stay on permanently then you need to use the =Toggle command and just use the parameter 1 in ONLY the 'control when button pressesd '. This then means the control operates on each press of the button/key (much like most FSX commands).
If using the =Toggle command go into the macro file and change =SET to =Toggle for those commands it is necessary.
Finished, Phew! my longest thread ever! There, an extra 37 commands you never knew you had! Hopefully my explanation makes sense and you can work out how to use it! I might explain just how I got access to these extra controls in another thread, but I have flying to do (using another function of FSUIPC is how...with a long, boring explanation!)
Anyhoo, Enjoy!
_________________ Have you been touched by his Noodly Appendage?
Last edited by Flashman on Fri Oct 02, 2009 3:25 am, edited 4 times in total.
|