Jump to content
The simFlight Network Forums
edfair

FSUIPC Mouse Macros for PMDG 737NGX

Recommended Posts

Just started working out files for MCP, EFIS and Lower Overhead for the great! new 737NGX. What a plane!

I'll attach the MCP now because I've tested them with my homemade MCP. Others to follow.

Anyone else out there done other function? Hope these help.

Ed F.

[Macros]
Module="PMDG_737NGX.DLL"
1=MCP_N1=RX48bd0*X8bcc
2=MCP_IAS=RX43480*Xe8cc
3=MCP_LVL CHG=RX48c90*X8bcc
4=MCP_HDG=RX43740*X8bcc
5=MCP_APPR=RX48cd0*X8bcc
6=MCP_ALTHLD=RX48d10*X8bcc
7=MCP_VS=RX48d30*X8bcc
8=MCP_IAS_DN=RX48c50*X8bcc
9=MCP_IAS_UP=RX48c50*X8bcc,31
10=MCP_CRSA_DN=RX48b90*X8bcc
11=MCP_CRSA_UP=RX48b90*X8bcc,31
12=MCP_HD_DN=RX437c0*X8bcc
13=MCP_HD_UP=RX437c0*X8bcc,31
14=MCP_ALT_UP=RX48cf0*X8bcc,31
15=MCP_ALT_DN=RX48cf0*X8bcc
16=MCP_VS_UP=RX43a70*Xe8cc
17=MCP_VS_DN=RX43a70*Xe8cc,31
18=MCP_BANK_INC=RX43860*Xe8cc,31
19=MCP_VORLOC=RX43970*X8bcc
20=MCP_LNAV=RX48cb0*X8bcc
21=MCP_VNAV=RX43660*X8bcc
22=MCP_AT=RX43300*Xe8cc
23=MCP_FDA=RX43360*Xe8cc
24=MCP_CO=RX434e0*Xe8cc
25=MCP_SPDINTV=RX435a0*Xe8cc
26=MCP_ALTINTV=RX43a50*X8bcc
27=MCP_CMDA=RX43ad0*Xe8cc
28=MCP_CMDB=RX43b30*Xe8cc
29=MCP_APDISCON=RX43c80*X8bcc
30=MCP_CWSA=RX43b90*Xe8cc
31=MCP_CWSB=RX43bf0*Xe8cc
32=MCP_FDB=RX433c0*Xe8cc
33=MCP_BANK_DEC=RX43860*Xe8cc
34=MCP_TOGA=RX43ca0*X8bcc
35=MCP_HDG_UP=RX43790*Xe8cc,31
36=MCP_HDG_DN=RX43790*Xe8cc
37=MCP_CRSB_UP=RX432b0*X8bcc,31
38=MCP_CRSB_DN=RX432b0*X8bcc

Share this post


Link to post
Share on other sites

Just an FYI these work fine in the older Honeywell MCP, but some of the functions (like the FD and CMD buttons) don't work under the Collins MCP, because they're in a slightly different spot.

Share this post


Link to post
Share on other sites

Thanks very much for this work. I'll be trying to connect my opencockpits MCP..... then EFIS

While I have a registered FSUIPC4 I've never used macro's before.

Could you help me to get FSUIPC to read/eat the macro file. I've been reading the FSUIPC maual and advanced user guide but failed I'm afraid

For starters I've copied the above text and pasted it into a text file I named 737PMDG.mcro and placed it in the fsx/modules folder, I had to put carriage returns in the text file to format it .. was tthat ok or not ? I have no other macro files in my /modules folder that I can see.

TIA

John

Share this post


Link to post
Share on other sites

Could you help me to get FSUIPC to read/eat the macro file. I've been reading the FSUIPC maual and advanced user guide but failed I'm afraid

If the file is in the Modules folder, FSUIPC will read it. There's nothing else to do except go ahead and assign your buttons and switches.

For starters I've copied the above text and pasted it into a text file I named 737PMDG.mcro and placed it in the fsx/modules folder,

All of the assignment names will begin "737PMDG:" then. For instance "737PMDG:MCP_LVL CHG". Haven't you looked?

I had to put carriage returns in the text file to format it .. was tthat ok or not ?

What do you mean? If you copied the macro file as shown then each macro line would have been on a line in any case. How did you lose them?

NEVER EVER use "Wordpad" or any word processor for plain text files, only a text editor like Notepad.

Pete

Share this post


Link to post
Share on other sites

Thanks for the reply Pete, apologies for the dumb questions, while FSUIPC does lots for me, I haven't done much with it myself.

Yes of course the macro file 737PMDG items from the macro file were in there as soon as I tried to assign buttons.

Don't know what happened with my text copy, I'd just smeared (selected) the text, copied with a Ctrl+C , opened a new .txt file on my desktop, yes notepad, and pasted the text in, and was also surprised to see it as a block of text, no carriage returns. Maybe (????) it had been created with line feeds, no carriage returns ??? No matter, I managed. ( Is Win7 64 Notepad any different to previous Notepads ?)

Thanks again that should be enough info to be dangerous :)

Share this post


Link to post
Share on other sites

Just an FYI these work fine in the older Honeywell MCP, but some of the functions (like the FD and CMD buttons) don't work under the Collins MCP, because they're in a slightly different spot.

Right you are! I should have mentioned the model in the note... this matches the hardware that I've made. Thanks for pointing that out.

Ed F.

Share this post


Link to post
Share on other sites

Here are some more recent macro files. I actually split up my macro files into macros titled as follows:

0_P738W_MCP.MCRO

0_P739W_EFIS.MCRO

0_P738W_OVH.MCRO

Naming them this way puts them at the top of the command list.. a lot quicker when you're assigning as many buttons/switches as this. I've tried them all with my OVH and EFIS (both homemade using Bodnar interfaces) and they work in flight with the virtual cockpit or 2-D version.

(Pete.. What is the max number of macro steps allowed? I know it's probably in your thorough docs but I've beem pretty busy button pushing to look! Sorry for my laziness.)

Anyway here they are:

Ed F

0_P739W_EFIS.MCRO

[Macros]
Module="PMDG_737NGX.DLL"
1=EFIS_AIRPT=RX44030*X8bcc
2=EFIS_BARO_DEC=RX43ef0*X8bcc
3=EFIS_BARO_INC=RX43ef0*X8bcc,31
4=EFIS_CTR=RX43f50*X8bcc
5=EFIS_DATA=RX44050*X8bcc
6=EFIS_FPV=RX43e70*X8bcc
7=EFIS_MINS_DEC=RX43e50*X8bcc
8=EFIS_MINS_INC=RX43e50*X8bcc,31
9=EFIS_MODE_CCW=RX43f70*X8bcc
10=EFIS_MODE_CW=RX43f70*X8bcc,31
11=EFIS_MTRS=RX43e90*X8bcc
12=EFIS_POS=RX44070*X8bcc
13=EFIS_RADBAR_CCW=RX43e10*X8b05
14=EFIS_RADBAR_CW=RX43e10*X8b05,31
15=EFIS_RANGE_CCW=RX43fb0*X8bcc
16=EFIS_RANGE_CW=RX43fb0*X8bcc,31
17=EFIS_RINGS=RX43f90*X8bcc
18=EFIS_RST=RX43e30*X8bcc
19=EFIS_STA=RX43ff0*X8bcc
20=EFIS_STD=RX43ed0*X8bcc
21=EFIS_TERR=RX44090*X8bcc
22=EFIS_VOR1_DN=RX43f10*X8bcc
23=EFIS_VOR1_UP=RX43f10*X8bcc,31
24=EFSI_VOR2_DN=RX43f30*X8bcc
25=EFIS_VOR2_UP=RX43f30*X8bcc,31
26=EFIS_WPT=RX44010*X8bcc
27=EFIS_WXR=RX43fd0*X8bcc

0_P738W_OVH.MCRO

[Macros]
Module="PMDG_737NGX.DLL"
1=OVH_ACMET_CCW=RX4c950*X8bcc
2=OVH_ACMET_CW=RX4c950*X8bcc,31
3=OVH_ANTICOLL=RX4e040*X8bcc
4=OVH_APU_DN=RX4df80*X8bcc
5=OVH_APU_UP=RX4df80*X8bcc,31
6=OVH_APUBLEED=RX49170*X8bcc
7=OVH_APUELEC1=RX4cc40*X8bcc
8=OVH_APUELEC2=RX4cc60*X8bcc
9=OVH_APUGEN1_DN=RX4cc40*X8bcc
10=OVH_APUGEN1_UP=RX4cc40*X8bcc,31
11=OVH_APUGEN2_DN=RX4cc60*X8bcc
12=OVH_APUGEN2_UP=RX4cc60*X8bcc,31
13=OVH_BLEED1=RX4dab0*X8bcc,31
14=OVH_BLEED2=RX49190*X8bcc
15=OVH_CABUTIL=RX4c970*Xe8cc
16=OVH_CHIME=RX49030*X8bcc,31
17=OVH_DCMET_CCW=RX48fb0*X8bcc
18=OVH_DCMET_CW=RX48fb0*X8bcc,31
19=OVH_E1_AI=RX490f0*X8bcc
20=OVH_E1_IGN_CCW=RX4dfa0*X8bcc
21=OVH_E1_IGN_CW=RX4dfa0*X8bcc,31
22=OVH_E2_AI=RX49110*X8bcc
23=OVH_E2_IGN_CCW=RX4dfe0*X8bcc
24=OVH_E2_IGN_CW=RX4dfe0*X8bcc,31
25=OVH_ELEC1_HYD=RX4d3c0*X8bcc
26=OVH_ELEC1=RX48fd0*X8bcc
27=OVH_ELEC2_HYD=RX4d3a0*X8bcc
28=OVH_ELEC2=RX4cc20*X8bcc
29=OVH_EMERLT_DN=RX4d520*Xe8cc
30=OVH_EMERLT_UP=RX4d520*Xe8cc,31
31=OVH_ENG1_ANTI=RX4d3e0*X8bcc
32=OVH_ENG1_HYD=RX4d380*X8bcc
33=OVH_ENG2_ANTI=RX49110*X8bcc
34=OVH_ENG2_HYD=RX4d3e0*X8bcc
35=OVH_FLTALT_DEC=RX491b0*X8bcc
36=OVH_FLTALT_INC=RX491b0*X8bcc,31
37=OVH_GEN1=RX48fd0*X8bcc
38=OVH_GRDPWR=RX4cb90*X8bcc,31
39=OVH_IFEPAS=RX4c9b0*X8bcc
40=OVH_IGN1_LEFT=RX4dfc0*X8bcc
41=OVH_IGN2_RT=RX4dfc0*X8bcc,31
42=OVH_ISO_DN=RX4da90*X8bcc
43=OVH_ISO_UP=RX4da90*X8bcc,31
44=OVH_LANDALT_DEC=RX491f0*X8bcc
45=OVH_LANDALT_INC=RX491f0*X8bcc,31
46=OVH_LNDGLT_ALLOFF=RX4ddc0*X8bcc,31
47=OVH_LNDGLT_ALLON=RX4de30*Xa1cc
48=OVH_LOGOLT=RX4e000*X8bcc
49=OVH_LPACK_DN=RX4da70*X8bcc
50=OVH_LPACK_UP=RX4da70*X8bcc,31
51=OVH_LWIPER_CCW=RX48ff0*X8bcc
52=OVH_LWIPER_CW=RX48ff0*X8bcc,31
53=OVH_MASTER_DN=RX4cab0*Xe8cc
54=OVH_MASTER_UP=RX4cab0*Xe8cc,31
55=OVH_PRBHT1=RX490b0*X8bcc
56=OVH_PRBHT2=RX4d2a0*X8bcc
57=OVH_PUMP_CTR1=RX4cdc0*X8bcc
58=OVH_PUMP_CTR2=RX4cde0*X8bcc
59=OVH_PUMP1_AFT=RX4cd60*X8bcc
60=OVH_PUMP1_FWD=RX4cd40*X8bcc
61=OVH_PUMP2_AFT=RX4cda0*X8bcc
62=OVH_PUMP2_FWD=RX4cd80*X8bcc
63=OVH_RND_PWR=RX4cb90*X8bcc
64=OVH_RPACK_DN=RX49150*X8bcc
65=OVH_RPACK_UP=RX49150*X8bcc,31
66=OVH_RUNTRN_L=RX4df20*X8bcc
67=OVH_RUNTRN_R=RX4df40*X8bcc
68=OVH_SEATBELT_OFF=RX4d590*X8bcc,31
69=OVH_SEATBELT_ON=RX4d590*X8bcc
70=OVH_STBYPWR_LF=RX4cb40*Xe8cc
71=OVH_STBYPWR_RT=RX4cb40*Xe8cc,31
72=OVH_STROBE_DN=RX4e020*X8bcc
73=OVH_STROBE_UP=RX4e020*X8bcc,31
74=OVH_TAXI=RX4df60*X8bcc
75=OVH_TRIMAIR=RX4d880*X80cc
76=OVH_TRIPRESET=RX49510*X8bcc
77=OVH_WHEEL_LT=RX4e080*X8bcc
78=OVH_WIN_OHT=RX4d280*X8bcc,31
79=OVH_WIN_PT=RX4d280*X8bcc
80=OVH_WING_AI=RX490d0*X8bcc
81=OVH_WING_LT=RX4e060*X8bcc
82=OVH_WINHT_LF=RX4d240*X8bcc
83=OVH_WINHT_LS=RX4d220*X8bcc
84=OVH_WINHT_RF=RX49090*X8bcc
85=OVH_WINHT_RS=RX4d260*X8bcc
86=OVH_YAWD=RX48e10*X8bcc

Share this post


Link to post
Share on other sites

Just noticed my typo in the last post ..... [Macros]

0_P739W_EFIS.MCRO should be 0_P738W_EFIS.MCRO (it can be called whatever you want.. just didn't want to leave it that way)

Ed F.

Share this post


Link to post
Share on other sites

Just noticed my typo in the last post ..... [Macros]

0_P739W_EFIS.MCRO should be 0_P738W_EFIS.MCRO (it can be called whatever you want.. just didn't want to leave it that way)

I've edited it for you.

Pete.. What is the max number of macro steps allowed?

If you mean number of macros per file, it was until recently limited more by the actual file size -- until recent updates a large enough MCRO file (over 16k, approaching 32k) caused a memory problem in FSUIPC which stopped everything else working. That was fixed in one of the recent interim updates.

The inbuilt limits are 255 files, each with up to 1023 macro lines. That's to do with internal reference encoding. The whole system was bolted into the general joystick button assignment and messaging system which only gives room for 32-bits for the encoded assignment. This is defined by the Windows messaging system for "WM_COMMAND" which has a 32-bit "wParam" and a 32-bit "lParam". The wParam holds the command encoding and the lParam the parameter value. In this I have to allow for Lua calls, Macro calls, FSUIPC added controls, Offset controls, and of course all of the possible FS and add-on controls.

I'd hoped it would be enough forever! ;-)

Regards

Pete

Share this post


Link to post
Share on other sites

Quick question, since I'm trying to get a macro file for the Collins MCP going....

These MCRO files here are using the DLL, but in the documentation, it looks like we can use a .GAU file? So if it loaded the Honeywell .GAU it could use one set, and the Collins .GAU another?

Assuming there is one, of course, I haven't actually checked.

Share this post


Link to post
Share on other sites

These MCRO files here are using the DLL, but in the documentation, it looks like we can use a .GAU file?

Whether it's a GAU or a DLL which is called isn't your choice, but depends only on where the mouse click leads to in the code.

If the same DLL is used for both MCPs then they will probably be calling different entry points, so you should be able to create macros for both in the same Macro file -- just give them different names.

Regards

Pete

Share this post


Link to post
Share on other sites

Whether it's a GAU or a DLL which is called isn't your choice, but depends only on where the mouse click leads to in the code.

If the same DLL is used for both MCPs then they will probably be calling different entry points, so you should be able to create macros for both in the same Macro file -- just give them different names.

Regards

Pete

Alright, that makes sense, thanks.

I'm trying it now, but some button clicks aren't recognized. For example, clicking on any of the MCP buttons or using the wheel on the roatries doesn't come up with anything in the logs. Obviously there's a way to get those, since edfair has them from the Honeywell....

EDIT: Sorry I'm asking so amny questions, I'm just trying to learn how to do this so I can contribute as well.

EDIT2: Oh! If I use it in 2D mode it works much better.

Share this post


Link to post
Share on other sites

Pete,

A note of caution about the macros I just posted. It may be premature to post them ... while the program is still in some state of flux. I had a problem recently with FSX crashing on startup. Following the advice on the PMDG website I installed their hotfix. It appeared to resolve my system crash issue...... BUT .......

Upon returning to my original setup, everything looked to be in order until I tried to use my equipment - MCP, EFIS, OVH. When I looked in FSUIPC all of the button assignments were unchanged. My Throttle CH Quad, CH Yoke, CH Pedals and Saitek Radio were fine. Assignments came up OK in FSUIPC when I pressed the associated buttons. I went back with FSUIPC to create a new Mouse macro file and lo and behold the returned values were all different. Apparently the associated .dll file was changed by the hotfix.

RED FLAG - anyone who has applied the same hotfix may fined my macros useless!! Apologies to anyone whose time I wasted...

Maybe it's best to have the program stabilize prior to widely disseminating macros. Anybody out there experienced problems of this sort?

Comments?

Ed Fairchild

Share this post


Link to post
Share on other sites

Upon returning to my original setup, everything looked to be in order until I tried to use my equipment - MCP, EFIS, OVH. When I looked in FSUIPC all of the button assignments were unchanged. My Throttle CH Quad, CH Yoke, CH Pedals and Saitek Radio were fine. Assignments came up OK in FSUIPC when I pressed the associated buttons. I went back with FSUIPC to create a new Mouse macro file and lo and behold the returned values were all different. Apparently the associated .dll file was changed by the hotfix.

Yes, I'm afraid there's no solution to that except to re-make all the macros. The recompiled code only has to have the entry points moved one byte and they obviously can't call the same code.

You probably need to note the DLL or GAU version or date with them. They shouldn't do any harm used with the wrong version -- that's what the check bytes are for in the macro encoding. FSUIPC checks that the bytes at the place it calls are the same, and if not it won't call the code.

Regards

Pete

Share this post


Link to post
Share on other sites

Thanks for sharing the macros you have created. I have a dumb question about setup within FSUIPC. My GoFlight EFIS has each range increment a seperate button. How do I pass that I want the macro to execute n times within FSUIPC - like to get from APP to Plan it is 3 CW clicks from APP? I have tried setting incremental values in the parameter field but no luck.

I am new on this learning curve.

Thanks

Kevin

Share this post


Link to post
Share on other sites

Hello,

I'm quite new in the "FSUIPC" world....and really enjoy this wonderfull soft. I'm actually trying to understand how I can use my new MCP Combo II Boeing version. Concerning the macros posted here by edfair, I would like to know if they work also in 3D/virtual cockpit ?

And more generaly: the macros created with FSUIPC did they also work in any cirtual cockpit ?

Thanks a lot for your help. (my english is bad...sorry....not my mother langage)

Cedric

Share this post


Link to post
Share on other sites

I'm quite new in the "FSUIPC" world....and really enjoy this wonderfull soft. I'm actually trying to understand how I can use my new MCP Combo II Boeing version. Concerning the macros posted here by edfair, I would like to know if they work also in 3D/virtual cockpit ?

I thought that was the only cockpit you got with the PMDG 737NGX? If not, surely no one is using the 2D one?

And more generaly: the macros created with FSUIPC did they also work in any cirtual cockpit ?

Mouse Macros have to be specifically made for each version of each cockpit, because they depend upon finding the actual place in the Gauge code to be called when used. Even a small update by the originator can render them useless, necessitating a remake. They are a type of "hack" into the code in the gauges.

Pete

Share this post


Link to post
Share on other sites

Mouse Macros have to be specifically made for each version of each cockpit, because they depend upon finding the actual place in the Gauge code to be called when used. Even a small update by the originator can render them useless, necessitating a remake. They are a type of "hack" into the code in the gauges.

Pete

Peter,

This is my first post here though I've been using your invaluable FSUIPC for a number of years now. Reading the above, I'm just wondering if some users could look at using FSX controls through FSUIPC via a Lua plug-in ? No need to worry about mouse co-ordinates that way. For me it's been like a gift from heaven (OK, perhaps this should read "from somewhere near Stoke-on-Trent" :grin:).

With some help I managed to track down the FSX controls that activate the CDU buttons in the PMDG NGX. From there, after reading your FSUIPC docs, I managed to create a simple Lua plugin that depending upon what's in ipcparam, will use ipc.control to send the desired control to FSX that will operate the desired button of the PMDG NGX CDU. The reason why I chose to embark on a learning curve and do things this way, was that unlike with the PMDG B1900D and the Level-D 763, for which your mouse macro creation facility worked like a charm, I had no such luck with the PMDG NGX.

FYI I am turning 59 next month so learning new stuff takes longer than it used to, but I enjoyed it and thought it might be worthwhile sharing.

Cheers,

Emile.

Share this post


Link to post
Share on other sites

Reading the above, I'm just wondering if some users could look at using FSX controls through FSUIPC via a Lua plug-in ? No need to worry about mouse co-ordinates that way.

Actually, there are no screen coordinates involved at all. The reason they need regenerating for updated software or different models with different gauges is that the internal code in those gauges changes and so the address in memory of the routines being called changes.

FSUIPC's mouse macros call gauge or DLL code directly. They are called "mouse macros" because the position in code being called is determined when a real mouse click is processed internally.

Of course generally there is no need for a Lua plug-in to send FSX controls, only non-standard ones like those used in the PMDG 737NGX as you have found. But as far as I know that is the first and so far only aircraft add-on to implement things in such a fashion. If it became a common thing to do I'd probably look at adding ways of assigning them in the FSUIPC dialogue too, presumably then by number instead of name.

Regards

Pete

Share this post


Link to post
Share on other sites

Dear Ed Fairchild ,

 

i tryed to use your macros after the fix and as it has been mentioned they are not working for the reason Pete expalined.

Did  you redo the macros afetr that ?

May i have the one for the overhead in this case ?

 

Thanks in advance

Ciao

Claudio

Share this post


Link to post
Share on other sites
i tryed to use your macros after the fix and as it has been mentioned they are not working for the reason Pete expalined.

Did  you redo the macros afetr that ?

May i have the one for the overhead in this case ?

 

You're a bit behing the times. If your 737NGX is up to date, then all the controls you need are already available without macros. Just check the Event list at the end of the .h document installed in your NGX SDK folder. You can assign them by number in any recent version of FSUIPC.

 

Regards

Pete

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.