Jump to content

Recommended Posts

  • 3 weeks later...
  • Replies 784
  • Created
  • Last Reply

Top Posters In This Topic

Posted

My lcds were delivered today,so I was able to set everything up and test how they would work in combination with the Cougar MFD pack and LEAVU2 software.

I made a video,to show that it works.

 

on youtube:

 

http://www.youtube.com/watch#videos=5NKgjMX9UC4&v=7H3S1GTro0E

  • Like 1

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted
My lcds were delivered today,so I was able to set everything up and test how they would work in combination with the Cougar MFD pack and LEAVU2 software.

I made a video,to show that it works.

 

on youtube:

 

http://www.youtube.com/watch#videos=5NKgjMX9UC4&v=7H3S1GTro0E

 

Looks like the Cougar MFD with some LCDs were made for LEAVU. Yoda you should get TM to include your software :) Very nice option for home pits.

Posted

Thank you Schizwiz for making the videos! :)

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted
Thank you Schizwiz for making the videos! :)

No problem,thank you for making the software:)

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted

I've made a small update to the leavu2 program.

As you can notice in the videos by Schizwiz the previous version repeated key input

to an OSB button if it was held down. This is now solved in the new version.

 

Schizwiz you can download from the normal link

http://yoda.reservoirselite.com/leavu2.zip if you want to try it!

  • Like 1

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted

excellent to hear there is still progress, I cant wait to see this done.

Hornet, Super Carrier, Warthog & (II), Mustang, Spitfire, Albatross, Sabre, Combined Arms, FC3, Nevada, Gulf, Normandy, Syria AH-6J

i9 10900K @ 5.0GHz, Gigabyte Z490 Vision G, Cooler Master ML120L, Gigabyte RTX3080 OC Gaming 10Gb, 64GB RAM, Reverb G2 @ 2480x2428, TM Warthog, Saitek pedals & throttle, DIY collective, TrackIR4, Cougar MFDs, vx3276-2k

Combat Wombat's Airfield & Enroute Maps and Planning Tools

 

cw1.png

Posted

Hi,

First of all, despite all opinions about possible cheating or "cheating", I have to say that I can only admire Yoda for his work!

Also, I would like to say that only making public all info about such work can truly prevent cheating and develop cheating protection. Just imagine if there is Yoda from Dark side that posses equal knowledge, but is using it in secret. Now, that would be a true cheating!

I hope that this discussion, in measured tones of course, will help us to push ED to develop dedicated server, as I believe that such fetature is the only way to control data flow and prevent cheating.

 

Now, back to the topic...

I did my best to read carefully everything in this topic, and I have few questions:

 

1. If I understood correctly, LEAVU uses two links: sim link and data link. How is each of them dependent to LUA export od server? Meaning, what happens if server disables or enables export?

2. In relation to above, in FC2, will there be an option to regulate which data will be exported, or will is it going to be "all or nothing"?

3. Can LEAVU work with FC112? (I'm not impatient, just curious.)

4. Can LEAVU work with DCS:BS?

5. There is a link to Subversion Repository, but what files do I have to download to make LEAVU work?

6. Have you considered joining up your effort with LOVP project? There are already some finished 3D instruments for DCS.

7. How can we help with project?

8. How can I create additional instruments? For example, aircraft configuration panel from Su-25T (gear, flaps, airbrakes).

9. Do you have any plans to create external Shkval screen, or dou you know if in FC2 it could be solved as in DCS, via expanded desktop?

 

Thanks in advance and keep up with good work!

I'm selling MiG-21 activation key.

Also selling Suncom F-15E Talon HOTAS with MIDI connectors, several sets.

Contact via PM.

Posted
I've made a small update to the leavu2 program.

As you can notice in the videos by Schizwiz the previous version repeated key input

to an OSB button if it was held down. This is now solved in the new version.

 

Schizwiz you can download from the normal link

http://yoda.reservoirselite.com/leavu2.zip if you want to try it!

 

 

I downloaded the update.It is solved ;)

thnx

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted
Hi,

First of all, despite all opinions about possible cheating or "cheating", I have to say that I can only admire Yoda for his work!

Also, I would like to say that only making public all info about such work can truly prevent cheating and develop cheating protection. Just imagine if there is Yoda from Dark side that posses equal knowledge, but is using it in secret. Now, that would be a true cheating!

I hope that this discussion, in measured tones of course, will help us to push ED to develop dedicated server, as I believe that such fetature is the only way to control data flow and prevent cheating.

 

Now, back to the topic...

I did my best to read carefully everything in this topic, and I have few questions:

 

1. If I understood correctly, LEAVU uses two links: sim link and data link. How is each of them dependent to LUA export od server? Meaning, what happens if server disables or enables export?

2. In relation to above, in FC2, will there be an option to regulate which data will be exported, or will is it going to be "all or nothing"?

3. Can LEAVU work with FC112? (I'm not impatient, just curious.)

4. Can LEAVU work with DCS:BS?

5. There is a link to Subversion Repository, but what files do I have to download to make LEAVU work?

6. Have you considered joining up your effort with LOVP project? There are already some finished 3D instruments for DCS.

7. How can we help with project?

8. How can I create additional instruments? For example, aircraft configuration panel from Su-25T (gear, flaps, airbrakes).

9. Do you have any plans to create external Shkval screen, or dou you know if in FC2 it could be solved as in DCS, via expanded desktop?

 

Thanks in advance and keep up with good work!

 

1. Unlike what is thought by most, the Lockon mp server cannot disable lua export.

However it can disable Global exports. What are these? :

Global exports are data exported from lockon on all units in a mission

Local exports are data exported from lockon on your own aircraft and instruments,

and can indirectly include information on opponents like what is on my radar screen.

Answer: LEAVU2 relies only on local exports, so turning off global exports has no

effect at all.

 

2. Only ED can decide what data can be exported from Lockon.

At this point the server host has only 1 setting : turning off the global exports.

In DCS and FC2 ( unlike Fc 1.12 ), there is also a CRC checksum test for any file the

server wants to set up. It is therefor possible to indirectly force a standard version of the

lua export script, but anyone attempting to join the server must then beforehand download

this export script and install into their game folder.

 

3. First we must make a difference between LEAVU and LEAVU2. LEAVU is a previous

software I wrote which runs exclusively on FC 1.12 using global exports. The reasons for

using global exports will be explained below.

LEAVU2 will never fully work in FC 1.12, there are three reasons.

The first is that I have not written a data export script for FC 1.12.

The second is that FC 1.12 do not have the required export functions that LEAVU2 needs

The third is that some of the export functions in FC 1.12 have bugs preventing us from

using them, but this has been fixed in DCS/FC2.

It MAY be possible to get minor LEAVU2 functionality in FC 1.12 by using global exports

workarounds, if someone is willing to write that export script.

 

4. If someone writes an export script? Sure, it will work with any sim.

 

5. Currently only the LEAVU2 java and lua source codes are available in the SVN repository.

The repository is provided for team co-development, and if you want to view the source

code. If you want to try out the leavu2 framework or want to add something to the source

code, please PM me.

 

6. No, but if they want to they are free to join Leavu2, if they want to ;) ( I guess they prob dont ).

 

7. LEAVU2 can basically read any information on your own aircraft, so what we need are

actual 3D models and people with knowledge in JAVA and OpenGL/JOGL programming.

 

8. 3D models for the instruments you want, and make sure the models work well in different

scales, so they must be vector based and not just a 2D rasterized image.

 

9. Well I dont know if you can export actual monitor data for FC2. In DCS you can use the

shared memory interface to export a texture object from the ingame monitors, but I have

not investigated if the possibility exists in FC2.

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted

wow, nice project Yoda, keep it going!. I just ordered Cougar MFD and am working on getting perfect LCD for it

Maximus, The only real Maximus in DCS World. :music_whistling:

 

I am not associated to viper 33 | Maximus. he is the imposter.

Posted (edited)
wow, nice project Yoda, keep it going!. I just ordered Cougar MFD and am working on getting perfect LCD for it

 

You can always put a larger LCD behind it and have leavu ( or the program you use ) to render to only part of the screen. I will likely do that, those small LCDs are so expensive.... Basically cheaper buying a 22" than a 14" :P, and with a 22" you can fit 2 sets of buttons on top!

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted

Yoda, thanks immensely for your detailed reply!

 

per points:

1 - OK

2 - I see. This is quite unpractical. I hope that ED will develop some feature to upload/download these scripts. I think that could also help easy any suspicions on cheating.

3 - Oh, I missed that point somewhere in bunch of discussion here. I was thinking more along the line if I can test LEAVU with FC112.

4 - I understand

5 - Thanks, but I do not think that I'm skilled enough. I do not want to impose myself unnecessary. Maybe later, when FC2 comes out. I hope that I will be able to recruit my buddies to pitch in.

6 - Pitty. It would be great to have several great minds on one project :)

7, 8 - I Understand. Hm, I'll try to learn something about that.

9 - OK

 

Well, thanks again. I guess I have some learning to do. This is quite interesting stuff you work on!

I'm selling MiG-21 activation key.

Also selling Suncom F-15E Talon HOTAS with MIDI connectors, several sets.

Contact via PM.

Posted (edited)
Yoda, thanks immensely for your detailed reply!

 

per points:

1 - OK

2 - I see. This is quite unpractical. I hope that ED will develop some feature to upload/download these scripts. I think that could also help easy any suspicions on cheating.

3 - Oh, I missed that point somewhere in bunch of discussion here. I was thinking more along the line if I can test LEAVU with FC112.

4 - I understand

5 - Thanks, but I do not think that I'm skilled enough. I do not want to impose myself unnecessary. Maybe later, when FC2 comes out. I hope that I will be able to recruit my buddies to pitch in.

6 - Pitty. It would be great to have several great minds on one project :)

7, 8 - I Understand. Hm, I'll try to learn something about that.

9 - OK

 

Well, thanks again. I guess I have some learning to do. This is quite interesting stuff you work on!

 

3. I'll consider writing an export script for FC 1.12 and Leavu2, but it cannot have the functions that FC2

does due to less lua exports available compared to DCS engine.

You could also just load Leavu1 which was always made to run for fc1.12, but ofc, it has much less

functionality than leavu2+FC2.

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted
You can always put a larger LCD behind it and have leavu ( or the program you use ) to render to only part of the screen. I will likely do that, those small LCDs are so expensive.... Basically cheaper buying a 22" than a 14" :P, and with a 22" you can fit 2 sets of buttons on top!

 

that's very true, i have samsung 20" monitor. but it gonna to be too big for those little MFD... let's see when i get those MFD into my hand. and I am waiting for www.simw.com to ship that item out!

Maximus, The only real Maximus in DCS World. :music_whistling:

 

I am not associated to viper 33 | Maximus. he is the imposter.

Posted
3. I'll consider writing an export script for FC 1.12 and Leavu2, but it cannot have the functions that FC2

does due to less lua exports available compared to DCS engine.

You could also just load Leavu1 which was always made to run for fc1.12, but ofc, it has much less

functionality than leavu2+FC2.

 

Thanks, but truly, if FC2 is so close to be released, I do not see why should you bother. Just keep working on this one and keep us posted :thumbup:

 

About only thing that I dare to ask is functionality without the need for touchscreen. I cannot afford that :music_whistling:

 

Cheers!

I'm selling MiG-21 activation key.

Also selling Suncom F-15E Talon HOTAS with MIDI connectors, several sets.

Contact via PM.

Posted (edited)
Thanks, but truly, if FC2 is so close to be released, I do not see why should you bother. Just keep working on this one and keep us posted :thumbup:

 

About only thing that I dare to ask is functionality without the need for touchscreen. I cannot afford that :music_whistling:

 

Cheers!

 

Works fine without touch screen. Just put leavu2 instruments on

a separate monitor. You can click it with mouse or bind buttons to keystrokes.

 

Example of keybinding file for leavu MFD instrument:


## Example key bindings file for MFD1
## Syntax examples :
## callbackMessage  key
## callbackMessage  modifier1   modifier2   key
## callbackMessage  modifier1   modifier2   modifier3   modifier4   key

0   LCONTROL    LSHIFT  NUMBER0
1   LCONTROL    LSHIFT  NUMBER1
2   LCONTROL    LSHIFT  NUMBER2
3   LCONTROL    LSHIFT  NUMBER3
4   LCONTROL    LSHIFT  NUMBER4
5   LCONTROL    LSHIFT  NUMBER5
6   LCONTROL    LSHIFT  NUMBER6
7   LCONTROL    LSHIFT  NUMBER7
8   LCONTROL    LSHIFT  NUMBER8
9   LCONTROL    LSHIFT  NUMBER9
10  LCONTROL    LALT    NUMBER0
11  LCONTROL    LALT    NUMBER1
12  LCONTROL    LALT    NUMBER2
13  LCONTROL    LALT    NUMBER3
14  LCONTROL    LALT    NUMBER4
15  LCONTROL    LALT    NUMBER5
16  LCONTROL    LALT    NUMBER6
17  LCONTROL    LALT    NUMBER7
18  LCONTROL    LALT    NUMBER8
19  LCONTROL    LALT    NUMBER9

 

I include keybinding files for two MFDs by default.

If you want to bind more, you can create new keybinding files from the template above.

 

I currently have the following keyboard buttons included

 

package keyboard;

public class KeyCodes {

   public static final int MOUSE1 = 0x01,
           MOUSE2 = 0x02,
           CANCEL = 0x03,
           MOUSEMIDDDLE = 0x04,
           BACKSPACE = 0x08,
           CLEAR = 0x0C,
           ENTER = 0x0D,
           PAUSE = 0x13,
           CAPSLOCK = 0x14,
           ESC = 0x1B,
           SPACE = 0x20,
           PAGEUP = 0x21,
           PAGEDOWN = 0x22,
           END = 0x23,
           HOME = 0x24,
           LEFT = 0x25,
           UP = 0x26,
           RIGHT = 0x27,
           DOWN = 0x28,
           SELECT = 0x29,
           EXECUTE = 0x2B,
           INSERT = 0x2D,
           DELETE = 0x2E,
           NUMBER0 = 0x30,
           NUMBER1 = 0x31,
           NUMBER2 = 0x32,
           NUMBER3 = 0x33,
           NUMBER4 = 0x34,
           NUMBER5 = 0x35,
           NUMBER6 = 0x36,
           NUMBER7 = 0x37,
           NUMBER8 = 0x38,
           NUMBER9 = 0x39,
           A = 0x41,
           B = 0x42,
           C = 0x43,
           D = 0x44,
           E = 0x45,
           F = 0x46,
           G = 0x47,
           H = 0x48,
           I = 0x49,
           J = 0x4A,
           K = 0x4B,
           L = 0x4C,
           M = 0x4D,
           N = 0x4E,
           O = 0x4F,
           P = 0x50,
           Q = 0x51,
           R = 0x52,
           S = 0x53,
           T = 0x54,
           U = 0x55,
           V = 0x56,
           W = 0x57,
           X = 0x58,
           Y = 0x59,
           Z = 0x5A,
           LWIN = 0x5B,
           RWIN = 0x5C,
           NUMPAD0 = 0x60,
           NUMPAD1 = 0x61,
           NUMPAD2 = 0x62,
           NUMPAD3 = 0x63,
           NUMPAD4 = 0x64,
           NUMPAD5 = 0x65,
           NUMPAD6 = 0x66,
           NUMPAD7 = 0x67,
           NUMPAD8 = 0x68,
           NUMPAD9 = 0x69,
           NUMPADMULTIPLY = 0x6A,
           NUMPADADD = 0x6B,
           NUMPADSEPARATOR = 0x6C,
           NUMPADSUBTRACT = 0x6D,
           NUMPADDECIMAL = 0x6E,
           NUMPADDIVIDE = 0x6F,
           F1 = 0x70,
           F2 = 0x71,
           F3 = 0x72,
           F4 = 0x73,
           F5 = 0x74,
           F6 = 0x75,
           F7 = 0x76,
           F8 = 0x77,
           F9 = 0x78,
           F10 = 0x79,
           F11 = 0x7A,
           F12 = 0x7B,
           F13 = 0x7C,
           F14 = 0x7D,
           F15 = 0x7E,
           F16 = 0x7F,
           F17 = 0x80,
           F18 = 0x81,
           F19 = 0x82,
           F20 = 0x83,
           F21 = 0x84,
           F22 = 0x85,
           F23 = 0x86,
           F24 = 0x87,
           NUMLOCK = 0x90,
           SCROLLOCK = 0x91,
           LSHIFT = 0xA0,
           RSHIFT = 0xA1,
           LCONTROL = 0xA2,
           RCONTROL = 0xA3,
           LALT = 0xA4,
           RALT = 0xA5,
           OEM1 = 0xBA,
           OEMPLUS = 0xBB,
           OEMCOMMA = 0xBC,
           OEMMINUS = 0xBD,
           OEMPERIOD = 0xBE,
           OEM2 = 0xBF,
           OEM3 = 0xC0,
           OEM4 = 0xDB,
           OEM5 = 0xDC,
           OEM6 = 0xDD,
           OEM7 = 0xDE,
           OEM8 = 0xDF;
}

 

leavu2,4screens.png

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted (edited)

A point to take into account:

the Cougar MFD pack has no programming software(at this time).

It's ment to bind the buttons in the game options menu.

After googling and testing a few programs to map buttons to keybindings of LEAVU,I found a reasonable good solution .

A program called Xpadder 5.3.This software detects gamepads and joysticks and other gaming products and

allows to map the buttons to keyboard values.

It detected the 2 F16 MFDs without a problem.

Mapping the keys for LEAVU was very easy this way.

The version I used was freeware.

 

link:

 

http://www.softpedia.com/progDownload/Xpadder-Download-45445.html

 

Greets:)

Edited by Schizwiz

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted (edited)
Yoda check this:

 

 

@0:22-0:25!

 

Is it Sukhoi using your coding?!

 

Leavu2 has much prettier graphics :) (AA and 100 fps )

Edited by =RvE=Yoda
  • Like 1

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted (edited)

Questions to people with OpenGL experience

and JOGL in particular:

 

As some of you may or may not know, the performance goal of leavu2 is to be able to

render above 100 instruments of MFD complexity simultaneously on the same computer.

I conducted some performance tests on Leavu2, and I cannot quite reach my goal. ( can do about 50 )

I have tried to analyze where the performance problems come from, and have isolated 2

main causes, both caused by standard JOGL methods and classes ( not my own ) - So I've hit a bit of a wall here :

 

1. On average 70% of the CPU time consumed by LEAVU2 is caused by the JOGL

TextRenderer class. It is very slow, and if we wrote our own alternative we could probably

improve Leavu2 performance a lot! Does anyone know an alternative? This is mainly an

issue with 2D text rendering ( as 3D text is not really required ). I'm even willing to go so

far as to use simple geometric objects to create text. The text doesnt need to be pretty, only

readable.

 

2. Much of the remaining 30% comes from the internal method calls after calling GLCanvas.display().

The GLCanvas does a lot of shit before calling GLEventListener.display(),

and it is this stuff happening before GLEventListener.display() that takes time.

As you probably know, the GLCanvas.display() is the basis for any JOGL application, so to

replace it would require quite a bit of work.

 

 

Solving just cause 1 would be enough to reach the overall LEAVU2 performance goals, but I believe if we

work on both 1 and 2 we can make it almost 100 times faster, able to render several thousand MFDs

simultaneously using only a single computer. I was really annoyed to see that it was the standard JOGL

classes causing these issues, and not my own code ( which could be corrected much faster ).

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted

Here is me playing datalinked to....myself!

 

I have one instance of Leavu2 running as "Observer" (Obs) and one running as "Game Host" (Game).

I was allowed to release this picture.

 

dlinkTest.png

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted (edited)

Have you profiled the time to use Java2D to write a font? It may be faster than JoGL since JoGL likely uses GLU to write fonts - which is probably done in software, where-as all of Java2D after JRE 1.6.0_u10 or later are done in hardware.

 

You would render the text to a BufferedImage and then texture map the buffered image into your target. Ok, it's my bad since I haven't provided the texture map code to you yet. If you don't want perspective correction then rendering the texture as a billboard is easy. That may solve one part of your performance problem.

 

For the second problem I'd suggest switching references to GLCanvas to GLAutoDrawable. Then at run-time decide whether to use GLCanvas or GLJPanel. GLJPanel used to be slower but it might not be any more. I find Swing faster than AWT these days (plus it is more powerful, easier to use, and much nicer looking with Nimbus - check out the look of my scoring applet at http;//stallturn.com/scores/ for an example).

 

The other thing that can be done to speed things up is to cache textures etc that haven't changed and re-use them (yes, again my bad for not giving you the texture mapping code yet). Drawing symbols with textures rather than vectors is very fast, since consumer graphics hardware is oriented more for texture processing than anything else.

 

Also, it's quite hard for us to contribute fully since we don't have Lockon 2.0, so much of Leavu2 doesn't work for us (well, me at least). This means we can only integrate stuff up to a certain point and then we can't test past that :(

Edited by Moa
typos
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...