Jump to content

[MT] Training subtitles and multiplayer server messages/overlay not rendering


Recommended Posts

Hello All,

I discovered that while using Overlordtext bot, as well as any systems that would produce text on screen such as petrovich AI and AWACS bogey dope, no on-screen text is dispalyed. Subtitles are on.

This works perfectly fine in regular DCS. Any help is greatly appreciated.

Systems specs

  • CPU: 13900kf
  • GPU: 3080ti FE
  • Ram: 64gb

Thank you!


Edited by Onslott
Link to comment
Share on other sites

During training missions (ED provided ones, F/A-18C: CCIP Bombing for example) the text subtitles/overlay does not appear when I run DCS multithreaded. Similarly, the same type of text from server messages (I regularly play on ThroughTheInferno multiplayer servers) does not appear either. For multiplayer, not only does the visible message not appear, but the sound effect that typically plays when certain message recieved aren't playing either.

If I use the escape menu's "Message History" option, I can see the messages have arrived and view them there for both training missions and multiplayer. I verified switching back and forth between multithreaded and singlethreaded; ST always shows me the text, MT does not.

Attached dxdiag.txt and dcs.log from MT (multiplayer join and quit) run, and screenshot of the working text in a training mission and not working.

Working from ST (upper left):

image.png

Non-working from MT:image.png

DxDiag.txt dcs.log


Edited by EbonySeraphim
removed nulls

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

Could it be some problem with multi-screen setups? You're using one If I understand correctly looking at these screenshots, right? I'm asking, because on my single screen tutorial subtitles seem to be showing and scaling correctly in MT as well.

i7 9700K @ stock speed, single GTX1070, 32 gigs of RAM, TH Warthog, MFG Crosswind, Win10.

Link to comment
Share on other sites

I’m seeing this as well. I searched for a long time and didn’t see that anyone else posted it 😓

Cross reference here: 

 


Edited by EbonySeraphim
Added link to same issue post

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

Cockpit tooltips are visually something else so I think mine are working but I’ll check soon!

EDIT: I see cockpit instrument/button/switch tooltips, and I tried 3 modules. A-10CII, F-16, and F/A-18. Same training mission. I still can't see the overlay text.


Edited by EbonySeraphim

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

I see cockpit instrument/button/switch tooltips, and I tried 3 modules. A-10CII, F-16, and F/A-18. Same training mission. I still can't see the overlay text.

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

So I did some testing, and basically if you do anything to the .lua file to change the GUI viewport, it just makes it disappear.

Here is the default 1Camera.lua that works in MT (on-screen text shows as normal)

_  = function(p) return p; end;
name = _('1 Screen');
Description = 'One monitor configuration'
Viewports =
{
     Center =
     {
          x = 0;
          y = 0;
          width = screen.width;
          height = screen.height;
          viewDx = 0;
          viewDy = 0;
          aspect = screen.aspect;
     }
}

GU_MAIN_VIEWPORT = Viewports.Center

 

Here is the 1Camera.lua file I normally use to constrain the GUI to the center screen on my triple monitor setup (does not show any on-screen text on MT, only in ST)

_  = function(p) return p; end;
name = _('1 Screen');
Description = 'One monitor configuration'
Viewports =
{
     Center =
     {
          x = 0;
          y = 0;
          width = screen.width;
          height = screen.height;
          viewDx = 0;
          viewDy = 0;
          aspect = screen.aspect;
     }
}

GU_MAIN_VIEWPORT = Viewports.Center

     GUI =
     {
          x = screen.width / 3;
          y = 0;
          width = screen.width / 3;
          height = screen.height;
     }

 

Conclusion: something is going on when you alter the .lua at all to constrain the GUI elements that makes all on-screen text disappear altogether.  This makes me sad 😞


Edited by Onslott
Link to comment
Share on other sites

21 hours ago, Onslott said:

So I did some testing, and basically if you do anything to the .lua file to change the GUI viewport, it just makes it disappear.

Here is the default 1Camera.lua that works in MT (on-screen text shows as normal)

_  = function(p) return p; end;
name = _('1 Screen');
Description = 'One monitor configuration'
Viewports =
{
     Center =
     {
          x = 0;
          y = 0;
          width = screen.width;
          height = screen.height;
          viewDx = 0;
          viewDy = 0;
          aspect = screen.aspect;
     }
}

GU_MAIN_VIEWPORT = Viewports.Center

 

Here is the 1Camera.lua file I normally use to constrain the GUI to the center screen on my triple monitor setup (does not show any on-screen text on MT, only in ST)

_  = function(p) return p; end;
name = _('1 Screen');
Description = 'One monitor configuration'
Viewports =
{
     Center =
     {
          x = 0;
          y = 0;
          width = screen.width;
          height = screen.height;
          viewDx = 0;
          viewDy = 0;
          aspect = screen.aspect;
     }
}

GU_MAIN_VIEWPORT = Viewports.Center

     GUI =
     {
          x = screen.width / 3;
          y = 0;
          width = screen.width / 3;
          height = screen.height;
     }

 

Conclusion: something is going on when you alter the .lua at all to constrain the GUI elements that makes all on-screen text disappear altogether.  This makes me sad 😞

 

Great find. I wish I had invested in learning LUA before now because I probably could trivially solve this issue; I still have a Lua book on my self for reference though. I’m near certain they added information in that Lua table before monitor Lua’s are run that the assignment on it overrides.

So a user fix before an underlying fix comes could either a) determine what that info is and ensure it is generated properly; or b) preserve append the GU_MAIN_VEIWPORT table ensuring no unknown fields/entries are overwritten or erased. I think the other element to the test would be if MT, built-in screen configs are all OK.

When I have a bit of time, I’ll confirm

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

Relevant LUA in my monitor/export configuration file. I'm sure we all have something similar, but for reference, primary is my main monitor and where I want the cockpit and and all UI elements to consider themselves limited to. Center_little is actually a region on my second monitor, and the left and right little are Cubesim MFDs:

UIMainView = primary
GU_MAIN_VIEWPORT = primary
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little
Viewports = {UIMainView}

My first edit removed anything that had to do with messing with viewports

-- UIMainView = primary
-- GU_MAIN_VIEWPORT = primary
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little
-- Viewports = {UIMainView}

And resulted in the following:

image.png

Boom. UI text back (somewhere at least). The MFDs are actually kind of fixed and seem to be avoiding this already known bug with MFDs in MT. They are transparent on top of the cockpit/main game visuals but they appear updating correctly.

Then I made the following change:

UIMainView = primary
-- GU_MAIN_VIEWPORT = primary
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little
-- Viewports = {UIMainView}

and got the following result:

image.png

UI text is again, gone. Other corruption applies. MFDs happy(er) than normal MT bug.

The following change:

-- UIMainView = primary
GU_MAIN_VIEWPORT = primary
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little
-- Viewports = {UIMainView}

Has the same result as the first change which removes all viewport/view assignments -- UI is visible somewhere, MFDs are working-ish -- so I won't repost. It basically seems like GU_MAIN_VIEWPORT may be doing me nothing useful.

Lastly, the following config:

-- UIMainView = primary
-- GU_MAIN_VIEWPORT = primary
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little
Viewports = {UIMainView}

Resulted in:

image.png

The cockpit view spanning the entire resolution area (subjectively better looking), with the UI overlay text showing in the right place. Essentially all I need from here is to shrink the cockpit view back down to only the primary monitor. If anyone knows how to print/log Lua tables easily from DCS, let me know. Otherwise, it looks like I'd need to set aside some time to set up Lua debugging to understand the contents of UIMainView and Viewports before the intended changes. I'm 95% certain a necessary value that is already there is being overwritten.

 


Edited by EbonySeraphim
Removed NullPointerExceptions lol

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

Attaching a picture you can notice the problem from. MFD on the left is exported the right way, main view seems fine, but look at placement of ATC subtitles..... and all overlay texts that should appear on the right do not appear at all. Because of that, I cannot even do any tutorial...

 

EDIT: After debugging, I understand what's happening. I have two monitors: the little one I export to, on the left (even in Windows), and the main wide one. Coordinates of main viewport begins at x = 1025 (the little monitor is 1024x768). Now, DCS-MT correctly renders on the main monitor with those coordinates, but, for the overlay and subtitles, it does consider x = 0 on the main monitor (!) and so it applies +1025. Consequently, overlay and subtitles go off screen.

If I move the little monitor from the left to the right, so that the main viewport is rendered on the main monitor on x = 0, overlay and subtitles work correctly.

image.png


Edited by Saruman
Link to comment
Share on other sites

8 hours ago, Saruman said:

Attaching a picture you can notice the problem from. MFD on the left is exported the right way, main view seems fine, but look at placement of ATC subtitles..... and all overlay texts that should appear on the right do not appear at all. Because of that, I cannot even do any tutorial...

 

EDIT: After debugging, I understand what's happening. I have two monitors: the little one I export to, on the left (even in Windows), and the main wide one. Coordinates of main viewport begins at x = 1025 (the little monitor is 1024x768). Now, DCS-MT correctly renders on the main monitor with those coordinates, but, for the overlay and subtitles, it does consider x = 0 on the main monitor (!) and so it applies +1025. Consequently, overlay and subtitles go off screen.

If I move the little monitor from the left to the right, so that the main viewport is rendered on the main monitor on x = 0, overlay and subtitles work correctly.

image.png

 

Okay, slow down lol. Walk me through this. I am using Helios to create the lua files necessary to export viewports onto my left monitor. I have my primary screen on the right, showing the main game. My left monitor has the exported viewports. What lua should I be looking at here to debug/fix how you did. 

Link to comment
Share on other sites

14 hours ago, Saruman said:

Attaching a picture you can notice the problem from. MFD on the left is exported the right way, main view seems fine, but look at placement of ATC subtitles..... and all overlay texts that should appear on the right do not appear at all. Because of that, I cannot even do any tutorial...

 

EDIT: After debugging, I understand what's happening. I have two monitors: the little one I export to, on the left (even in Windows), and the main wide one. Coordinates of main viewport begins at x = 1025 (the little monitor is 1024x768). Now, DCS-MT correctly renders on the main monitor with those coordinates, but, for the overlay and subtitles, it does consider x = 0 on the main monitor (!) and so it applies +1025. Consequently, overlay and subtitles go off screen.

If I move the little monitor from the left to the right, so that the main viewport is rendered on the main monitor on x = 0, overlay and subtitles work correctly.

This could be right. I noticed A.I. flight / AWACS communication message text (like in your screenshot) appeared further to the left than normal with my intended export configuration. That would make sense because I have a lower resolution monitor to the left of my main monitor so for some reason that text is being rendered where it needs to be in the corner of that screen.

 

I haven't found a way to fix it using the normal viewport/export Lua files, but I have noticed that DCS interacts with a file in DCS.openbeta/Config/appSettings.lua which also appears to be defining layouts of monitors attached in a way that seems almost identical to exports. appSettings.lua seems to be modified unnecessarily every time DCS starts, even if I change nothing and is safe to delete if you mess it up. DCS will create it new somehow. Anyways, despite doing everything to make the top left corner of the left-most monitor be 0,0 to both the display driver(GPU) and Windows, DCS seems to generate/modify this file with negative X values for my non-main viewport monitor. Not sure if this influences that overlay/GUI/subtitle text rendering.

 

EDIT: No difference removing all negative numbers from appSettings.lua. One run in and DCS very overwrote it. I can't even be sure DCS considers what's there.


Edited by EbonySeraphim

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

This raises a new question. Are server messages (overlordbot, training text, autostart procedure status, etc) defined in DCS logic as which of the following:

Command menu

Dialogues panel

or game messages

Scouring the forums shows a similar issue was present a few years back, I will link that thread here for reference and potential insight to this situtation. 

 

1 hour ago, EbonySeraphim said:

This could be right. I noticed A.I. flight / AWACS communication message text (like in your screenshot) appeared further to the left than normal with my intended export configuration. That would make sense because I have a lower resolution monitor to the left of my main monitor so for some reason that text is being rendered where it needs to be in the corner of that screen.

 

I haven't found a way to fix it using the normal viewport/export Lua files, but I have noticed that DCS interacts with a file in DCS.openbeta/Config/appSettings.lua which also appears to be defining layouts of monitors attached in a way that seems almost identical to exports. appSettings.lua seems to be modified unnecessarily every time DCS starts, even if I change nothing and is safe to delete if you mess it up. DCS will create it new somehow. Anyways, despite doing everything to make the top left corner of the left-most monitor be 0,0 to both the display driver(GPU) and Windows, DCS seems to generate/modify this file with negative X values for my non-main viewport monitor. Not sure if this influences that overlay/GUI/subtitle text rendering.

 

EDIT: No difference removing all negative numbers from appSettings.lua. One run in and DCS very overwrote it. I can't even be sure DCS considers what's there.

 

What if we try and create an appsettings.lua in your Saved Games directory with the same pathway, but with the values that we WANT. Perhaps it will function like any other mod and just overwrite whatever DCS is altering?

Link to comment
Share on other sites

I nearly have this fixed for my personal monitor layout with the following change in my MonitorSetup Lua cfg/script:

UIMainView = primary
GU_MAIN_VIEWPORT = primary
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little
Viewports = {UIMainView}

Is now:

UIMainView =
{
	x      = 0;
	y      = 0;
	width  = screen.width;
	height = screen.height;
}
GU_MAIN_VIEWPORT = Viewports.Center
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little

Screenshot in simulation:

image.png

This solution is still very imperfect though as the menu/GUI windows render across everything and depending on your monitor arrangement, you might have very important areas of your screen inaccessible if there are no real monitor display pixels present. If your left side, and too much of the bottom section of the screen is inaccessible from the main menu, you won't even be able to access missions.

The UIMainView table is key here. In theory, UIMainView should be set to my primary monitor's view which starts  at x=2560, with a width of 3840. However, if I move over UIMainView.x to 2560, everything else about the UI is fixed from the prior screenshot -- loading screen is only on the main UI, dialog windows are entirely on it, etc -- but the UI overlay text (dark area) disappears again. For some reason, in MT that text absolutely doesn't respect UIMainView.width and still sees screen.width. This is as @Saruman said. It appears I could fix this if I swap the left and right sides, but I'm trying to avoid that for now due to sanity in Windows.

I kept messing with things and decided to remove setting GU_MAIN_VIEWPORT while setting UIMainView.width to 3840

-- UIMainView = Viewports.Center
UIMainView =
{
	x      = 0;
	y      = 0;
	width  = 3840;
	height = screen.height;
}

GU_MAIN_VIEWPORT = UIMainView -- actually, the same result occurs with or without this line.
LEFT_MFCD = left_little
RIGHT_MFCD = right_little
CENTER_MFCD = center_little

and I achieved a most interesting result:

Screen_230320_041347.png

The prior attempt rendered everything relative to the full resolution area, which messes up main menu window boxes (they are centered between screens). This attempt actually has the proper UI area dimensions (4k), with the overlay; text appearing in that 4k area in the right place and on top; but it is just not at the location of my 4k monitor's display. If I don't set GU_VIEW_MAINPORT and try to adjust UIMainView.x = 2560, the overlay text disappears again, and I my MFDs stop working.

  • Like 2

CPU: 5950x || Memory: 64GB || GPU: RTX 4090

Input: Virpil CM3, TM F/A-18 Grip on Virpil WarBRD base, WW F-16EX grip on TM Warthog base, Virpil CP1 and CP2, Cougar MFD x2 / w CubeSim screens, StreamDeck XL x2, StreamDeck 15-key, TrackIR5

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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