Jump to content

Beau1969

Members
  • Posts

    66
  • Joined

  • Last visited

Everything posted by Beau1969

  1. The download has been updated and the menu should now work the same in both single and multiplayer. - in User Files: Adjust options.lua file based on aircraft altitude above ground (digitalcombatsimulator.com)
  2. Hi all, When I get a moment, I need to update the auto-menu and graphics activate function as it currently resets the menu by going to the top of the menu and then counting downward to activate the options settings, exit mission, exit game, etc. Unfortunately, the menu changes from the top down, so I need to go the opposite direction (down and then count up.) I have made the change to my own files but have not yet had the chance to update the AHK script. I will in the coming days. This will only be a factor in multiplayer.
  3. Last post on the topic, is based on my and the AI's learnings in doing this project, as well as areas for further improvement. I doubt I will tackle those unless there is demand - simply ask in this thread or the comments of the files provided in the User Files portion of DCS Downloads. Link: Adjust options.lua file based on aircraft altitude above ground (digitalcombatsimulator.com) If someone chooses to build upon it, please feel free -- simply mention that you built upon this project -- csbeau1969 and Claude AI. Note: I am in no way affiliated with Claude AI. I simply think it appropriate to reference sources. Summary and "close out" (or at least until next time): -- Summary of the Thread and Learnings: In this thread, we worked on creating an AutoHotkey script that dynamically switches LOD (Level of Detail) settings in DCS based on the aircraft's radar altitude. The script reads the altitude from a file (radarAltitude.txt) that is continuously updated by an Export.lua script in DCS. Key learnings and improvements made during the development process: 1. The script uses two separate options files (options-air.lua and options-ground.lua) with different LOD settings for air and ground. 2. The altitude threshold for switching between air and ground settings was set to 5000 feet (1524 meters). 3. To prevent frequent switching due to minor altitude fluctuations, a "noise filter" was implemented that requires a certain number of consistent readings (4 by default) above or below the threshold before changing the graphics settings. 4. The script plays different beep sounds to indicate when it switches to air or ground settings. 5. Additional hotkeys were added for convenience, such as opening the options menu, exiting the mission, and exiting the game. 6. The script was optimized to only update the options.lua file when necessary, reducing unnecessary file operations. 7. The importance of error handling and checking if DCS is running before attempting to read the altitude file was highlighted. Suggestions for Improvement and Usability: 1. Create a user-friendly GUI for the script that allows users to easily configure settings such as the altitude threshold, required consistent readings, and file paths without modifying the script itself. 2. Provide a compiled executable version of the script that includes the necessary files (options-air.lua, options-ground.lua, and the AutoHotkey script) in a single package, making it easier for users to set up and use. 3. Implement a feature that automatically detects the user's DCS installation path and suggests the appropriate file locations, reducing the need for manual configuration. 4. Add a "profiles" feature that allows users to save and load different settings for various scenarios, such as different aircraft or mission types. 5. Integrate the script with popular DCS mods or tools to provide a seamless experience for users. 6. Create a comprehensive readme file or tutorial video that guides users through the setup process and explains how to use the script effectively. New AutoHotkey Script with Enhanced Functionality: #NoEnv #SingleInstance Force #UseHook SetTitleMatchMode, 2 ; User-configurable settings altitudeThreshold := 1524.0 ; 5000 feet = 1524 meters requiredReadings := 4 profilesDir := "C:\DCS\LODProfiles" ; Detect DCS installation path RegRead, dcsPath, HKLM\SOFTWARE\Eagle Dynamics\DCS World, Path if (dcsPath == "") { MsgBox, DCS installation not found. Please set the correct paths in the script. ExitApp } ; Set file paths based on DCS installation optionsGroundPath := dcsPath . "\Config\options-ground.lua" optionsAirPath := dcsPath . "\Config\options-air.lua" optionsLuaPath := dcsPath . "\Config\options.lua" radarAltitudeFile := dcsPath . "\Config\radarAltitude.txt" ; Load user profiles LoadProfiles() { FileSelectFolder, selectedDir, %profilesDir%, 3, Select a profile directory if (selectedDir != "") { FileCopy, %selectedDir%\options-ground.lua, %optionsGroundPath%, 1 FileCopy, %selectedDir%\options-air.lua, %optionsAirPath%, 1 } } ; Save user profiles SaveProfiles() { FileSelectFolder, selectedDir, %profilesDir%, 3, Select a directory to save the profile if (selectedDir != "") { FileCopy, %optionsGroundPath%, %selectedDir%\options-ground.lua, 1 FileCopy, %optionsAirPath%, %selectedDir%\options-air.lua, 1 } } ; Rest of the script code remains the same ; Hotkey to load profiles ^l::LoadProfiles() ; Hotkey to save profiles ^s::SaveProfiles() This enhanced script includes the following improvements: 1. User-configurable settings for the altitude threshold and required consistent readings. 2. Automatic detection of the DCS installation path to suggest appropriate file locations. 3. A "profiles" feature that allows users to save and load different settings for various scenarios. 4. Hotkeys to easily load (Ctrl+L) and save (Ctrl+S) profiles. To further improve usability, a GUI could be created using AutoHotkey's built-in GUI commands or by integrating with a third-party tool. The script could also be compiled into an executable with the necessary files bundled together for easy distribution. Developing a comprehensive readme file or tutorial video would greatly assist users in setting up and using the script effectively.
  4. Subject: Dynamic LOD Switching Script for DCS - Updated Approach (AutoHotkey) Hey everyone, I wanted to provide an update on the Dynamic LOD Switching Script for DCS that I've been working on in collaboration with an AI assistant named Claude from Anthropic. Based on feedback and further testing, we've made some significant improvements to the script. The script still aims to automatically switch between different LOD (Level of Detail) settings in DCS based on the aircraft's radar altitude, but we've refined the approach to make it more reliable and efficient. Here's how the updated script works: 1. The script reads the radar altitude from a file (`radarAltitude.txt`) that is created and then continuously updated by the Export.lua script in DCS. 2. If the radar altitude is above 5000 feet (1524 meters) and the current graphics settings are not set to "air", the script will switch to the air graphics settings (`options-air.lua`). 3. If the radar altitude is below 5000 feet and the current graphics settings are not set to "ground", the script will switch to the ground graphics settings (`options-ground.lua`). 4. To prevent frequent switching due to minor altitude fluctuations, the script requires a certain number of consistent readings (4 by default) above or below the threshold before changing the graphics settings. 5. The script plays a high-pitched beep when switching to air settings and a low-pitched beep when switching to ground settings. 6. The script also includes hotkeys for opening the options menu, exiting the mission, and exiting the game. The updated AutoHotkey script is attached, and the required Export.lua addition is written below. You will need to compile the AHK script using the directions earlier in this topic. Also note that you will need to update the AHK with your actual SavedGames/Config location. Note that the script also includes my previous script (see DCS User Files), which keeps DCS as the active window, which is also helpful for keeping the window in focus and fps at its highest. You can exit keeping DCS as the active window by pressing Ctrl+Space. To use the script: 1. Add the provided Export.lua code to your existing Export.lua script in DCS. 2. Create the `options-ground.lua` and `options-air.lua` files with your desired LOD settings in your DCS Config directory (e.g., `C:\Users\YourUsername\Saved Games\DCS\Config\`). I have included my own examples in the archive file to this post. 3. Install AutoHotkey on your system if you haven't already. 4. Copy the provided AutoHotkey script into a new file with a `.ahk` extension (e.g., `DCSLODSwitcher.ahk`). 5. Open the `.ahk` file and update the file paths to match your DCS installation and desired locations for the `options-ground.lua`, `options-air.lua`, `options.lua`, and `radarAltitude.txt` files. I use the ahk2Exe file provided by the AutoHotKey installation to create an Exe, which I then run before starting DCS. I set the Exe to have admin rights (aka 'run as administrator') 6. Run the AutoHotkey script (or exe) before or during your DCS session. The script will automatically switch between air and ground LOD settings based on the radar altitude, providing a more optimized graphics experience. Please note that you may need to adjust the `altitudeThreshold` and `requiredReadings` values in the AutoHotkey script to fine-tune the behavior based on your preferences and system performance. It was very cool to work alongside Claude from Anthropic, who provided invaluable scripting assistance and expertise throughout the development process. Their insights and suggestions have greatly contributed to the improved functionality and reliability of the script. If you have any questions, suggestions, or feedback, please let me know. I hope this updated script enhances your DCS experience! Happy flying! csbeau PS: Claude helped write this post -- Add this code to your existing Export.lua script local outputFile = "C:\\Users\\YourUsername\\Saved Games\\DCS\\Config\\radarAltitude.txt" function LuaExportAfterNextFrame() local radarAlt = LoGetAltitudeAboveGroundLevel() local altitudeString = string.format("%.2f", radarAlt) local file = io.open(outputFile, "w") file:write(altitudeString) file:close() end AHK Graphics Switch Project.7z
  5. BTW, I saw this YouTube video recently for MSFS and wanted to see if we could do something similar for DCS. The next post is the solution I came up with, by using AI to help script. Link:
  6. Updated script to open and close the graphics menu to activate the new graphics settings (which may not be required for just the LODMult, but you can also adjust other settings in the file.) -- #NoEnv #SingleInstance Force #UseHook SetTitleMatchMode, 2 ; Define the path to your options.lua files optionsGroundPath := "C:\Users\chris\Saved Games\DCS\Config\options-ground.lua" optionsAirPath := "C:\Users\chris\Saved Games\DCS\Config\options-air.lua" optionsLuaPath := "C:\Users\chris\Saved Games\DCS\Config\options.lua" ; Function to send keystrokes with a delay SendKeyWithDelay(key) { Send %key% Sleep, 25 ; 25 milliseconds delay between keystrokes } ; Function to open the graphics settings menu OpenGraphicsSettings() { SendKeyWithDelay("{Esc}") Sleep, 50 ; Slightly longer delay before arrow keys Loop, 6 { SendKeyWithDelay("{Up}") } Loop, 4 { SendKeyWithDelay("{Down}") } SendKeyWithDelay("{Space}") ; Activate Options Menu Sleep, 50 ; Slightly longer delay before returning } ; Function to open and close the graphics settings menu OpenCloseGraphicsSettings() { OpenGraphicsSettings() Sleep, 50 ; Slightly longer delay before closing the menu SendKeyWithDelay("{Esc}") SendKeyWithDelay("{Esc}") } ; Function to exit the mission ExitMission() { SendKeyWithDelay("{Esc}") Sleep, 50 ; Slightly longer delay before arrow keys Loop, 6 { SendKeyWithDelay("{Down}") } SendKeyWithDelay("{Space}") ; Confirm exit mission Sleep, 50 ; Slightly longer delay before returning } ; Function to exit the game ExitGame() { SendKeyWithDelay("{Esc}") Sleep, 50 ; Slightly longer delay before arrow keys Loop, 5 { SendKeyWithDelay("{Down}") } SendKeyWithDelay("{Space}") ; Confirm exit game Sleep, 50 ; Slightly longer delay before returning } ; Copy options-ground.lua to options.lua initially FileCopy, %optionsGroundPath%, %optionsLuaPath%, 1 Loop { if GetKeyState("Control") && GetKeyState("Space") break WinActivate, Digital Combat Simulator Sleep, 25 ; Reduced sleep time after WinActivate ; Hotkey to swap to air file if GetKeyState("LShift") && GetKeyState("LWin") && GetKeyState("A") { FileCopy, %optionsAirPath%, %optionsLuaPath%, 1 SoundBeep, 750, 150 ; Play a high-pitched beep for 150ms Sleep, 25 ; Reduced sleep time after swapping settings OpenCloseGraphicsSettings() ; Open and close the graphics settings menu Sleep, 50 ; Additional sleep at the end of the hotkey block } ; Hotkey to swap to ground file if GetKeyState("LShift") && GetKeyState("LWin") && GetKeyState("G") { FileCopy, %optionsGroundPath%, %optionsLuaPath%, 1 SoundBeep, 500, 150 ; Play a low-pitched beep for 150ms Sleep, 25 ; Reduced sleep time after swapping settings OpenCloseGraphicsSettings() ; Open and close the graphics settings menu Sleep, 50 ; Additional sleep at the end of the hotkey block } ; Hotkey to open the options menu if GetKeyState("LShift") && GetKeyState("LWin") && GetKeyState("O") { OpenGraphicsSettings() ; Open the graphics settings menu Sleep, 50 ; Additional sleep at the end of the hotkey block } ; Hotkey to exit the mission if GetKeyState("LAlt") && GetKeyState("LShift") && GetKeyState("LWin") && GetKeyState("E") { ExitMission() ; Exit the mission Sleep, 50 ; Additional sleep at the end of the hotkey block } ; Hotkey to exit the game if GetKeyState("LAlt") && GetKeyState("LShift") && GetKeyState("LWin") && GetKeyState("Q") { ExitGame() ; Exit the game Sleep, 50 ; Additional sleep at the end of the hotkey block } } ; Exit the script ExitApp
  7. A quick note, I believe that the file is read when going to the options (systems) menu, and the file can contain more than the LOD change. I use Max FPS to see when it has loaded. I activate the ground to air (and vice versa) swap using VoiceAttack -- which I have added key strokes to activate the swap (via the above), hit escape, open and close systems option menu. Then I can see the Max FPS change and know for certain it is active. That said, everytime I open the menu, the LOD multiplier has been changed. As a side, it would be great if DCS added the functionality to have different graphics settings on the ground vs. in the air (or above say 1000 ft.)
  8. Subject: Dynamic LOD Switching Script for DCS (AutoHotkey) Hi all, I wanted to share an AutoHotkey script that I developed in collaboration with an AI assistant called Claude from Anthropic. This script allows you to dynamically switch between different LOD (Level of Detail) settings in DCS based on whether you're on the ground or in the air. The script works by swapping between two pre-configured `options.lua` files: 1. `options-ground.lua`: Contains LOD settings optimized for ground performance (e.g., LODMult set to 0.5). 2. `options-air.lua`: Contains LOD settings optimized for visual quality in the air (e.g., LODMult set to 1.0). Here's how the script works: - When you run the script, it initially copies `options-ground.lua` to `options.lua`, setting the ground-optimized LOD settings. - To swap to the air settings, press Left Shift + Windows + A. The script will copy `options-air.lua` to `options.lua` and play a high-pitched beep to confirm the swap. - To swap back to the ground settings, press Left Shift + Windows + G. The script will copy `options-ground.lua` to `options.lua` and play a low-pitched beep to confirm the swap. The script continuously runs in the background, allowing you to switch between the air and ground LOD settings whenever needed. Here's the AutoHotkey script: #NoEnv #SingleInstance Force #UseHook SetTitleMatchMode, 2 ; Define the path to your options.lua files optionsGroundPath := "C:\Users\YourUsername\Saved Games\DCS\Config\options-ground.lua" optionsAirPath := "C:\Users\YourUsername\Saved Games\DCS\Config\options-air.lua" optionsLuaPath := "C:\Users\YourUsername\Saved Games\DCS\Config\options.lua" ; Copy options-ground.lua to options.lua initially FileCopy, %optionsGroundPath%, %optionsLuaPath%, 1 Loop { if GetKeyState("Control") && GetKeyState("Space") break WinActivate, Digital Combat Simulator Sleep, 50 ; Adjust the sleep time (in milliseconds) as needed ; Hotkey to swap to air file if GetKeyState("LShift") && GetKeyState("LWin") && GetKeyState("A") { FileCopy, %optionsAirPath%, %optionsLuaPath%, 1 SoundBeep, 750, 150 ; Play a high-pitched beep for 150ms Sleep, 50 } ; Hotkey to swap to ground file if GetKeyState("LShift") && GetKeyState("LWin") && GetKeyState("G") { FileCopy, %optionsGroundPath%, %optionsLuaPath%, 1 SoundBeep, 500, 150 ; Play a low-pitched beep for 150ms Sleep, 50 } } ; Exit the script ExitApp To use this script: 1. Install AutoHotkey on your system from the official website: https://www.autohotkey.com/ 2. Copy the provided script into a new text file using a text editor like Notepad++. 3. Save the file with a `.ahk` extension (e.g., `DCSLODSwitcher.ahk`). 4. Open the script file and replace `YourUsername` in the file paths with your actual username. 5. Create the `options-ground.lua` and `options-air.lua` files with your desired LOD settings in your DCS Config directory (e.g., `C:\Users\YourUsername\Saved Games\DCS\Config\`). 6. Compile the script into an executable: - Navigate to the AutoHotkey installation directory (usually `C:\Program Files\AutoHotkey`). - Locate and run the `Compiler\ahk2Exe.exe` tool. - In the ahk2Exe window, click "Browse" next to "Source" and select your `.ahk` script file. - Click "Compile" to generate the executable (`.exe`) file in the same directory as your script. 7. Run the compiled executable file before or during your DCS session. - If you encounter any issues with the script not working properly, try running it as an administrator by right-clicking the executable and selecting "Run as administrator". Special thanks to Claude from Anthropic for helping me develop and refine this script. Their assistance and expertise were invaluable throughout the process. If you have any questions, suggestions, or feedback, please let me know! Happy flying! csbeau PS: Claude also helped to write this post. PS: to answer my original question, yes -- this works!
  9. Further consideration, is if DCS does not read the Lua files other than at start-up. However, this approach likely is beyond the time I can dedicate to the effort. Offered here, "just in case" someone with more time or skills would be interested in tackling this challenge. The end game is to have the best combination of quality and framerate (in VR or 4K+ resolutions) at all times while within DCS. Note: this evening or over the weekend, I intend to run a test to see whether adjusting the LODmult in the file(s) will update the LOD in the options menu within the game. If so, then it will likely be editable (and then read by DCS) and a rather simple AutoHotKey script will work. -- If the LODMult setting is not read from the configuration files in real time and is instead stored in the game's memory, you can attempt to modify the value directly in memory using memory editing techniques. This approach requires more advanced programming knowledge and specialized tools. Here's a high-level overview of how you could approach this: 1. Use a memory scanning tool like Cheat Engine to find the memory address where the LODMult value is stored. - Start DCS and load a mission. - Use Cheat Engine to scan for the current value of LODMult in the game's memory. - Modify the LODMult value in the configuration file and restart the game. - Scan for the new LODMult value in memory, narrowing down the results to find the specific memory address. 2. Once you have the memory address, you can use a programming language like C++ or Python to create a script that directly modifies the value at that address. - Use libraries like Win32API or ctypes to access and modify the game's memory from your script. - You'll need to ensure that your script has the necessary permissions to read and write to the game's memory. 3. Integrate the memory editing functionality into your existing AutoHotkey script. - When the mirror state changes, instead of modifying the configuration files, have your script call the memory editing function to directly change the LODMult value in memory. Here's a simple example of how you could modify memory using Python and the ctypes library: ```python import ctypes def modify_lod_mult(process_id, address, new_value): # Open a handle to the process process_handle = ctypes.windll.kernel32.OpenProcess(0x1F0FFF, False, process_id) # Prepare the new value new_value = ctypes.c_float(new_value) # Write the new value to the memory address ctypes.windll.kernel32.WriteProcessMemory(process_handle, address, ctypes.byref(new_value), ctypes.sizeof(new_value), None) # Close the process handle ctypes.windll.kernel32.CloseHandle(process_handle) # Usage example dcs_process_id = 1234 # Replace with the actual process ID of DCS lod_mult_address = 0x12345678 # Replace with the actual memory address of LODMult new_lod_mult_value = 0.5 modify_lod_mult(dcs_process_id, lod_mult_address, new_lod_mult_value) ``` Keep in mind that memory editing can be complex and may trigger anti-cheat mechanisms in multiplayer games. It's important to use this technique responsibly and only in single-player or non-competitive environments. Also, note that game updates may change the memory address of the LODMult value, so you'll need to re-scan for the address whenever there are updates to the game. If you decide to pursue this approach, I recommend seeking guidance from the DCS modding community or forums, as there may be others with experience in memory editing for DCS who can provide more specific advice and code samples. Remember to exercise caution when modifying game memory and always create backups of your game files before making any changes.
  10. Hi all, I have been exploring using a 'simple' Autohotkey script to adjust the LODMult setting in the graphics.lua file (perhaps through autoexec.cfg) based on the position of the mirrors (by reading the key to change the mirrors, which I use the default and just 'M'). However, I am not sure if the LODMult is read in real-time. The simple concept is that I have mirrors defaulted to M, so when I start on the ground, mirrors are off, given graphics are most pressured when on the ground. I then takeoff and once away from the airport or carrier, I turn mirrors on. Autohotkey can read the keystroke ('M' or the default setting which I think may be Alt+M.) It could then dynamically adjust the setting in the file, or swap the file. Below is a copy of a template that I was 'discussing' with Co-Pilot, that I may further build upon. The question is whether LODMult is read from either autoexec.cfg or graphics.lua in real-time or there is some other location to reference, or an entirely different approach is required? Note that it has been years since I have done any real programming, so I doubt I would get into Python or C++, etc. Just wondering whether a simple script might work. -- #IfWinActive, ahk_class DCS M:: { ; Define the path to the graphics.lua file graphicsLuaPath := "C:\\Path\\To\\DCS\\Config\\graphics.lua" ; Read the current LODMult setting from the file FileRead, fileContents, %graphicsLuaPath% ; Use regex to find the lodMult setting and capture its value regexPattern := "lodMult\s*=\s*(\d+(\.\d+)?)" if (RegExMatch(fileContents, regexPattern, match)) { ; Toggle the LODMult value newLODMult := (match1 == "1.0") ? "0.5" : "1.0" ; Replace the old value with the new value in the file contents fileContents := RegExReplace(fileContents, regexPattern, "lodMult = " newLODMult) ; Write the modified contents back to the graphics.lua file FileDelete, %graphicsLuaPath% FileAppend, %fileContents%, %graphicsLuaPath% } ; Notify the user that the change has been made Tooltip, LODMult setting toggled to: %newLODMult% Sleep, 2000 ; Display the tooltip for 2 seconds Tooltip ; Hide the tooltip } return #IfWinActive
  11. I found an interesting solution using the latest updates to the Quest platform. You can set up the space and identify "furniture" to create a box around your cockpit hardware. I added a "box" around the center column of my cockpit (AMPCD, and UFC), so that when I login to DCS and start-up the F-18, I can align the VR central column with the hardware central column. It works very well. You start to ignore the blue box around it, which shows up when you look down or reach toward it. It is not perfect, but very helpful. My hope is that Quest will allow the furniture to show in passthrough at some point in the future.
  12. In addition, I do not get the kneeboard on the screen as the OP shows, from me it is transparent in the area that the picture shows the RWR threats. Is that a connected bug or am I missing something on the kneeboard setup for VR? The box around the page as shown in the OP's picture is there, just it is transparent. In addition, it is also not on the pilots leg. One other note which could be a factor, I am exporting MFD displays while in VR.
  13. Hi all, It is unclear from the forums whether the kneeboard is supposed to show on the pilot's leg (F-18C) when in VR. It seems that it may be on the Wish List (from November 2023), and then again, some people seem to mention it does work (for example), this is night kneeboards for VR, Link: Supercarrier Reference Kneeboards (digitalcombatsimulator.com) In my case, I see a blank page on the pilot kneeboard, and when I press the show kneeboard button, I get a transparent box with nothing in it. Is this a bug, "a feature" or have I missed a setting somewhere I need to adjust? Thank you, csbeau
  14. This does work and works well. Unfortunately, for VR, it is a bit more trouble due to the VR headset because you start the app, then DCS, then back to the app, then back to DCS, etc... all in the headset. So, I have decided to run the MFDs on the DCS computer as I only have to configure the LUA files, and once DCS is launched, I can stay within DCS. For a 2D setup, it is great.
  15. Hi all, Now that I have gotten my setup to a place I am comfortable with (for both QPro and Q3), I plan to see what I can do about cockpit passthrough. Interestingly enough, almost exactly what we want is available in the headset, which outlines items in your immediate vicinity. Perhaps we can figure out how to have it only show the area within a specific area. The outline of the TOPGUN MIP is perfect, unfortunately, it also picks up the other items; so will explore a few options. Anyone with suggestions on where to start is welcome and appreciated. Thank you, csbeau
  16. PS: The above worked as expected. You do not need PW export script for it to work, only the client and server for each PC. I do see an improvement in FPS on an i713700K and 3090Ti of about 10% in 2D, but I have not yet had the time to test it in VR.
  17. Journey continued via this forum post, I am able to export to a remote PC and now looking to see how best to integrate with VR and whether it helps with performance.
  18. Ok... so I have been able to get it to work to export the displays. For DCS to render the displays below the left-most monitor, as suggested in the website link, I had to lower my second screen (listed as 1 here) enough to capture the MFDs from the Monitor lua file. It is not clear whether the export script from @pet333r is required, I have it running as I use his UFC app for the IFEI display. From my configuration testing, I do not think it is required, but I have not tried running it and disabling the script. You will need to setup your monitor lua file, here is mine: -- _ = function(p) return p; end; name = _('MFD_Export'); Description = 'MFD_Export' Viewports = { Center = { x = 0; y = 0; width = 2560; height = 1440; viewDx = 0; viewDy = 0; aspect = 2560 / 1440; } } UIMainView = Viewports.Center GU_MAIN_VIEWPORT = Viewports.Center LEFT_MFCD = { x = 0; y = 1696; width = 768; height = 768; } CENTER_MFCD = { x = 768; y = 1696; width = 768; height = 768; } RIGHT_MFCD = { x = 1536; y = 1696; width = 768; height = 768; } -- My resolution is 4480x2464 (Left monitor is 2560x1440, right is 1920x1200), I used DPEdit.exe to position the monitors precisely. The server runs on the DCS computer, this is my setting to capture three 768x768 MFD displays. On the computer with the remote display(s), you will run the client exe, Note that the client default screen (the PanelSettings is available in the Settings menu and is at the top of this picture) is the stream relative settings and needs to be appropriately aligned with the server; in this case, 0,0 768x768 scrapes the first display, 768,0 768x768 the second and so forth. The server exports the height and width (a rectangle) and pulls from DCS at the X-Y position (0, 1696 - in this case, see server Export picture above.) Unfortunately, the rendered displays on the client side do not seem to position as per the client coordinates; it exports resizable displays (in this case, 3) that you can then resize and position using the mouse. I have not been able to determine how to keep those positions, so it will require repositioning the displays each time the app is restarted on the client. I hope this helps others if anyone else is interested in exporting displays to a second computer. I use the second computer to render three WinWing MFD displays while running the other hardware (MFD pushbuttons, UFC, throttle, stick, etc.) on the DCS sim computer. I also run a dedicated server for multi-player missions on a 3rd computer.
  19. Hi all, What is the best way to run MFD displays on a remote computer? I have tried a few solutions, but none are optimal. I was able to get DCS MFD Exporter (by @pet333r) to work, but not as advertised. Link: http://pw-developer.com/soft_dcs_mfd.html In short, I can only repeat the display to the remote computer if the MFD is visible on the displays on the main/server computer. As best I can tell, it is not possible to export the display entirely as @pet33r does for his apps (which I use the DCS UFC for Android app.) The picture on the website shows that the MFDs can be placed outside the actual display area and exported, however -- I have not been able to get that to work. It only works if the MFDs are placed within the display space on the computer. When exporting, it is experimental as to what position/windows sizes work well between the two computers; it is pretty particular. My end goal is to export the MFDs while running in VR to another computer for a mixed reality experience, I have a spare PC and am thus trying to offload some of the CPU burden as I run a WinWing MIP cockpit, Buttkicker, VoiceAttack/Vaicom Pro and TeamSpeak. If anyone has any suggestions, they are welcome. Another approach would be to see if it is possible to run the apps listed by offloading the CPU to another computer/cloud. However, I have only recently started looking at that as an alternative. Thank you! csbeau
  20. Up late tonight, as I was (and still somewhat) frustrated by the menu challenges when exporting displays in VR. However, after hours of investigation, the best solution appears to put the MFDs/other being exported to the left of your primary display. The displays somehow claim real estate in the screen, which can overlay with important menu selections (such as accepting option changes, starting missions, etc.) Separately, I am flying and testing in the F-18, and I am not able to see the kneeboard either as it would be in 2D, nor on the pilots leg. It is simply transparent or blank. Is this normal, or another byproduct of trying to export the displays? Thank you!
  21. Thank you, all. The recent post by nikoel is the promising program I referenced above for SteamVR by a Japanese developer. However, I am trying to keep the solution to OpenXR… I may reconsider…
  22. Hi all, I recently set up a 2D hardware cockpit solution, which prompted me to develop this file (Keep DCS (Digital Combat Simulator) Window Active) as I was getting a few DCS "out of focus"-like issues (due to other software for hardware, such as Buttkicker, Winwing, AimXYZ.) After getting the 2D solution working well, I integrated my Meta Quest 2 Pro with the new setup. I needed to determine how to allow the MFDs to be rendered when in VR. Fortunately, after reading through a few DCS forum streams, I found that adding this line to the monitor setup LUA file used to configure your displays is the solution. VR_allow_MFD_out_of_HMD = true I also came across this file, which is very helpful and straightforward (assuming you are comfortable with Windows CMD). It helps to align monitors precisely instead of "eyeballing" them in the Windows Display settings. This is great for defining exactly where the Windows monitor positions are for configuring the DCS monitor LUA file. Link: GitHub - programmer2514/DPEdit: A simple Windows command line utility to accurately set the relative position of displays in a dual- or multi-monitor setup. Thus far, I have not found an optimal AR solution (such as a lower 1/3 passthrough, 2/3 DCS view in the headset configurable/initiated by a single key press), so I am simply looking out the bottom of the VR headset, which is easy enough to see the winwing MIP cockpit (with some learned action memory on switches on the throttle and PTO2 panel.) There is a promising "around the hands" solution from a Japanese programmer, but only for SteamVR, which I avoid due to better performance in OpenXR. I will post here if I find solutions (outside Virtual Desktop and OpenKneeboard) that seem optimal/helpful. Otherwise, I hope the above is helpful to anyone looking for similar solutions. I also appreciate it if anyone has found a solution that might help accomplish the goal mentioned in the paragraph directly above. I aim to minimize additional software interfaces between DCS and the sim/VR hardware (such as Virtual Desktop or SteamVR.) Ventor (csbeau)
  23. Problem solved -- it was a monitor configuration lua file issue.
  24. Hi, I am getting the TTI Script and Initialization menu on the right-hand side of the screen when running the Georgio TTI SP/Co-Op campaign. A picture is attached to this post. Anyone know what setting to adjust to fix or make the menu go away or transparent? Thank you! csbeau
  25. After some testing, I can confirm that the performance impact of the script is negligible, and framerates are the same or better than before.
×
×
  • Create New...