Jump to content
COMBATSIM Forum

EF2000 Reloaded


Home Fries
 Share

Recommended Posts

Looks like to B-2s in formation😉.

Yes at lower resolutions it doesn't appear to be just a pixel, but for some reason it looks like one at hires. With the natural resolution of 640x400 you can easily spot those "dots" from around 10 nm or so. At 1920x1080 which is my screen's resolution I can hardly see an aircraft beyond 1 nm. At some contrasts a small black dot is visible occassionally at somewhat larger ranges, but even when dogfighting you only know where the enemy is through padlocking or because the TD box tells you where it is. I used the custom aircombat mode day time and good whether with a headon encounter starting at 12 nm for these tests. However, where I noticed this first time was in the campaign when I tried to take out the A/C parked on the tarmac using the gun. The flight uses a single grey color tone only and aircraft typically appeared as clearly visible black dots at dome distance so you could take out 3 or so aircraft in a single strafing run. With the high resolution these dots appeared at such a short range that the most realistic prospect to kill just a single target was to approximately memorise its position and aim for it before it was actually visible, literarely at the last moment.

 

Is there anything useful you can make out of the extracted files? Always wondered whether at least minor tweaks were potentially possible.

Link to comment
Share on other sites

  • Replies 204
  • Created
  • Last Reply

Top Posters In This Topic

On 4/8/2020 at 7:32 PM, Scorpion82 said:

Is there anything useful you can make out of the extracted files? Always wondered whether at least minor tweaks were potentially possible.

Probably not unless there is a complete terrain texture swap as was done for TAW 2.0. :(

 

 

 

 

Link to comment
Share on other sites

On 4/16/2020 at 1:34 PM, Scorpion82 said:

I was more thinking sbout editing minor aspects of the simulation itself through some data edits. Basically what is possible without real programming.

 

Why re-invent the square when you should be looking elsewhere? There are useful tweaks in the extracted files and yet the executables are more furtile ground. A lot has been done to give access to the data files and still the best approach for quick and easy, more robust modifications, with disassembly at most (no programming), involves looking at the executable.  With this method there is no need to define functions specifically or know the calculations and / or uninitialized data or floats, simple schoolyard logic is the guide.

 

Although most of my free Covid-time spent on this methods analysis has been utilized on TAW, the principals can be ported and applied to EF2000 V2.0.

I'll use the weapons domain as an example to demonstrate.
 
In EF2000, as in TAW, the DATA segment (Pure Data) for weapons as viewed in disassembly finds each with a block of identical length.
TAW weapons have 159 addresses while EF2k has but 145. Here I will give 2 examples: In TAW position #93 (EF2k = #50) contains the integer data for default weapons configurations for external stores.
In EF2k the default code values are 00, 0F, 30, F0, FC and FF.
In EF2000 Campaign the game limits AMRAAM loads to a max. of 10 (code = FC), however, edit to FF and each aircraft gets 12.

 

Code = FC

FC-640-480.jpg.60ddb3ba5d5437f2d4dc85ba0786a79b.jpg

 

Code = FF

FF-640-480.jpg.d7d99407c0de603a69a34d93ec4f60fc.jpg

 

*In TAW, the game limits HARM loadouts to 4 per AC, Code change gives each AC 16!

 

In TAW the JDAM has the greatest standoff capacity of ~10 NM, still in sphincter-pucker distance. Simply substituting the code from the unused Tomahawk Cruise Missiles for that of the JDAM, at Positions #106 and #107,  and it is converted to a JDAM-ER with an extended standoff range of ~60 NM!
In-game the JDAM targets normally, maintains its accuracy and lethaiity, only with additional range. If your Escorts can get you within 60 NM of the target you simply need to know the communication commands to order the return and hope for clear skies...

 

Code = A0F0

JDAM-640-480.jpg.0518a26169a77b6b3330fced93696a37.jpg

 

...GAME CHANGER !

Link to comment
Share on other sites

  • 6 months later...

I have only some uncertainties regarding the campaign and the environment.
Maybe some old simmer can help to find out the truth.

Here are what the manual of the game states.

 

https://i.imgur.com/plHNHuH.png

https://i.imgur.com/MO5o8eU.png

 

Only problem I have never been able to find any combat units on the map.

No tanks, no trucks, no arty, only SAMs, ships and airplanes.

In a mission in simulator part (Tanks mission) I can see A-10 and combat units and they are attacked but this is the only case.
Did I miss something in the campaign? I have never seen generated for AI units BAI mission while in the simulator --> tanks mission there is such thing.

I also never saw any helos in campaign only in simulator part.

https://i.imgur.com/0nzg0zT.png

 

I'm speaking about this mission above.

https://youtu.be/vvMb1bVBYMU

 

Is there any chance that a developer of the Reloaded can answer to me on more specific questions? 

Link to comment
Share on other sites

Ground combat isn't simulated in the EF2000 environment. WARGEN holds account of ground units in its statistics, which is visible in the related txt file maintaining a record of the campaign. In the campaign there are no ground units in the 3D world as you have recognised already, except for ships and airdefenses. The tanks/vehicles in some scripted simulator and quick combat missions IIRC are only static targets.

 

I think the revive tool allows you to at least swap aircraft types on airbases in the campaign, but that's it. IIRC there are no transports in the campaign either.

Link to comment
Share on other sites

  • 5 months later...

I just wanted to say a VERY BIG THANK YOU!

 

This was and is my #1 favorite FlightSimLite and now I can play it again; whenever!

 

And I don't wanna promote my channel or something, I just wanted you guys and all visitors to know: you can play this old DOS game not only in 3dfx and with TrackIR, but also with Thrustmaster's Cougar MFDs!

https://youtu.be/-kzAoXyqA1k

 

And it's about as awesome as that sounds 🙂

Although some scripting was necessary... actually, quite a lot of tinkering tbh, because this is about what has to happen when pressing a MFD key (if there is no real keyboard button):

reset view (to get to a "known" point)
go to the respective MFD
hold down Ctrl
press the needed button
release Ctrol
reset view (needed, as often going directly into TrackIR/vfx1 view won't work)
vfx1 view

It's quite a wonder it works so well, but it doesn't work 100% unfortunately...

 

Cheers,

dlder

Link to comment
Share on other sites

Awesome indeed! :thumbsup:

 

I'm a bit biased, but that closed in murky weather effect is fantastic.

 

Apart from some transient artefacts, there's some problems:

1. That jitter that occurs sometimes. Looks to be some conflict between TrackIR and the game.

2. When zoomed in to a MFD, the area around the MFD is corrupt

3. There's a couple of rows of pixels at the bottom that are doing something strange.

I only really see these things when watching someone else's videos.  :)

 

Also, I'm not sure what resolution that screen is, but the further you go from the 16:10 aspect ratio, the more 'holes' there are in any on-screen text.

 

Since we're running under Dosbox, it might be possible to get tighter MFD integration. I don't have any experience with those devices though.

Link to comment
Share on other sites

Well, even if it would be possible to let Dosbox do the USB-DirectX-Button-xyz to Keyboard-Button conversion, you still need to set the "view port" to the respective MFD, as most ingame MFD buttons don't have a keyboard button associated...

I'm running at 3440x1440 (21:9), so that might be the problem... but I think I did try 1080p, especially because I cannot see targets really well. That's a real problem for ground targets, as I practically have to touch them with my nose to see 'em 🙂

 

Link to comment
Share on other sites

Small correction. All MFD soft keys have a keybind. Simply select the MFD you like (num keys 1, 2 or 3) and then press and hold CTRL. You will now see that the soft key legends show alphabetic characters. Simply press the respective character on your keyboard. 

 

My recommendation would be that you assign the MFD SK to the left one on the top row and the HOR SK to the right one. Use the buttons 2-4 for MFD selection (NUM1/2/3) and then you can assign the remaining keys as they appear.

 

You need to note the Characters and then assign CTRL+Character to your MFD button.

 

Tbh I don't owe the Cougar MFDs, but I would expect it to work that way.

Link to comment
Share on other sites

On 4/30/2021 at 2:03 PM, Scorpion82 said:

Small correction. All MFD soft keys have a keybind. Simply select the MFD you like (num keys 1, 2 or 3) and then press and hold CTRL. You will now see that the soft key legends show alphabetic characters. Simply press the respective character on your keyboard. 

 

My recommendation would be that you assign the MFD SK to the left one on the top row and the HOR SK to the right one. Use the buttons 2-4 for MFD selection (NUM1/2/3) and then you can assign the remaining keys as they appear.

 

You need to note the Characters and then assign CTRL+Character to your MFD button.

 

Tbh I don't owe the Cougar MFDs, but I would expect it to work that way.

 

Whom is this directed to, exactly?

 

Because I already have my 3 MFDs working perfectly, I just wanted to share my Target Script for someone else interested, but the forum won't let my upload anything other then pictures...

And I don't see any option to put a "spoiler" marker, so that this thread doesn't get cluttered too much when I post it directly 🙂

 

Thanks for trying to help though 😉

What I do still need to know: do you know of any way to do that in the game "F22 TAW"? I haven't found anything yet 😪

 

Link to comment
Share on other sites

I interpreted your statement "as most ingame MFD buttons don't have a keyboard button associated...'

 

as you being unaware of the moding. Only recognized retrospectively that you already figured it out.

 

I'm not aware of such moding in F-22 TAW.

 

 

 

Link to comment
Share on other sites

17 hours ago, Scorpion82 said:

I interpreted your statement "as most ingame MFD buttons don't have a keyboard button associated...'

as you being unaware of the moding. Only recognized retrospectively that you already figured it out.

Gotcha; English isn't my native language, so I might have phrased it not correctly.

 

17 hours ago, Scorpion82 said:

I'm not aware of such moding in F-22 TAW.

I fear as much 😭

 

17 hours ago, mikew said:

You could put the text into a "Quote" tag, so the forum stays tidy. Only recently found that out myself.

 

Thanks for contributing!

But that doesn't collapse, right? Anyway, I'll do that then and... you're welcome 🙂

-> edit: ah, but it does collapse it on longer quotes; nifty!

 

Tbh, all thanks need to go to the people that bring back these wonderful games; kudos to all of you!

Link to comment
Share on other sites

Here's the "ef2000.tmc" script:

Quote

include "target.tmh"


// ********** Define Macros **********
// -----------------------------------
    define    virtual_view    PULSE+KP8, D(100), PULSE+L_ALT+F1
    define    mfd_left        PULSE+KP8, D(), PULSE+KP1, D()
    define    mfd_center        PULSE+KP8, D(), PULSE+KP2, D()
    define    mfd_right        PULSE+KP8, D(), PULSE+KP3, D()
    define    tiald_on        PULSE+KP8, D(), PULSE+'t', D()
    define    tiald_off        PULSE+KP8, D(), PULSE+'t', D(), PULSE+'t', D()
    define    wing_radar_off    PULSE+TAB, D(100), PULSE+'1', D(100), PULSE+'1'
    define    wing_radar_on    PULSE+TAB, D(100), PULSE+'1', D(100), PULSE+'2'
    define    wing_ecm_on        PULSE+TAB, D(100), PULSE+'1', D(100), PULSE+'3'
    define    wing_ecm_off    PULSE+TAB, D(100), PULSE+'1', D(100), PULSE+'4'
    define    wing_engage        PULSE+TAB, D(100), PULSE+'3', D(500), PULSE+TAB, D(100), PULSE+'3', D(100),  PULSE+'7'
    define    wing_disengage    PULSE+TAB, D(100), PULSE+'3', D(100), PULSE+'9'


// ********** Define Functions **********
// --------------------------------------
    int ChaffFlare;


// ********** Define Flags **********
// -----------------------------------
    
    
int main()
{
    // ********** Disable Hardware **********
        Configure(&HCougar, MODE_EXCLUDED);
        Configure(&Joystick, MODE_EXCLUDED);
        Configure(&JoystickF18, MODE_EXCLUDED);
        Configure(&Throttle, MODE_EXCLUDED);
        Configure(&A320Pilot, MODE_EXCLUDED);
        Configure(&A320Copilot, MODE_EXCLUDED);
        Configure(&TCAQuadrant12, MODE_EXCLUDED);
        Configure(&TCAQuadrant34, MODE_EXCLUDED);
        Configure(&T16000, MODE_EXCLUDED);
        Configure(&T16000L, MODE_EXCLUDED);
        Configure(&TFRPRudder, MODE_EXCLUDED);
        Configure(&TWCSThrottle, MODE_EXCLUDED);
        Configure(&TFRPHARudder, MODE_EXCLUDED);
    
    
    if(Init(&EventHandle)) return 1;
    
    
    // ********** Set Functions **********
        ChaffFlare =  CHAIN (
            LOCK+PULSE+INS, D(500),
            PULSE+DEL, D(500),
            PULSE+INS, D(500),
            PULSE+DEL, D(500),
            PULSE+INS, D(500),
            PULSE+DEL, D(500),
            PULSE+INS, D(500),
            PULSE+DEL,
            LOCK
        );


    // ********** Set Flags **********
    
    
    // ********** Pulse = 32ms, Delay = 50ms **********
        SetKBRate(32, 25);
        SetKBLayout(KB_GER);
    
    
// **********************************************************************
// ********** MFD 1 **********
        MapKey  (&LMFD, OSB01, 0);
        MapKey  (&LMFD, OSB02, 0);
        MapKey  (&LMFD, OSB03, 0);
        MapKey  (&LMFD, OSB04, 0);
        MapKey  (&LMFD, OSB05, 0);
//    ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&LMFD, OSB06, PULSE+'c');
        
        MapKey  (&LMFD, OSB07, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'h', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&LMFD, OSB08, PULSE+ENT);
        
        MapKey  (&LMFD, OSB09, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'j', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&LMFD, OSB10, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'k', D(), UP+L_CTL, D(), virtual_view, LOCK));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&LMFD, OSB11, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'q', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&LMFD, OSB12, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'p', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&LMFD, OSB13, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'o', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&LMFD, OSB14, 0);
        
        MapKey  (&LMFD, OSB15, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'m', D(), UP+L_CTL, D(), virtual_view, LOCK));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&LMFD, OSB16, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'f', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&LMFD, OSB17, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'e', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&LMFD, OSB18, PULSE+END);
        
        MapKey  (&LMFD, OSB19, PULSE+HOME);
        
        MapKey  (&LMFD, OSB20, SEQ (CHAIN (PULSE+'r', D(), wing_radar_off), CHAIN (PULSE+'r', D(), wing_radar_on)));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
//    extra (Chaff + Flare)
        MapKey  (&LMFD, SYMU, EXEC ("ActKey (PULSE+KEYON+ChaffFlare);"));
        MapKey  (&LMFD, SYMD, 0);
        
        MapKey  (&LMFD, CONU, 0);
        MapKey  (&LMFD, COND, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'l', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
//    extra (engage)
        MapKey  (&LMFD, BRTU, CHAIN (wing_engage));
//    extra (disengage)
        MapKey  (&LMFD, BRTD, CHAIN (wing_disengage));
        
        MapKey  (&LMFD, GAINU, CHAIN (LOCK+mfd_left, DOWN+L_CTL, D(), PULSE+'a', D(), UP+L_CTL, D(), virtual_view, LOCK));
        MapKey  (&LMFD, GAIND, 0);
    

// **********************************************************************
// ********** MFD 2 **********
        MapKey  (&CMFD, OSB01, 0);
        MapKey  (&CMFD, OSB02, 0);
        MapKey  (&CMFD, OSB03, 0);
        MapKey  (&CMFD, OSB04, 0);
        MapKey  (&CMFD, OSB05, 0);
//    ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
//    on-off / hold (map)
        MapKey  (&CMFD, OSB06, TEMPO (CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'g', D(), UP+L_CTL, LOCK), CHAIN (LOCK+mfd_center, LOCK), 500));
        MapKeyR (&CMFD, OSB06, CHAIN (LOCK+virtual_view, LOCK));
        
        MapKey  (&CMFD, OSB07, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'h', D(), UP+L_CTL, D(), virtual_view, LOCK));

        MapKey  (&CMFD, OSB08, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'i', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&CMFD, OSB09, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'j', D(), UP+L_CTL, D(), virtual_view, LOCK));

//    switch (tiald) # activating TIALD with the 't' key will always activate and switch to the MFD! This means we can use SEQ to enable/disable TIALD.
        MapKey  (&CMFD, OSB10, SEQ (CHAIN (tiald_on), CHAIN (tiald_off, virtual_view)));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&CMFD, OSB11, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'q', D(), UP+L_CTL, D(), virtual_view, LOCK));

        MapKey  (&CMFD, OSB12, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'p', D(), UP+L_CTL, D(), virtual_view, LOCK));

        MapKey  (&CMFD, OSB13, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'o', D(), UP+L_CTL, D(), virtual_view, LOCK));

        MapKey  (&CMFD, OSB14, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'n', D(), UP+L_CTL, D(), virtual_view, LOCK));

        MapKey  (&CMFD, OSB15, CHAIN (LOCK+mfd_center, PULSE+'j', D(), virtual_view, LOCK));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&CMFD, OSB16, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'f', D(), UP+L_CTL, LOCK));

        MapKey  (&CMFD, OSB17, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'e', D(), UP+L_CTL, LOCK));

        MapKey  (&CMFD, OSB18, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'d', D(), UP+L_CTL, LOCK));

        MapKey  (&CMFD, OSB19, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'c', D(), UP+L_CTL, LOCK));

        MapKey  (&CMFD, OSB20, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'b', D(), UP+L_CTL, LOCK));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&CMFD, SYMU, 0);
        MapKey  (&CMFD, SYMD, 0);

        MapKey  (&CMFD, CONU, 0);
        MapKey  (&CMFD, COND, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'l', D(), UP+L_CTL, D(), virtual_view, LOCK));

        MapKey  (&CMFD, BRTU, 0);
        MapKey  (&CMFD, BRTD, 0);

        MapKey  (&CMFD, GAINU, CHAIN (LOCK+mfd_center, DOWN+L_CTL, D(), PULSE+'a', D(), UP+L_CTL, D(), virtual_view, LOCK));
        MapKey  (&CMFD, GAIND, 0);


// **********************************************************************
// ********** MFD 3 **********
        MapKey  (&RMFD, OSB01, 0);
        MapKey  (&RMFD, OSB02, 0);
        MapKey  (&RMFD, OSB03, 0);
        MapKey  (&RMFD, OSB04, 0);
        MapKey  (&RMFD, OSB05, 0);
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
//    hold (engines)
        MapKey  (&RMFD, OSB06, CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'g', D(), UP+L_CTL, LOCK));
        MapKeyR (&RMFD, OSB06, CHAIN (LOCK+virtual_view, LOCK));
        
//    hold (stores)
        MapKey  (&RMFD, OSB07, CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'h', D(), UP+L_CTL, LOCK));
        MapKeyR (&RMFD, OSB07, CHAIN (LOCK+virtual_view, LOCK));
        
//    hold (fuel)
        MapKey  (&RMFD, OSB08, CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'i', D(), UP+L_CTL, LOCK));
        MapKeyR (&RMFD, OSB08, CHAIN (LOCK+virtual_view, LOCK));
        
//    hold (systems)
        MapKey  (&RMFD, OSB09, CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'j', D(), UP+L_CTL, LOCK));
        MapKeyR (&RMFD, OSB09, CHAIN (LOCK+virtual_view, LOCK));
        
//    on-off / hold (ap setup)
        MapKey  (&RMFD, OSB10, TEMPO (CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'k', D(), UP+L_CTL, D(), virtual_view, LOCK), CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'k', D(), UP+L_CTL, LOCK), 750));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&RMFD, OSB11, CHAIN (LOCK+DOWN+L_CTL, D(), PULSE+'q', D(), UP+L_CTL, LOCK));
        
        MapKey  (&RMFD, OSB12, CHAIN (LOCK+DOWN+L_CTL, D(), PULSE+'p', D(), UP+L_CTL, LOCK));
        
        MapKey  (&RMFD, OSB13, CHAIN (LOCK+DOWN+L_CTL, D(), PULSE+'o', D(), UP+L_CTL, LOCK));
        
        MapKey  (&RMFD, OSB14, PULSE+L_ALT+'a');
        
        MapKey  (&RMFD, OSB15, PULSE+'a');
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&RMFD, OSB16, 0);

        MapKey  (&RMFD, OSB17, SEQ (CHAIN (PULSE+'e', D(), wing_ecm_on), CHAIN (PULSE+'e', D(), wing_ecm_off)));
        
        MapKey  (&RMFD, OSB18, PULSE+L_ALT+END);
        
        MapKey  (&RMFD, OSB19, PULSE+L_ALT+HOME);
//    switch+hold (dass)
        MapKey  (&RMFD, OSB20, CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(25), PULSE+'j', D(25), UP+L_CTL, D(), PULSE+'d', LOCK));
        MapKeyR (&RMFD, OSB20, CHAIN (LOCK+virtual_view, LOCK));
//     ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
        MapKey  (&RMFD, SYMU, 0);
        MapKey  (&RMFD, SYMD, 0);
        
        MapKey  (&RMFD, CONU, 0);
        MapKey  (&RMFD, COND, CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'l', D(), UP+L_CTL, D(), virtual_view, LOCK));
        
        MapKey  (&RMFD, BRTU, 0);
        MapKey  (&RMFD, BRTD, 0);
        
        MapKey  (&RMFD, GAINU, CHAIN (LOCK+mfd_right, DOWN+L_CTL, D(), PULSE+'a', D(), UP+L_CTL, D(), virtual_view, LOCK));
        MapKey  (&RMFD, GAIND, 0);
}

int EventHandle(int type, alias o, int x)
{
    DefaultMapping(&o, x);
}
 

 

 

Some infos:

  • I've added three more buttons:
    • an automatic chaff/flare program on LMFD-SYMU (just to test the programming of it; I never use it though)
    • an "engage" and "disengage" button for my wingman on LMFD-BRTU/D
  • When you en-/disable radar or ECM, you tell your wingman to do that too (which is really handy!)
    • there is one problem though: I don't know of an (automatic) way to "reset" this state
    • meaning if you for instance end the mission with radar off, you'll start with radar on in the next mission; as per default
    • but when you want to disable the radar (because AWACS is available), you'll tell your wingman to switch radar on, because "script wise", this is the next step in the sequence... :(
  • Going back to the VFX1 view rarely hangs on the "reset view" phase; that's why I still have button on my HOTAS bound to Alt+F1 (maybe I should try it without resetting to F1 again, but that doesn't work 100% either...)

Cheers!

Link to comment
Share on other sites

  • 1 month later...

Has anyone been successful running EF2000 Reloaded under a virtual machine?

 

I'm on Mac, and trying to setup a Virtual Box running Windows XP, installed with EF2000 2.0 for 3DFX and EF2000 Reloaded. Getting an error saying "invalid procedure call or argument" when trying to launch EF2000. Suggestions how to proceed - if possible at all?

 

Edit: I have a dosbox running on Mac with EF2000 (first version), perhaps possible to either re-build the Reloaded dosbox for Mac? Or, can I simply replace the original files with the 2.0 version? 

Link to comment
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.

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.

 Share


×
×
  • Create New...