SSF Auto-mount script not working [DTLite + Win10]

Get answers to questions about using mGalaxy.
Post Reply
reaperke
Newbie
Newbie
Posts: 14
Joined: Sat Feb 27, 2016 11:05 pm

Hi,

I had high hopes mgalaxy 6 would have tackled the auto mount issue I keep having with DTLite no being found but no luck.

The problem lies in the fact that my DTLite under Win10 seems to have no entries in the windows registry as opposed to what the autolt script expects so I always get the error "DTLite not found.Please install it!".

DTLite is installed yet nowhere in the registry and I have been uninstalling/reinstalling more than enough.

I've tried to change the script myself based on info with similar issues but I'm no coder and nothing I try seems to change anything.

Can someone please help me out with this? Much appreciated.

Gr.
Koen
Aeliss
Hero Member
Hero Member
Posts: 900
Joined: Thu Apr 04, 2013 5:55 pm

Ha yes, it's normal, I forget that.
On last deamon tool version (or only for win10) the executable isn't called "dtlite.exe" but "DTAgent.exe".

Try to edit the file "mGalaxy\Data\Scripts\SSF [Script + DTlite].au3" with this modification, you can edit it with notepad.

Or if it doesn't work, ca you take a look in the registry to find the correct key ?
Last edited by Aeliss on Tue Jul 19, 2016 1:33 pm, edited 1 time in total.
reaperke
Newbie
Newbie
Posts: 14
Joined: Sat Feb 27, 2016 11:05 pm

As far as knowing what I'm doing I can only find two entries in the registry referring to DTAgent.exe, neither seems to solve the problem when changing the key in the script.

I can't imagine that I'm the only one having this issue, any more thoughts?

Why does this use the registry key to begin with?  Launchbox runs this proces very well using additional apps feature with a bat file, seems like this could be a similar approach to the new pre-launch feature for mgalaxy6

This issue is the only open keeping me from going to a premium version as I like mGalaxy quite a lot so it's a shame tha emulating one of ma favorite consoles is causing some grief
User avatar
mgalaxy
Administrator
Administrator
Posts: 1192
Joined: Tue Dec 05, 2006 7:46 pm

reaperke,
Why does this use the registry key to begin with?
It uses a registry key to be "universal" and not require the user to hard code the path to the application!

I will fix this DTlite + Win10 problem while I'll be back from holiday!
In the meanwhile, I would suggest you to simply enter the path to your application in the script!
Simply copy/paste this code to replace the one you can find in "mGalaxy\Data\Scripts\SSF [Script + DTlite].au3"

You will of course edit the line: Local $pathdaemon = "Type here the path to DTlite.exe" with the real path to your DTlite.exe executable

Code: Select all

Local $count = StringInStr($CmdLineRaw, '.au3"', 0 , 1, 1)
Local $commandline = StringTrimLeft( $CmdLineRaw, $count + 5 )

Local $count2 = StringInStr($commandline, '.exe', 0 , 1, 1)
local $app = StringLeft ($commandline, $count2 + 3 )
local $command = StringTrimLeft($commandline, $count2 + 4 )
if not $command then exit 0

Local $workingDir = StringRegExpReplace($app, "\\[^\\]*$", "")
FileChangeDir($workingDir)
;---------------------------------------------------------------------------

Local $pathdaemon = "Type here the path to DTlite.exe"

RunWait('"' & $pathdaemon & '" -mount 0,' & $command )
RunWait('"' & $app & '"')
RunWait('"' & $pathdaemon & '" -unmount 0')

Exit 0
Last edited by mgalaxy on Thu Jul 21, 2016 6:56 am, edited 1 time in total.
reaperke
Newbie
Newbie
Posts: 14
Joined: Sat Feb 27, 2016 11:05 pm

Wow thanks for the update, the intermediate solutions doesn't do much though it just opens DTlite where I can than manually mount an image, closing it down launches SSF with the game, so workable for a while at least
User avatar
mgalaxy
Administrator
Administrator
Posts: 1192
Joined: Tue Dec 05, 2006 7:46 pm

Many users revert to DTLite v5.0...the script I've joined here is working with that v5
I think (that must be verified) that you should use this command line if you're using DTLite v10:

Code: Select all

RunWait($pathdaemon & ' -mount dt,0,' & $command )
So, the script would be:

Code: Select all

Local $count = StringInStr($CmdLineRaw, '.au3"', 0 , 1, 1)
Local $commandline = StringTrimLeft( $CmdLineRaw, $count + 5 )

Local $count2 = StringInStr($commandline, '.exe', 0 , 1, 1)
local $app = StringLeft ($commandline, $count2 + 3 )
local $command = StringTrimLeft($commandline, $count2 + 4 )
if not $command then exit 0

Local $workingDir = StringRegExpReplace($app, "\\[^\\]*$", "")
FileChangeDir($workingDir)
;---------------------------------------------------------------------------

Local $pathdaemon = "C:\Program Files\DAEMON Tools Lite\DTAgent.exe"

RunWait($pathdaemon & ' -mount dt,0,' & $command )
RunWait('"' & $app & '"')
RunWait('"' & $pathdaemon & '" -unmount,0')

Exit 0
User avatar
mgalaxy
Administrator
Administrator
Posts: 1192
Joined: Tue Dec 05, 2006 7:46 pm

reaperke,

Is your problem resolved? May we still help you?
reaperke
Newbie
Newbie
Posts: 14
Joined: Sat Feb 27, 2016 11:05 pm

Hi,

We're certainly heading in the right direction here.

It now auto mounts and launches well in SSF however when quitting DT says "unknown switch in command line"

The help in this is greatly appreciated, nice to know a platform like this is well supported.

Kind regards
Koen
User avatar
mgalaxy
Administrator
Administrator
Posts: 1192
Joined: Tue Dec 05, 2006 7:46 pm

Hi Koen,

Here is a working script, tested! :-)
Just type the path to DTagent.exe in line 13 (ex.: Local $pathdaemon = "C:\Program Files\DAEMON Tools Lite\DTAgent.exe")

Code: Select all

Local $count = StringInStr($CmdLineRaw, '.au3"', 0 , 1, 1)
Local $commandline = StringTrimLeft( $CmdLineRaw, $count + 5 )

Local $count2 = StringInStr($commandline, '.exe', 0 , 1, 1)
local $app = StringLeft ($commandline, $count2 + 3 )
local $command = StringTrimLeft($commandline, $count2 + 4 )
if not $command then exit 0

Local $workingDir = StringRegExpReplace($app, "\\[^\\]*$", "")
FileChangeDir($workingDir)
;---------------------------------------------------------------------------

Local $pathdaemon = "Type here the path to DTagent.exe"

RunWait($pathdaemon & ' -mount dt,0,' & $command )
RunWait('"' & $app & '"')
RunWait($pathdaemon & ' -unmount dt,0')

Exit 0
Last edited by mgalaxy on Sun Jul 31, 2016 10:39 am, edited 1 time in total.
User avatar
mgalaxy
Administrator
Administrator
Posts: 1192
Joined: Tue Dec 05, 2006 7:46 pm

To conclude, here is the final script (available with next mGalaxy version).
With this script, no need to specify your local path to Daemon Tools v10, mGalaxy will find it by itself!

Code: Select all

;----------========== Parsing (common to every scripts) ==========----------
;
; There has been a call from mGalaxy to AutoIt and a commandline has been passed to it:
; Structure:/AutoIt3ExecuteScript "Path_to_script(between quotes)" Path_to_emu Emu_parameters(including a "Path_to_rom"(between quotes))
; Example:/AutoIt3ExecuteScript "C:\...\MESS [Script].au3" C:\...\mess64.exe a800 -flop1 "C:\...\Boulder_Dash.zip" -skip_gameinfo -nowindow
;
; 1. We don't need the part related to AutoiIt anymore [/AutoIt3ExecuteScript "Path to script (between quotes)"], the rest is assigned to '$commandline'
; 2. '$commandline' is then split in two: [Path_to_emu] goes to '$app', [parameters(including a "Path to rom" (between quotes))] goes to '$command'
; 3. Some apps (MESS for instance, when it searchs for a system Bios) need to know the path to their 'Working Directory'. We do 'extract' it from the full app path
;
; 1
Local $count = StringInStr($CmdLineRaw, '.au3"', 0 , 1, 1)
Local $commandline = StringTrimLeft( $CmdLineRaw, $count + 5 )
; 2
Local $count2 = StringInStr($commandline, '.exe', 0 , 1, 1)
local $app = StringLeft ($commandline, $count2 + 3 )
local $command = StringTrimLeft($commandline, $count2 + 4 )
if not $command then exit 0
; 3
Local $workingDir = StringRegExpReplace($app, "\\[^\\]*$", "")
FileChangeDir($workingDir)
;---------------------------------------------------------------------------

;Get path to DTAgent.exe
Local $pathdaemon = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "DAEMON Tools Lite Automount")
If not $pathdaemon Then
   MsgBox(4096, "Search error", "DAEMON Tools Lite not found. Please install it!")
   exit 0
Endif
$pathdaemon = StringTrimRight ( $pathdaemon, 9 )

RunWait($pathdaemon & ' -mount dt,0,' & $command )
RunWait('"' & $app & '"')
RunWait($pathdaemon & ' -unmount dt,0')

Exit 0
reaperke
Newbie
Newbie
Posts: 14
Joined: Sat Feb 27, 2016 11:05 pm

This final scripts is great, thx for the effort, on with premium :-)
User avatar
mgalaxy
Administrator
Administrator
Posts: 1192
Joined: Tue Dec 05, 2006 7:46 pm

[quote="reaperke"]
This final scripts is great, thx for the effort, on with premium :-)
[/quote]
Glad to help you!
Thanks for your support!
Post Reply