ola amigos estou com um problema para rodar o emulador zsnesw no attract mode, eu tenho o script do super nintendo mas ele so roda os jogos se ele estiver o nome da rom junto tipo captaincommando, se estiver captain commando (usa) ou so captain commando separado nao roda.

meu script do super nes

Código:
;****************************************
;Autoit V3
;Autor brbranco
;Data 22/04/2008
;Objetivo: Controlar o emulador Zsnesw.exe
;****************************************

;ajustas as opções
AutoItSetOption("WinTitleMatchMode", 4)
BlockInput (1)
;Move o mouse para o canto direito da tela
Sleep(1000)
MouseMove(800, 0, 0)
Sleep(2000)
;Ocultar Janela do Attract
$Oculta = WinSetState ("Attract-Mode", "", @SW_HIDE)
If Not $Oculta then
MsgBox(4096, "ERRO", "Não foi possível achar a janela Attract-Mode",10)
Exit(0)
EndIf

;rotina de loop
Global $TEMPO_RESTANTE, $TEMPO_ATUAL, $TEMPO_DECORRIDO, $AVISADO, $lopping

;atualiza de 1 em 1 minuto
$INTERVALO=0

;quando faltar 1 minuto
$AVISADO=False

;verifica quanto tempo tem de ficha
$TEMPO_RESTANTE=VerificaTempo()

;verifica se o advmenu passou o nome da rom
If NOT $CmdLine[0] = 1 Then
	SplashImageOn("", "..\auxiliar\image\mensa1.gif", 220, 40, -1, -1, 1)
	SoundPlay("..\auxiliar\som\advfaltajogo.wav",1)
	SplashOff()
	Exit ( 0 )
EndIf


;verifica se a rom passada pela macro "%p" existe.
If Not FileExists($CmdLine[1]) Then
	MsgBox(0,"Erro", "O jogo " & $CmdLine[1] & ", passado pelo advmenu não foi localizado", 15)
	Exit(0)
EndIf

;abre o joytokey
$drive=StringLeft(@ScriptDir,2)
If Not ProcessExists("joytokey.exe") Then
	$exe_joy = ShellExecute("joytokey.exe", "snes", $drive & "\arcade\joytokey")
	if @error Then
		SplashImageOn("", "..\auxiliar\image\mensa4.gif", 220, 40, -1, -1, 1)
		Sleep(10000)
		SplashOff()
		FechaEmulador()
		Exit(0)
	EndIf
Else
	Sleep(2000)
EndIf

;chama o emulador, o -m= não mostrar a interface gráfica, -j=desabilitar o mouse
$exe_mame = ShellExecute("zsnesw.exe", "-m -j " & $CmdLine[1], @ScriptDir,"open",@SW_SHOWNORMAL)
If @error Then
	SplashImageOn("", "..\auxiliar\image\mensa5.gif", 220, 40, -1, -1, 1)
	SoundPlay("..\auxiliar\som\erroemuexe.wav")
	SplashOff()
	Exit(0)
EndIf

WinWaitActive("classname=zsnesw", "",3)
BlockInput (0)
HotKeySet("j", "FechaEmulador") ;intala o hotkey, para capturar a tecla "P", saida
HotKeySet("k", "PegaFicha") 	;intala o hotkey, usando a tecla "K" , ficha
sleep(100)
 Send("{SHIFT}")

$lopping=1
$TEMPO_ATUAL=DllCall("kernel32.dll", "int", "GetTickCount")
While $lopping
	;atualiza o tempo jogado
	$TEMPO_DECORRIDO=DllCall("kernel32.dll", "int", "GetTickCount")
	sleep(100)
 Send("{SHIFT}")
	;fecha o emulador quando o tempo da ficha for atingido
	If $TEMPO_RESTANTE <= ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]) Then
		$TEMPO_RESTANTE=0
		FechaEmulador()
		ExitLoop
	EndIf

	;atualiza os contadores a cada 1 minuto (600 * 100)
	If $INTERVALO >=600 Then
		GravaTempo()
		$INTERVALO=0
	EndIf

	;avisa quando faltar somente 1 minuto
	If (( $TEMPO_RESTANTE - ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]) ) <= 60000 ) And ( Not $AVISADO ) Then
		SoundPlay("..\auxiliar\som\falta1.wav")
		$AVISADO=True
	EndIf

	$INTERVALO+=1
	sleep(100)
WEnd
Sleep (2000)
;;Restaura a Janela do Attract
$Restaura = WinSetState ("Attract-Mode", "", @SW_SHOW)
If Not $Restaura then
	 MsgBox(4096, "ERRO", "Não foi possível achar a janela Attract-Mode",10)
	 Else
	 WinActivate ( "Attract-Mode", "")
 EndIf
 ;Envia um pressionamento da tecla Shift<<<<airhead
 sleep(100)
 Send("{SHIFT}")
 Exit(0)

;função que irá verificar o estado do emulador e fecha-lo caso necessario
Func FechaEmulador()
	Local $emulador, $fechou
	;fecha o joytokey
If ProcessExists("joytokey.exe") Then
if Not WinActive("JoyToKey Ver3.7.4") Then
WinActivate ("JoyToKey Ver3.7.4")
EndIf
Send("{LALT}FX")
ProcessWaitClose("joytokey.exe",2)
ProcessClose("joytokey.exe")
EndIf

	;remove os hotkeys
	HotKeySet("j")
	HotKeySet("k")

	;envia um ESC para o emulador
	if Not WinActive("classname=ZSNESWIN") Then
		WinActivate ("classname=ZSNESWIN")
	EndIf

	Send("{ESC DOWN}")
	Sleep(100)
	Send("{ESC UP}")
	sleep(100)
       While ProcessExists("zsnesw.exe")
	processClose("zsnesw.exe")
        Wend
	;mostra a menssagem
	MouseMove(800, 0, 0)
	SplashImageOn("", "..\auxiliar\image\mensa6.gif", 220, 40, -1, -1, 1)
	SoundPlay("..\auxiliar\som\fechaemu.wav",1)
	$fechou=WinWaitClose("classname=ZSNESWIN","", 5)
	if Not $fechou Then
		sleep(100)
       While ProcessExists("zsnesw.exe")
	processClose("zsnesw.exe")
Wend
EndIf
	SplashOff()
	sleep(100)
 Send("{SHIFT}")
	;atualiza o banco de dados
	GravaTempo()
	$lopping=0
EndFunc

;função responssavel por armazenar as fichas
Func PegaFicha()
	Local $atual, $valor, $contador, $calcula, $adiciona
	;lê os dados atuais
	$atual=$TEMPO_RESTANTE
	$contador=IniRead("..\advmenu.ini","FICHEIRO","CONTADOR","0")
	$valor=IniRead("..\advmenu.ini","CONFIGURACAO","TEMPOPORFICHA","600000")
	$calcula=($atual + Number($valor))
	$adiciona=(Number($contador)+1)
	;grava os novos valores
	IniWrite("..\advmenu.ini","FICHEIRO","FICHAS",String($calcula))
	IniWrite("..\advmenu.ini","FICHEIRO","CONTADOR",String($adiciona))
	SoundPlay("..\auxiliar\som\coin.wav")
	$TEMPO_RESTANTE=$calcula
	$TEMPO_ATUAL=DllCall("kernel32.dll", "int", "GetTickCount")
	$AVISADO=False
EndFunc


;função responssavel por verificar o tempo pela primeira vez
Func VerificaTempo()
	Local $atual, $valor, $calcula
	;lê os dados atuais
	$atual=IniRead("..\advmenu.ini","FICHEIRO","FICHAS","0")
	$valor=IniRead("..\advmenu.ini","CONFIGURACAO","TEMPOPORFICHA","600000")

	;atualiza a quantidade de fichas
	$calcula=Number($atual)
	If $calcula <= 30000 Then
		$calcula=30000 ;caso não tenha ficha dá 30 segundos para ver o jogo
		$AVISADO=True
		SoundPlay("..\auxiliar\som\falta30.wav", 1)
	EndIf
	Return $calcula
EndFunc

;função para atualiza o banco de dados
Func GravaTempo()
	Local $calcula
	$calcula=($TEMPO_RESTANTE - ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]))
	If $calcula < 0 Then
		IniWrite("..\advmenu.ini","FICHEIRO","FICHAS","0")
	Else
		IniWrite("..\advmenu.ini","FICHEIRO","FICHAS",String($calcula))
	EndIf
EndFunc

Obrigado