Jump to content

SimShaker for DCS World Sound Mode Expansion - Discussion


Recommended Posts

Hi again Andre and f410: I've been away from the pit for awhile so I didn't get a chance to thank you Andre for the SS Sound Module replacement key. Thanks again. Now, I've got another problem (I reported earlier in a previous post) I hope you guys can help fix. The only way I can run my JetSeat is when I press the Repair DCS radio button. At that point my F18 Helios profile (instruments) stops working. I don't have a clue on what's happening. Your help would be appreciated.

 

SS Log:

11:08:42.329 SimShaker for Aviators Version 1.3.7.0

11:08:42.341 ********** DCS World Public Release version folder found in Saved Games **********

11:08:42.343 DCS export feature setup: SimShaker.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts

11:08:42.344 DCS export feature setup: ExportCore.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.346 DCS export feature setup: ExportDevice.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.346 DCS export feature setup: KeyValueStore.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.347 DCS export feature setup: Network.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.348 DCS export feature setup: Protocol.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.349 local SimShakerlfs=require('lfs'); dofile(SimShakerlfs.writedir()..'Scripts/SimShaker.lua') call found in C:\Users\mmaxw\Saved Games\DCS\Scripts\Export.lua

11:08:42.349 dofile(lfs.writedir()..[[scripts\SimShaker-export-core\ExportCore.lua]]) call found in C:\Users\mmaxw\Saved Games\DCS\Scripts\Export.lua

11:08:42.350 ********** DCS World Open Beta version folder found in Saved Games **********

11:08:42.351 DCS.openbeta export feature setup: SimShaker.lua added to C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts

11:08:42.352 DCS.openbeta export feature setup: ExportCore.lua added to C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts\SimShaker-export-core

11:08:42.352 DCS.openbeta export feature setup: ExportDevice.lua added to C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts\SimShaker-export-core

11:08:42.353 DCS.openbeta export feature setup: KeyValueStore.lua added to C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts\SimShaker-export-core

11:08:42.354 DCS.openbeta export feature setup: Network.lua added to C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts\SimShaker-export-core

11:08:42.355 DCS.openbeta export feature setup: Protocol.lua added to C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts\SimShaker-export-core

11:08:42.355 local SimShakerlfs=require('lfs'); dofile(SimShakerlfs.writedir()..'Scripts/SimShaker.lua') call found in C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts\Export.lua

11:08:42.355 dofile(lfs.writedir()..[[scripts\SimShaker-export-core\ExportCore.lua]]) call found in C:\Users\mmaxw\Saved Games\DCS.openbeta\Scripts\Export.lua

11:08:42.356 ********** Custom DCS World configuration found **********

11:08:42.356 DCS export feature setup: SimShaker.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts

11:08:42.357 DCS export feature setup: ExportCore.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.357 DCS export feature setup: ExportDevice.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.358 DCS export feature setup: KeyValueStore.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.358 DCS export feature setup: Network.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.359 DCS export feature setup: Protocol.lua added to C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core

11:08:42.359 local SimShakerlfs=require('lfs'); dofile(SimShakerlfs.writedir()..'Scripts/SimShaker.lua') call found in C:\Users\mmaxw\Saved Games\DCS\Scripts\Export.lua

11:08:42.360 dofile(lfs.writedir()..[[scripts\SimShaker-export-core\ExportCore.lua]]) call found in C:\Users\mmaxw\Saved Games\DCS\Scripts\Export.lua

 

My Saved Games Export.lua:

gHost = "127.0.0.1"

gPort = 9089

gExportInterval = 0.067

gExportLowTickInterval = 1

gEveryFrameArguments = {[298]="%0.1f", [299]="%0.1f", [300]="%0.1f", [301]="%0.1f", [302]="%0.1f", [303]="%0.1f", [304]="%0.1f", [305]="%0.1f", [306]="%0.1f", [307]="%0.1f", [308]="%0.1f", [309]="%0.1f", [13]="%0.1f", [10]="%0.1f", [15]="%0.1f", [16]="%0.1f", [17]="%0.1f", [18]="%0.1f", [19]="%0.1f", [20]="%0.1f", [21]="%0.1f", [22]="%0.1f", [23]="%0.1f", [24]="%0.1f", [25]="%0.1f", [29]="%0.1f", [26]="%0.1f", [31]="%0.1f", [32]="%0.1f", [38]="%0.1f", [39]="%0.1f", [40]="%0.1f", [41]="%0.1f", [33]="%0.1f", [34]="%0.1f", [35]="%0.1f", [36]="%0.1f", [37]="%0.1f", [152]="%0.1f", [154]="%0.1f", [156]="%0.1f", [158]="%0.1f", [160]="%0.1f", [166]="%0.1f", [165]="%0.1f", [167]="%0.1f", [163]="%0.1f", [164]="%0.1f", [162]="%0.1f", [1]="%0.1f", [2]="%0.1f", [3]="%0.1f", [47]="%0.1f", [48]="%0.1f", [45]="%0.1f", [44]="%0.1f", [294]="%0.1f", [376]="%0.1f", [137]="%0.1f", [4]="%0.1f", [5]="%0.1f", [6]="%0.1f", [460]="%0.1f", [461]="%0.1f", [462]="%0.1f", [464]="%0.1f", [465]="%0.1f", [466]="%0.1f", [467]="%0.1f", [810]="%0.1f", [463]="%0.1f", [273]="%0.1f", [274]="%0.1f", [270]="%0.1f", [271]="%0.1f", [267]="%0.1f", [268]="%0.1f", [264]="%0.1f", [265]="%0.1f", [520]="%0.1f", [516]="%0.1f", [468]="%0.1f", [469]="%0.1f", [2056]="%0.1f", [2057]="%0.1f", [2058]="%0.1f", [2060]="%0.1f", [4000]="%0.1f", [4001]="%0.1f", [4002]="%0.1f", [4003]="%0.1f", [4004]="%0.1f", [4005]="%0.1f", [4006]="%0.1f", [4007]="%0.1f", [4008]="%0.1f", [4009]="%0.1f", [4010]="%0.1f", [4011]="%0.1f", [4012]="%0.1f", [4013]="%0.1f", [4014]="%0.1f", [4015]="%0.1f", [4016]="%0.1f", [4017]="%0.1f", [4018]="%0.1f", [287]="%.4f", [286]="%.4f", [288]="%0.1f", [289]="%0.1f", [290]="%0.1f", [205]="%.4f", [206]="%.4f", [209]="%0.1f", [207]="%.4f", [208]="%.4f", [225]="%.4f", [217]="%.4f", [285]="%.4f", [242]="%0.2f", [310]="%.4f", [311]="%.4f", [400]="%.4f", [401]="%.4f"}

gArguments = {[345]="%.3f", [346]="%1d", [349]="%1d", [348]="%0.1f", [347]="%0.1f", [234]="%0.1f", [139]="%0.1f", [138]="%0.1f", [470]="%1d", [504]="%.3f", [295]="%0.1f", [296]="%1d", [404]="%0.1f", [402]="%0.1f", [403]="%0.1f", [379]="%0.1f", [378]="%0.1f", [336]="%1d", [332]="%1d", [333]="%1d", [334]="%1d", [335]="%1d", [409]="%0.1f", [410]="%0.1f", [381]="%0.1f", [382]="%0.1f", [383]="%0.1f", [384]="%0.1f", [454]="%0.1f", [455]="%0.1f", [456]="%0.1f", [457]="%0.1f", [368]="%1d", [375]="%0.1f", [377]="%1d", [331]="%1d", [369]="%0.1f", [226]="%0.1f", [228]="%1d", [229]="%1d", [238]="%0.1f", [233]="%0.1f", [293]="%0.1f", [241]="%0.1f", [240]="%0.1f", [340]="%0.1f", [341]="%0.1f", [344]="%0.1f", [343]="%0.1f", [342]="%0.1f", [453]="%1d", [43]="%1d", [42]="%1d", [510]="%1d", [511]="%0.1f", [513]="%0.1f", [514]="%1d", [260]="%1d", [575]="%1d", [338]="%.3f", [337]="%.3f", [339]="%0.1f", [237]="%0.1f", [413]="%.3f", [414]="%.3f", [415]="%.3f", [419]="%0.1f", [418]="%.3f", [417]="%.3f", [416]="%0.1f", [14]="%1d", [239]="%0.1f", [365]="%0.1f", [366]="%.3f", [411]="%0.1f", [412]="%1d", [405]="%0.1f", [408]="%0.1f", [451]="%.3f", [407]="%.3f", [406]="%.3f", [297]="%0.1f", [452]="%0.1f", [505]="%.3f", [506]="%.3f", [494]="%0.1f", [458]="%1d", [459]="%1d", [49]="%0.1f", [50]="%1d", [258]="%0.1f", [153]="%1d", [155]="%1d", [157]="%1d", [159]="%1d", [161]="%1d", [235]="%.1f", [236]="%0.1f", [135]="%0.1f", [46]="%1d", [30]="%1d", [11]="%1d", [27]="%1d", [140]="%0.1f", [141]="%.3f", [142]="%0.1f", [143]="%.3f", [144]="%0.1f", [145]="%.3f", [146]="%.3f", [147]="%0.1f", [148]="%0.1f", [51]="%0.1f", [52]="%.3f", [53]="%.3f", [54]="%1d", [55]="%1d", [56]="%1d", [57]="%1d", [58]="%1d", [59]="%1d", [60]="%1d", [61]="%1d", [62]="%1d", [63]="%1d", [64]="%1d", [65]="%1d", [66]="%1d", [67]="%1d", [68]="%1d", [69]="%1d", [70]="%1d", [72]="%1d", [73]="%1d", [75]="%1d", [76]="%0.1f", [77]="%.3f", [78]="%.3f", [79]="%1d", [80]="%1d", [81]="%1d", [82]="%1d", [83]="%1d", [84]="%1d", [85]="%1d", [86]="%1d", [87]="%1d", [88]="%1d", [89]="%1d", [90]="%1d", [91]="%1d", [92]="%1d", [93]="%1d", [94]="%1d", [95]="%1d", [96]="%1d", [97]="%1d", [98]="%1d", [203]="%.3f", [177]="%1d", [179]="%1d", [180]="%1d", [182]="%1d", [183]="%1d", [184]="%1d", [185]="%1d", [186]="%1d", [187]="%1d", [188]="%1d", [189]="%1d", [190]="%1d", [191]="%1d", [192]="%1d", [193]="%1d", [194]="%1d", [195]="%1d", [196]="%1d", [197]="%1d", [198]="%1d", [199]="%1d", [200]="%1d", [201]="%1d", [202]="%1d", [312]="%1d", [313]="%1d", [168]="%1d", [169]="%1d", [170]="%1d", [171]="%1d", [172]="%1d", [173]="%1d", [174]="%.3f", [4019]="%3.0f", [4020]="%3.0f", [440]="%0.1f", [443]="%0.1f", [128]="%1d", [129]="%1d", [130]="%1d", [131]="%1d", [132]="%1d", [133]="%1d", [134]="%1d", [100]="%1d", [101]="%1d", [102]="%1d", [103]="%1d", [106]="%1d", [111]="%1d", [112]="%1d", [113]="%1d", [114]="%1d", [115]="%1d", [116]="%1d", [117]="%1d", [118]="%1d", [119]="%1d", [120]="%1d", [121]="%1d", [122]="%1d", [99]="%1d", [110]="%1d", [107]="%0.1f", [108]="%.3f", [123]="%.3f", [109]="%.3f", [124]="%.3f", [126]="%.3f", [125]="%1d", [127]="%1d", [357]="%.3f", [358]="%.3f", [359]="%.3f", [360]="%.3f", [361]="%.3f", [362]="%.3f", [363]="%.3f", [364]="%.3f", [350]="%0.1f", [351]="%0.1f", [356]="%0.1f", [355]="%0.1f", [354]="%1d", [353]="%0.1f", [352]="%0.1f", [444]="%0.1f", [445]="%.3f", [446]="%0.1f", [447]="%0.1f", [230]="%1d", [373]="%0.1f", [374]="%0.1f", [277]="%1d", [275]="%1d", [272]="%1d", [269]="%1d", [266]="%1d", [263]="%.3f", [262]="%.3f", [261]="%0.1f", [216]="%.3f", [380]="%1d", [517]="%0.1f", [515]="%1d", [175]="%0.1f", [176]="%0.1f", [314]="%0.1f", [224]="%.3f", [292]="%.1f", [291]="%.3f", [215]="%1d"}

 

-- Exports.Lua from Helios F/A-18C Interface

print("Helios Aircraft Exports: F/A-18C\n")

 

 

function ProcessHighImportance(mainPanelDevice)

-- Send Altimeter Values

SendData(2051, string.format("%0.4f;%0.4f;%0.4f", mainPanelDevice:get_argument_value(220), mainPanelDevice:get_argument_value(219), mainPanelDevice:get_argument_value(218)))

SendData(2059, string.format("%0.2f;%0.2f;%0.3f", mainPanelDevice:get_argument_value(223), mainPanelDevice:get_argument_value(222), mainPanelDevice:get_argument_value(221)))

-- Calcuate HSI Value

-- SendData(2029, string.format("%0.2f;%0.2f;%0.4f", mainPanelDevice:get_argument_value(29), mainPanelDevice:get_argument_value(30), mainPanelDevice:get_argument_value(31)))

 

 

-- --IFEI textures

-- local IFEI_Textures_table = {}

-- for i=1,16 do IFEI_Textures_table = 0 end

--

--

-- -- getting the IFEI data

local li = parse_indication(5) -- 5 for IFEI

if li then

--

-- --IFEI data

--

SendData("2052", string.format("%s",check(li.txt_BINGO)))

SendData("2053", string.format("%s",check(li.txt_CLOCK_H)))

SendData("2054", string.format("%s",check(li.txt_CLOCK_M)))

SendData("2055", string.format("%s",check(li.txt_CLOCK_S)))

SendData("2056", string.format("%s",checkTexture(li.txt_DD_1)))

SendData("2057", string.format("%s",checkTexture(li.txt_DD_2)))

SendData("2058", string.format("%s",checkTexture(li.txt_DD_3)))

SendData("2060", string.format("%s",checkTexture(li.txt_DD_4)))

SendData("2061", string.format("%s",check(li.txt_FF_L)))

SendData("2062", string.format("%s",check(li.txt_FF_R)))

SendData("2063", string.format("%s",check(li.txt_FUEL_DOWN)))

SendData("2064", string.format("%s",check(li.txt_FUEL_UP)))

SendData("2065", string.format("%s",check(li.txt_OilPress_L)))

SendData("2066", string.format("%s",check(li.txt_OilPress_R)))

SendData("2067", string.format("%s",check(li.txt_RPM_L)))

SendData("2068", string.format("%s",check(li.txt_RPM_R)))

SendData("2069", string.format("%s",check(li.txt_TEMP_L)))

SendData("2070", string.format("%s",check(li.txt_TEMP_R)))

SendData("2073", string.format("%s",check(li.txt_TIMER_H)))

SendData("2072", string.format("%s",check(li.txt_TIMER_M)))

SendData("2071", string.format("%s",check(li.txt_TIMER_S)))

SendData("2074", string.format("%s",check(li.txt_Codes)))

SendData("2075", string.format("%s",check(li.txt_SP)))

SendData("2076", string.format("%s",check(li.txt_DrawChar))) -- not seen this used

SendData("2077", string.format("%s",check(li.txt_T)))

SendData("2078", string.format("%s",check(li.txt_TimeSetMode)))

--

-- --IFEI textures

--

SendData("4000", string.format("%s",checkTexture(li.RPMTexture)))

SendData("4001", string.format("%s",checkTexture(li.TempTexture)))

SendData("4002", string.format("%s",checkTexture(li.FFTexture)))

SendData("4003", string.format("%s",checkTexture(li.NOZTexture)))

SendData("4004", string.format("%s",checkTexture(li.OILTexture)))

SendData("4005", string.format("%s",checkTexture(li.BINGOTexture)))

SendData("4006", string.format("%s",checkTexture(li.LScaleTexture)))

SendData("4007", string.format("%s",checkTexture(li.RScaleTexture)))

SendData("4008", string.format("%s",checkTexture(li.L0Texture)))

SendData("4009", string.format("%s",checkTexture(li.R0Texture)))

SendData("4010", string.format("%s",checkTexture(li.L50Texture)))

SendData("4011", string.format("%s",checkTexture(li.R50Texture)))

SendData("4012", string.format("%s",checkTexture(li.L100Texture)))

SendData("4013", string.format("%s",checkTexture(li.R100Texture)))

SendData("4014", string.format("%s",checkTexture(li.LPointerTexture)))

SendData("4015", string.format("%s",checkTexture(li.RPointerTexture)))

SendData("4016", string.format("%s",checkTexture(li.ZTexture)))

SendData("4017", string.format("%s",checkTexture(li.LTexture)))

SendData("4018", string.format("%s",checkTexture(li.RTexture)))

 

--

----

end

--

-- getting the UFC data

local li = parse_indication(6) -- 6 for UFC

if li then

--SendData("2098", string.format("%s",li))

local function UFCSendData(UFCcode, UFCvalue)

-- This is a 16 segment display so we need to map numerals to a single charcter in the Hornet UFC.ttf font

-- the dash has already been catered for and the alphabetic characters should map without change

-- Also need to special case 12 because sending ascii 172 is problematic in the Helios code

if tonumber(UFCvalue) ~= nil then

if tonumber(UFCvalue) == 12 then

UFCvalue = string.char(125)

else

UFCvalue = string.char(161+UFCvalue)

end

end

SendData(UFCcode,string.format("%1s",UFCvalue))

end

SendData("2080", string.format("%s",check(li.UFC_MainDummy)))

SendData("2081", string.format("%s",check(li.UFC_mask)))

SendData("2082", string.format("%s",check(li.UFC_OptionDisplay1))) -- These may need special treatment for Hornet_UFC_Unified.ttf if there are special chars or numbers in the data

SendData("2083", string.format("%s",check(li.UFC_OptionDisplay2))) -- These may need special treatment for Hornet_UFC_Unified.ttf if there are special chars or numbers in the data

SendData("2084", string.format("%s",check(li.UFC_OptionDisplay3))) -- These may need special treatment for Hornet_UFC_Unified.ttf if there are special chars or numbers in the data

SendData("2085", string.format("%s",check(li.UFC_OptionDisplay4))) -- These may need special treatment for Hornet_UFC_Unified.ttf if there are special chars or numbers in the data

SendData("2086", string.format("%s",check(li.UFC_OptionDisplay5))) -- These may need special treatment for Hornet_UFC_Unified.ttf if there are special chars or numbers in the data

SendData("2087", string.format("%1s",check(li.UFC_OptionCueing1)):gsub(":",string.char(200))) -- 16 Segment two-dot colon in Hornet_UFC_Unified.ttf

SendData("2088", string.format("%1s",check(li.UFC_OptionCueing2)):gsub(":",string.char(200))) -- 16 Segment two-dot colon in Hornet_UFC_Unified.ttf

SendData("2089", string.format("%1s",check(li.UFC_OptionCueing3)):gsub(":",string.char(200))) -- 16 Segment two-dot colon in Hornet_UFC_Unified.ttf

SendData("2090", string.format("%1s",check(li.UFC_OptionCueing4)):gsub(":",string.char(200))) -- 16 Segment two-dot colon in Hornet_UFC_Unified.ttf

SendData("2091", string.format("%1s",check(li.UFC_OptionCueing5)):gsub(":",string.char(200))) -- 16 Segment two-dot colon in Hornet_UFC_Unified.ttf

UFCSendData("2092", string.format("%2s",check(li.UFC_ScratchPadString1Display)):gsub("_",string.char(201)):gsub("`","1"):gsub("~","2"):gsub(" ",""))

UFCSendData("2093", string.format("%2s",check(li.UFC_ScratchPadString2Display)):gsub("_",string.char(201)):gsub("`","1"):gsub("~","2"):gsub(" ",""))

SendData("2094", string.format("%7s",check(li.UFC_ScratchPadNumberDisplay)):gsub(" ","<"))

UFCSendData("2095", string.format("%2s",check(li.UFC_Comm1Display)):gsub("`","1"):gsub("~","2"):gsub(" ",""))

UFCSendData("2096", string.format("%2s",check(li.UFC_Comm2Display)):gsub("`","1"):gsub("~","2"):gsub(" ",""))

-- test command 00000000*2095=~:2093=�:2092=~:2096=~:2094=8888888:2082=~~~~:2083=~~~~:2084=~~~~:2085=~~~~:2086=~~~~:2087=�:2088=�:2089=�:2090=�:2091=�

end

 

 

--SendData("2098", string.format("%s", table.concat(IFEI_Textures_table,", ") ) ) -- IFEI Textures

 

end

 

 

function ProcessLowImportance(mainPanelDevice)

-- Get Radio Frequencies

--local lUHFRadio = GetDevice(54)

--SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000))

-- ILS Frequency

--SendData(2251, string.format("%0.1f;%0.1f", mainPanelDevice:get_argument_value(251), mainPanelDevice:get_argument_value(252)))

-- TACAN Channel

--SendData(2263, string.format("%0.2f;%0.2f;%0.2f", mainPanelDevice:get_argument_value(263), mainPanelDevice:get_argument_value(264), mainPanelDevice:get_argument_value(265)))

 

end

 

checkTexture = function(s)

if s == nil then return "0" else return "1" end

end

 

-- for some reason, this causes a failure on my system so commenting it

-- out in the hope that others don't see a problem with it.

-- os.setlocale("ISO-8559-1", "numeric")

 

-- Simulation id

gSimID = string.format("%08x*",os.time())

 

-- State data for export

gPacketSize = 0

gSendStrings = {}

gLastData = {}

 

-- Frame counter for non important data

gTickCount = 0

 

-- DCS Export Functions

function LuaExportStart()

-- Works once just before mission start.

 

-- 2) Setup udp sockets to talk to helios

package.path = package.path..";.\\LuaSocket\\?.lua"

package.cpath = package.cpath..";.\\LuaSocket\\?.dll"

 

socket = require("socket")

 

c = socket.udp()

c:setsockname("*", 0)

c:setoption('broadcast', true)

c:settimeout(.001) -- set the timeout for reading the socket

end

 

function LuaExportBeforeNextFrame()

ProcessInput()

end

 

function LuaExportAfterNextFrame()

end

 

function LuaExportStop()

-- Works once just after mission stop.

c:close()

end

 

function ProcessInput()

local lInput = c:receive()

local lCommand, lCommandArgs, lDevice, lArgument, lLastValue

 

if lInput then

 

lCommand = string.sub(lInput,1,1)

 

if lCommand == "R" then

ResetChangeValues()

end

 

if (lCommand == "C") then

lCommandArgs = StrSplit(string.sub(lInput,2),",")

lDevice = GetDevice(lCommandArgs[1])

if type(lDevice) == "table" then

lDevice:performClickableAction(lCommandArgs[2],lCommandArgs[3])

end

end

end

end

 

function LuaExportActivityNextEvent(t)

t = t + gExportInterval

 

gTickCount = gTickCount + 1

 

local lDevice = GetDevice(0)

if type(lDevice) == "table" then

lDevice:update_arguments()

 

ProcessArguments(lDevice, gEveryFrameArguments)

ProcessHighImportance(lDevice)

 

if gTickCount >= gExportLowTickInterval then

ProcessArguments(lDevice, gArguments)

ProcessLowImportance(lDevice)

gTickCount = 0

end

 

FlushData()

end

 

return t

end

 

-- Helper Functions

function StrSplit(str, delim, maxNb)

-- Eliminate bad cases...

if string.find(str, delim) == nil then

return { str }

end

if maxNb == nil or maxNb < 1 then

maxNb = 0 -- No limit

end

local result = {}

local pat = "(.-)" .. delim .. "()"

local nb = 0

local lastPos

for part, pos in string.gfind(str, pat) do

nb = nb + 1

result[nb] = part

lastPos = pos

if nb == maxNb then break end

end

-- Handle the last field

if nb ~= maxNb then

result[nb + 1] = string.sub(str, lastPos)

end

return result

end

 

function round(num, idp)

local mult = 10^(idp or 0)

return math.floor(num * mult + 0.5) / mult

end

 

function check(s)

if type(s) == "string" then

return s

else

return ""

end

end

-- Status Gathering Functions

function ProcessArguments(device, arguments)

local lArgument , lFormat , lArgumentValue

 

for lArgument, lFormat in pairs(arguments) do

lArgumentValue = string.format(lFormat,device:get_argument_value(lArgument))

SendData(lArgument, lArgumentValue)

end

end

 

function parse_indication(indicator_id) -- Thanks to [FSF]Ian code

local ret = {}

local li = list_indication(indicator_id)

if li == "" then return nil end

local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")

while true do

local name, value = m()

if not name then break end

ret[name] = value

end

return ret

end

 

-- Network Functions

function SendData(id, value)

if string.len(value) > 3 and value == string.sub("-0.00000000",1, string.len(value)) then

value = value:sub(2)

end

 

if gLastData[id] == nil or gLastData[id] ~= value then

local data = id .. "=" .. value

local dataLen = string.len(data)

 

if dataLen + gPacketSize > 576 then

FlushData()

end

 

table.insert(gSendStrings, data)

gLastData[id] = value

gPacketSize = gPacketSize + dataLen + 1

end

end

 

function FlushData()

if #gSendStrings > 0 then

local packet = gSimID .. table.concat(gSendStrings, ":") .. "\n"

socket.try(c:sendto(packet, gHost, gPort))

gSendStrings = {}

gPacketSize = 0

end

end

 

function ResetChangeValues()

gLastData = {}

gTickCount = 10

end

 

dofile("C:\Users\mmaxw\Saved Games\DCS\Scripts\Helios")

dofile("C:\Users\mmaxw\Saved Games\DCS\Scripts\SimShaker-export-core")

 

local SimShakerlfs=require('lfs'); dofile(SimShakerlfs.writedir()..'Scripts/SimShaker.lua')

 

dofile(lfs.writedir()..[[scripts\SimShaker-export-core\ExportCore.lua]])

 

local vaicomlfs = require('lfs'); dofile(vaicomlfs.writedir()..[[scripts\VAICOMPRO\VAICOMPRO.export.lua]])

Link to comment
Share on other sites

Hi Andre: Again, thanks for your prompt reply as always. However, my inquiry wasn't about SS Sound Module but, rather a suspected conflict with my 908 Jet Seat/SSA and Helios export.lua. To be quite frank, I haven't activated my SS Sound Module as of yet. I apologize for being a pain but, I can't seem to get my 908 Jet Seat working without (as I mentioned above) pressing the Repair DCS button and then Helios stops functioning. If this is not the correct forum to search for possible fix, would you kindly point me in the right direction. Also interested in pre-ordering your FSE pad - let me know how I can make that happen. As always thanks for your continued support.

Best regards,

Mike

Link to comment
Share on other sites

  • 2 weeks later...

Hello,

 

New user here ;-)

 

I have butkicker gamer 2, with SSA and sound module (licensed). The SSA sound output is throught a sound blaster audigy only for this.

 

All the test sounds work, but in DCS sounds like guns, APU or engines start don't work. Other sounds like bumps, missiles launch, or in flight shake works.

 

The only strange in my setup is that in the manual say max channels=1 (mono) if only one transductor (my case), but with this option nothing works, and i have to select 2(stereo).

 

Can be related?

 

Thanks.

Link to comment
Share on other sites

Hello gonvise,

I suggest your sound card may not support mono mode. In stereo mode at least one engine (left or right one) should work with your one shaker. I think you can try those samples (guns, APU or engines start) in test section of SimShaker Sound Module GUI.

Gametrix JetSeats thread (in English) ,

SimShaker addon for bass-shakers thread (in English),

Andre's blog, downloads, manuals (in English).

 

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Hello gonvise,

I suggest your sound card may not support mono mode. In stereo mode at least one engine (left or right one) should work with your one shaker. I think you can try those samples (guns, APU or engines start) in test section of SimShaker Sound Module GUI.

 

Ok, I solved the gun with faqs, I was unlimited ammo enabled in DCS. Now works.

 

I was testing APU rumble with F18, and seems it has not APU effect.

 

Then are you saying that I am losing effects with stereo mode? Is valid if I join the two channels with stereo to mono adapter?

 

And a last thing... the canopy close effect in F14 is sensational and very inmersive; but in F18 is very subtle and desynchronized, when canopy is closed, the effect continue a little more.

 

Thanks.

Link to comment
Share on other sites

Hello.

I'm afraid I don't understand you.

 

Sorry.

 

I have a buttkicker, SimShaker with sound module, and it works with the most of the modules of DCS (F18,F14, ...). But it doesn't work with I16 recent module (no vibrations). The I16 not shown in the sim shaker modules list. I think you have not implemented, but is posible to have generic vibrations?

 

Thanks.

Link to comment
Share on other sites

  • 3 months later...

How can I go about making an effect of a catapult launch? Basically, I am going to build a punch that will punch the back of my seat at the start of the launch. The same punch will fire at an ejection. I don't know how to add or adjust the files. Is there a tutorial or something?

i7-7700K, 32GB DDR4, 525GB SSD, 1TB HDD, GTX 1080Ti 11GB, Liquid Cooling, Win 10, Warthog HOTAS, TPR Pedals, HP Reverb, Oculus Rift with Touch, Jetseat and bass shakers, PointCTRL, and Scale F-14B Cockpit

Link to comment
Share on other sites

So I see how to adjust the effect that is sent to the transducers by finding the necessary file and tweaking it. So how do you make a new effect or break out part of an effect? This punch I talk about is just a single punch in the back. The current catapult effect will also be happening through the current set of transducers. Essentially, the Jetseat and the bass shakers will operate normally. This new transducer is a single powerful punch in the back for ejection and cat launches.

 

Thanks, Pal!! Enjoy your trip!! Thanks for the A!+++ customer service to! Dan


Edited by mariner3302

i7-7700K, 32GB DDR4, 525GB SSD, 1TB HDD, GTX 1080Ti 11GB, Liquid Cooling, Win 10, Warthog HOTAS, TPR Pedals, HP Reverb, Oculus Rift with Touch, Jetseat and bass shakers, PointCTRL, and Scale F-14B Cockpit

Link to comment
Share on other sites

Thank you Dan, I'm already back home :)

 

The effects are made inside SimShaker for Aviators by f4l0, if he is able to get enough data from DCS. In this context SimShaker Sound Module mainly allows you just to adjust existing samples. New samples first of all must be supported in SSA.

Gametrix JetSeats thread (in English) ,

SimShaker addon for bass-shakers thread (in English),

Andre's blog, downloads, manuals (in English).

 

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • 3 weeks later...

Another (free) method of mixing game sound with SimShaker output going to bass shakers. i.e. a less CPU-burdening (and less customizable) alternative to VoiceMeeter. Assumes you have Realtek audio (includes Stereo Mix):

 

 

 

1) Windows Recording devices > Stereo Mix > Listen > Playback thru *your shaker card here*

 

2) Check "Listen to this device"

3) Adjust relative volume ratio under "Levels"

4) Further adjust volume of each card as desired in Windows.

5) Adjust your external hardware sound control if so equipped (you can reduce external hardware volume control setting while increasing Windows volume setting in order to boost shaker input for a given sound level).

 

 

NOTE: You may also need to temporarily disable Realtek High Definition Audio under Sound Video and Game Controllers within Device Manager in order to get the secondary sound card (shaker) to work. I am not certain that was actually my problem but I did that. My primary sound is an integrated Realtek "5.1 Analog Speakers", and the secondary (shaker) is an external "Analog USB Sound Card" (Vantec USB External 7.1 Audio Adapter - plugged into a 2.1 amp). This card has a software mixer app which is handy.

 

 

 

Here are the Windows setup screenshots as requested by =Andre=:

 

 

picture.php?albumid=1761&pictureid=11154

picture.php?albumid=1761&pictureid=11155

picture.php?albumid=1761&pictureid=11156

picture.php?albumid=1761&pictureid=11157

picture.php?albumid=1761&pictureid=11158

picture.php?albumid=1761&pictureid=11159


Edited by Darrylx444
added screenshots of settings

[sIGPIC][/sIGPIC]

My Setup: Vive Pro 2, RTX 3090, I7-11700K, VKB Gladiator II/K conversion, TWCS, TPR pedals, PlaySeat, SimShaker, VoiceAttack

Link to comment
Share on other sites

Thank you for sharing that!

Maybe you could add some screenshots?

Windows 10 interface is a mess.

 

 

Hi Andre,

 

Will do. Firstly, I have a small bug report for you:

Verbose Logging being enabled caused my Sound Module Demo to crash, freeze, or output random noise to my shaker. I had zero problems for about 5 hours prior to turning it on, and then struggled to figure out why I started having those issues. Re-installed, etc. Anyway, it works fine again with it turned off again now.

[sIGPIC][/sIGPIC]

My Setup: Vive Pro 2, RTX 3090, I7-11700K, VKB Gladiator II/K conversion, TWCS, TPR pedals, PlaySeat, SimShaker, VoiceAttack

Link to comment
Share on other sites

OK, I updated my previous post above with the setup screenshots.

Also, I use a Rift for VR, but prefer NOT to use the Rift headphones (they are removed). Instead I use my existing external 5.1 speaker system for sound. Personal preference and also for convenience when not using VR.

 

 

 

This clarification is for anyone wondering why I have 2 sound cards plus a Rift, when I could have just used the Rift headphones and converted my integrated sound card to shaker duty.

[sIGPIC][/sIGPIC]

My Setup: Vive Pro 2, RTX 3090, I7-11700K, VKB Gladiator II/K conversion, TWCS, TPR pedals, PlaySeat, SimShaker, VoiceAttack

Link to comment
Share on other sites

  • Recently Browsing   0 members

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