Jump to content
(Public Beta) HyperSpin 2 is now available for everyone ×

Marquee Magician, and HyperLaunch


Tempest

Recommended Posts

Posted

Hi Guys. First post here, if I remember correctly. I have had a couple of requests to Add support for Marquee Magician to HyperSpin. For those of you who don't know, Marquee Magician is a program that displays Game \ Emulator Specific graphics on a secondary monitor. You can read about it here:

http://www.gameex.info/forums/index.php?showtopic=6911

This is the code that I came up with for HyperLaunch:

/**
* HyperLaunch Version 1.04.5
* Autohotkey script by BadBoyBill [email protected]
* CursorHide by Lazlo
* Additional add-ons by brian_hoffman
*
* If you are reading this and do not have autohotkey you can get it
* @ http://www.autohotkey.com/download/
* If you would like to modify this script and share it thats OK, but
* see if your modification is something that we would like to add
* to the official version.
*
* Refer to the autohotkey documentation for the keyoboard keylist
*
* If this script does not support your favorite emulator
* then please request support @ http://www.hyperspin-fe.com/forum
*
* :Supported emulators:
* :System: :Emulators:
*Atari 5200.............................messpp.exe
*Atari Lynx.............................handy.exe
*Daphne.................................daphne.exe
*Future Pinball.........................Future Pinball.exe
*Gameboy Advance........................visualboyadvance.exe
*Gameboy................................visualboyadvance.exe
*Gameboy Color..........................visualboyadvance.exe
*MAME...................................vmame.exe
*Neo Geo................................mame.exe
*Neo Geo Pocket Color...................NeoPop-Win32.exe
*Nintendo 64............................project64.exe
*Nintendo Entertainment System..........nestopia.exe
*Panasonic 3DO..........................FreeDO.exe
*Sega 32X...............................fusion.exe
*Sega CD................................fusion.exe
*Sega Dreamcast.........................nullDC_100b1_6.exe
*Sega Game Gear.........................fusion.exe
*Sega Genesis...........................fusion.exe
*Sega Master System.....................fusion.exe
*Sony Playstation.......................psxfin.exe
*Super Nintendo Entertainment System....zsnesw.exe
*TurboGrafx 16..........................mednafen.exe
*Zinc...................................zinc.exe
*JukeBox................................silverjuke.exe
*JukeBox................................SKJukebox.exe
*
*
*/

#SingleInstance force ;Prevent multiple instances
#InstallKeybdHook
SetTitleMatchMode 2

;------------------------------------------------------------------------------;
; MAIN SETTINGS ;
;------------------------------------------------------------------------------;

;[uNIVERSAL HOTKEYS] ;SEPERATE MULTIPLE KEYS WITH &(ampersand) up to 2 keys.
exitScriptKey = q & s ;Secret hotkey(s) to exit script if needed
;Not to be confused with exit emulator keys

exitEmulatorKey = Esc ;This key/key combo will close any emulators
;that do not have normal closing methods.

toggleCursorKey = t ;hotkey(s) to show or hide cursor if needed
;when hideCursor below is true

;[MOUSE CURSOR]
hideCursor = false ;Automatically hide cursor during script
;WARNING: Make sure ALL your emu's are running fine
;before setting this to true as a precaution.*

;[WINDOWS]
hideDesktop = false ;Attempts to hide desktop with black screen, might help
;on some emu's for hiding launching windows.

hideTaskbar = false ;Hide the windows taskbar when running emu's.
;WARNING: Make sure ALL your emu's are running fine
; before setting this to true as a precaution.*

daemontools = "C:\Program Files\DAEMON Tools Lite\daemon.exe" ;Hide the windows taskbar when running emu's.
;WARNING: Make sure ALL your emu's are running fine
; before setting this to true as a precaution.*

VolumeControlUP = ~g ;Enables the ability to control the volume in programs that are launched by hyperlaunch*

VolumeControlDown = ~b ;Enables the ability to control the volume in programs that are launched by hyperlaunch
;NOTE: the "~" denotes that the key retains its functionality*

betabright = "C:\BetaBrite\betacom.exe" ; Change this to your BetaBrite console application location.
betabrightparams = "com3 {AUTO}"
enablebetabright = true ; Should Betabright support be active? true or false here

MarqueeMagician := "C:\Users\Matt\Desktop\My Marquee Magician" ; Change this to your Marquee Magician application location.
EnableMarqueeMagician = true ; Should Marquee Magician support be active? true or false here

/*
*:If for some weird reason the script hangs follow these steps to get back to normal.
1. If an emulator hangs up or cant load your game then first try to exit the emu
by pressing your Emulator exit hotkey above.
2. If your emu exited but your mouse cursor is gone use your cursor toggle hotkey.
3. Next try to exit the script by pressing your Exit Script Hotkey above. This
will also bring back your cursor and taskbar is they are set to true.
*/







;*******************************************************************************
;* EDIT BELOW THIS POINT AT YOUR OWN RISK *
;*******************************************************************************

;------------------------------------------------------------------------------;
; GET PARAMATERS AND SET HOTKEYS ;
;------------------------------------------------------------------------------;

;CHECKING FOR 2 PARAMS, IF NOT THEN EXIT
if 0 < 2
{
MsgBox Usage: HyperLaunch.ahk/exe "System Name" "Rom Name"
ExitApp
}

systemName = %1%
romName = %2%

Hotkey, %exitScriptKey%, ExitScript
if (hideCursor = "true")
{
Hotkey, %toggleCursorKey%, ToggleCursor
SystemCursor("Off")
}

Hotkey, %VolumeControlUP%, VolumeUp

Hotkey, %VolumeControlDown%, VolumeDown

WinClose, cmd.exe
;------------------------------------------------------------------------------;
; GET AND CHECK PATHS ;
;------------------------------------------------------------------------------;
GoSub, CheckINI
IniRead, iniEmuPath, %A_ScriptDir%\Settings\%systemName%.ini, exe info, path
emuPath := GetFullName(iniEmuPath)
IniRead, iniRomPath, %A_ScriptDir%\Settings\%systemName%.ini, exe info, rompath
romPath := GetFullName(iniRomPath)
IniRead, executable, %A_ScriptDir%\Settings\%systemName%.ini, exe info, exe
IniRead, romExtensions, %A_ScriptDir%\Settings\%systemName%.ini, exe info, romextension

romExtension =
GoSub, CheckPaths

;------------------------------------------------------------------------------;
; RUN SYSTEM ;
;------------------------------------------------------------------------------;

;****** Added by Lashek - Force betabrite to update with hsbetabright.exe ******
;****** The loader will parse xml to get the "Description" and display it ******
;For support, see: http://www.hyperspin-fe.com/forum/showthre...post&t=4078
if (enablebetabright)
{
RunWait, hsbetabrite.exe "%systemName%" "%romName%" %betabright% %betabrightparams%,, Hide UseErrorLevel
}

;*************************************** Marquee Magician ******************************************
;****************************** Added by Matt Mclemore AKA Tempest *********************************
;*********** Marquee Magician will display game specific graphics on a secondary monitor ***********
;************ For support, see: http://www.gameex.info/forums/index.php?showtopic=6911 *************

if (EnableMarqueeMagician)
{
PrevDir := A_WorkingDir
SetWorkingDir, %MarqueeMagician%
IfNotExist, MM.ini
{
 MsgBox, You need to run the setup program first.
 Goto ExitScript
}
Run, i_view32.exe /killmesoftly
IniRead, TimesPlayed, MM.ini, %systemName%, %romName%, 0
TimesPlayed++
IniWrite, %TimesPlayed%, MM.ini, %systemName%, %romName%
IniRead, Template, MM.ini, %systemName%, Template
If Template <> Error
{
 IniRead, Type, MM.ini, General, Type
 StringSplit, Filetype, Type ,|
 SetFormat, float, 0.0
 EnvGet, NumCpu, NUMBER_OF_PROCESSORS
 VarSetCapacity(Idletime,8,0)
 WinWaitClose, IrfanView ;*** Wait Or kill the following ***
 Statistics = 0
 TemplateFolder = Templates\%Template%
 Loop, %TemplateFolder%\*, 2
 {
  IniRead, FileFolder, MM.ini, %systemName%, FileFolder%A_Index%
  IniRead, Image, MM.ini, %systemName%, Image%A_Index%
  If FileFolder = 4
  {
   Statistics = 1
   IniRead, X, %A_LoopFileLongPath%\i_view32.ini, WinPosition, XKoord
   IniRead, Y, %A_LoopFileLongPath%\i_view32.ini, WinPosition, YKoord
   IniRead, W, %A_LoopFileLongPath%\i_view32.ini, WinPosition, Width
   IniRead, H, %A_LoopFileLongPath%\i_view32.ini, WinPosition, Height
   Loop, 7
     IniRead, Stats%A_Index%, MM.ini, %systemName%, Stats%A_Index%
   Gui, 6:default
   Gui, -Caption
   Gui, Font, s14
   If Stats1 = 1
      Gui, Add, Text, w300 h20, %systemName%
   If Stats2 = 1
      Gui, Add, Text, w300 h20, %romName%
   If Stats3 = 1
      Gui, Add, Text, w250 h20, TimesPlayed: %TimesPlayed%
;   If Stats4 = 1 ; FPS not available in HS
;      Continue
   If Stats5 = 1
      Gui, Add, Text, w250 h20 vPlayTimerText, Play Timer: %PlayTimer%
   If Stats6 = 1
   {
    Gui, Add, Text, vCpuText,  CPU Usage:                       00`%
    Gui, Add, Progress, w250 h20 50 vCpuProgress
   }
   If Stats7 = 1
   {
    Gui, Add, Text, vMemText, Memory Usage:                  00`%
    Gui, Add, Progress, w250 h20 vMemProgress
   }
   Gui, Show, x%X% y%Y% h%H% w%W%
   Continue
  }
  IF FileFolder = 2
  {
   IniRead, Backup, MM.ini, %systemName%, Backup%A_Index%
   Found = 0
   Image .= "\" . romName
   Loop, %FileType0%
   {
    Temp := Image . FileType%A_Index%
    IfExist, %Temp%
    {
     Image := Temp
     Found = 1
     Break
    }
   }
   If Found = 0
      Image := BackUp
  }
  Run, i_view32.exe %Image% /ini=%A_LoopFileLongPath% /title=Window%A_Index% /hide=15
  Count := A_Index
 }
 WinWaitActive, IrfanView - Window%Count%,, 3
 StartTime := A_TickCount
 If Statistics = 1
    SetTimer, Update, 250
}
SetWorkingDir, %PrevDir%
}

;**********************************ATARI 5200***********************************
if (systemName = "Atari 5200" && (executable = "messpp.exe" || executable = "mess.exe"))
{

hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% a5200 -cart "%romPath%%romName%%romExtension%" -skip_gameinfo -nowindow -nonewui, %emuPath%, Hide UseErrorLevel
}

;**********************************ATARI Lynx***********************************
else if (systemName = "Atari Lynx" && executable = "handy.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% "%romPath%%romName%%romExtension%", %emuPath%, UseErrorLevel
}

;************************************DAPHNE*************************************
else if (systemName = "Daphne" && executable = "daphne.exe"){
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
daphneParams = vldp -fullscreen -x 640 -y 480 -nohwaccel -framefile
frameFilePath = %romPath%%romName%%romExtension%
RunWait, %executable% %romName% %daphneParams% %frameFilePath%, %emuPath%, UseErrorLevel
}

;********************************GAMEBOY ADVANCE********************************

else if (systemName = "Gameboy Advance" && executable = "visualboyadvance.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%emuPath%%executable%" "%romPath%%romName%%romExtension%", UseErrorLevel
}

;********************************GAMEBOY********** **********************
else if (systemName = "Gameboy" && executable = "visualboyadvance.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%emuPath%%executable%" "%romPath%%romName%%romExtension%", UseErrorLevel
}

;********************************GAMEBOY COLOR********************************
else if (systemName = "Gameboy Color" && executable = "visualboyadvance.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%emuPath%%executable%" "%romPath%%romName%%romExtension%", UseErrorLevel
}

;********************************Future Pinball********************************
else if (systemName = "Future Pinball" && executable = "Future Pinball.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Runwait, "%emuPath%%executable%" /open "%romPath%%romName%%romExtension%" /play /exit %emuPath%, Hide UseErrorLevel
}

;*************************************MAME******** ******************************

else if (systemName = "MAME" && executable = "vmame.exe")
{

hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Runwait, %executable% %romName%, %EmuPath%, Hide UseErrorLevel
Process, waitClose, %executable%
exitapp
}


;***********************************NEO GEO*************************************

else if (systemName = "Neo Geo" && executable = "mame.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% "%romName%", %emuPath%, Hide UseErrorLevel
}

;*****************************NEO GEO POCKET COLOR******************************

else if (systemName = "Neo Geo Pocket Color" && executable = "NeoPop-Win32.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% "%romPath%%romName%%romExtension%", %emuPath%, UseErrorLevel
}

;***********************************NINTENDO 64*********************************

else if (systemName = "Nintendo 64" && executable = "Project64.exe")
{
hideDesktop()
Sleep, 2000
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% %romPath%%romName%%romExtension%, %emuPath%, Hide UseErrorLevel
}

;****************************NINTENDO ENTERTAINMENT SYSTEM**********************

else if (systemName = "Nintendo Entertainment System" && executable = "Nestopia.exe")
{
Gui, Color, 000000
Gui -Caption +ToolWindow +AlwaysOnTop
Gui, Show, W%A_ScreenWidth% H%A_ScreenHeight%, BlackGui
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %executable% "%romPath%%romName%%romExtension%", %emuPath%, UseErrorLevel
Sleep, 2000
Gui, destroy
Process, waitClose, %executable%
exitapp
}

;***********************************Panasonic 3DO*******************************

else if (systemName = "Panasonic 3DO" && executable = "FreeDO.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, "%EmuPath%%Executable%",,Hide UseErrorLevel
DetectHiddenWindows, on
WinShow, FreeDO Beta 1.6.2
WinWait, FreeDO Beta 1.6.2
ControlSend, , {F4}, FreeDO Beta 1.6.2
WinWaitActive, FreeDO Beta 1.6.2
SendInput, {ALTDOWN}f{ALTUP}{ENTER}
IfWinNotActive, Open, Common Places Host W
WinActivate, Open, Common Places Host W
WinWaitActive, Open, Common Places Host W
clipboard=
clipboard=%romPath%%romName%%romExtension%
ClipWait
Sleep,100
Send,^v
Sleep,100
send, {ENTER}
WinWait, FreeDO Beta 1.6.2
IfWinNotActive, FreeDO Beta 1.6.2, , WinActivate, FreeDO Beta 1.6.2,
WinWaitActive, FreeDO Beta 1.6.2,
SendInput, {ALTDOWN}c{ALTUP}{ENTER}{ENTER}
Process, WaitClose, FreeDO.exe
}

;***********************************SEGA 32X************************************

else if (systemName = "Sega 32X" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -32X -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}

;***********************************SEGA CD*************************************

else if (systemName = "Sega CD" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -scd -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, %Executable%
exitapp
}

;*********************************SEGA DREAMCAST********************************

else if (systemName = "Sega Dreamcast" && executable = "nullDC_100b1_6.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% -config ImageReader:DefaultImage="%romPath%%romName%%romExtension%", %EmuPath%,Hide UseErrorLevel
WinWait, nullDC
Sleep,1000
WinShow, ahk_class ndc_main_window
Process, WaitClose, nullDC_100b1_6.exe
}


;*********************************SEGA Game Gear********************************

else if (systemName = "Sega Game Gear" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -sms -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}

;*********************************SEGA Genesis**********************************

else if (systemName = "Sega Genesis" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -gen -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}

;*******************************SEGA Master System******************************

else if (systemName = "Sega Master System" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -sms -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}

;***********************************SEGA MODEL 2*********************************

else if (systemName = "Sega Model 2")
{
if(executable = "emulator_multicpu.exe" || executable = "emulator.exe" )
{
;hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %executable% %romName%, %emuPath%, Hide UseErrorLevel
DetectHiddenWindows, on
WinWait, Model 2
WinShow
Process, WaitClose, %executable%
}
}

;***********************************SEGA Naomi***********************************

else if (systemName = "SEGA Naomi")
{
if(executable = "nullDC-Naomi_1.0.3_nommu.exe" || executable = "nullDC-Naomi_1.0.3_mmu.exe" )
SetWorkingDir, %emuPath%
Hotkey, %exitEmulatorKey%, CloseProcess
Blockinput on ; Keeps users from messing up loader my pressing buttons and moving mouse
rom = "%romPath%%romName%%romExtension%" ; (rompath romfile) gives friendly name as ROM


SetBatchLines -1


Gui +AlwaysOnTop -Caption +ToolWindow ; No title, No taskbar icon
Gui Color, 0 ; Color Black
Gui Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE
;WinSet Transparent, 200, A ; Can be semi-transparent
MouseGetPos X, Y ; Remember pos to return
MouseMove %A_ScreenWidth%,%A_ScreenHeight% ; Move pointer off screen
IniWrite, 1, %A_WorkingDir%\nulldc.cfg, nullDC, Emulator.AutoStart
IniWrite, 1, %A_WorkingDir%\nulldc.cfg, nullDC, Emulator.NoConsole
IniWrite, 1, %A_WorkingDir%\nulldc.cfg, drkpvr, Fullscreen.Enabled
IniWrite, 640, %A_WorkingDir%\nulldc.cfg, drkpvr, Fullscreen.Res_X
IniWrite, 480, %A_WorkingDir%\nulldc.cfg, drkpvr, Fullscreen.Res_Y
Run, %executable% ; launches emulator
WinWait, Open, Open as &read-only
IfWinNotActive, Open, Open as &read-only, WinActivate, Open, Open as &read-only
WinWaitActive, Open, Open as &read-only ; waits for load dialog
Sleep, 100
SendInput, %rom% ; sends rompath romfile from exe syntax
Send, {enter} ; loads roms by pressing enter
Sleep, 7000 ; Gives time for loading to finish before unhiding desktop
Gui Destroy ; Remove blinds from desktop
Blockinput off ; Allows user to send inputs so games can be played
Process, WaitClose, %executable%
exitapp
}

;**********************************SEGA SATURN****************
;**********************************SEGA SATURN***********************************
else if (systemName = "Sega Saturn" && executable = "SSF.exe")
{
RunWait, %DAEMONTOOLS% -mount 0`,"%romPath%%romName%%romExtension%"
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %executable% , %emuPath%, UseErrorLevel
}

;********************************Sony Playstation*******************************

else if (systemName = "Sony Playstation" && executable = "psxfin.exe")
{
psxParams = -f
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% %psxParams% "%romPath%%romName%%romExtension%", %EmuPath%, Hide UseErrorLevel
DetectHiddenWindows, on
WinWait, ahk_class pSX
hideDesktop()
WinWaitClose, ahk_class pSX
}

;***********************Super Nintendo Entertainment System*********************

else if (systemName = "Super Nintendo Entertainment System" && executable = "zsnesw.exe")
{
hideDesktop()
SetKeyDelay, 250
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %Executable% "%romPath%%romName%%romExtension%", %EmuPath%
}

;**********************************TurboGrafx 16********************************

else if (systemName = "TurboGrafx 16" && executable = "mednafen.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%EmuPath%%Executable%" "%romPath%%romName%%romExtension%" -fs 1,, UseErrorLevel
}

;***********************************JukeBox*************************************

else if (systemName = "Jukebox" && executable = "Silverjuke.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseJuke
RunWait, %emuPath%%executable% --kiosk, Hide UseErrorLevel
}
else if (systemName = "Jukebox" && executable = "SKJukebox.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %emuPath%%executable%, Hide UseErrorLevel
}

;***************************************Zinc************************************

else if (systemName = "Zinc" && executable = "zinc.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %Executable% %romName%, %EmuPath%, Hide UseErrorLevel
}

else
{
MsgBox,48,Error,%systemName% is an invalid System Name or %executable% isnt supported yet,6
}


;------------------------------------------------------------------------------;
; WHEN EMULATOR FINISHES OR IF LAUNCH EXE FAILS ;
;------------------------------------------------------------------------------;
;************PROBABLY DO NOT NEED TO EDIT THIS AREA*************

if (ErrorLevel = "ERROR")
{
MsgBox,48,Error,Failed to run executable check your paths,6
}
Goto ExitScript ; Exits script and returns to frontend


;------------------------------------------------------------------------------;
; KILL COMMANDS ;
;------------------------------------------------------------------------------;
;************PROBABLY DO NOT NEED TO EDIT THIS AREA*************

/*
Most emu's can be closed with CloseProcess when using a 2 key combo, if not set a custom
close.
*/
CloseJuke:
RunWait, %emuPath%%executable% --execute="program.shutdown(30);", Hide UseErrorLevel
return

CloseProcess:
if (enablebetabright)
{
RunWait, %betabright% com3 {AUTO}HYPERSPIN
}
if (EnableMarqueeMagician)
{
Runwait, i_view32.exe /killmesoftly, %MarqueeMagician%
Gui, 6:Destroy
SetTimer, Update, Off
}
Hotkey, %exitScriptKey%, Off
Process, Close, %Executable%
Process, WaitClose, %Executable%
Gui, Color, 000000
Gui -Caption +ToolWindow +AlwaysOnTop
Gui, Show, W%A_ScreenWidth% H%A_ScreenHeight%, BlackGui
return

;********************************* Update Gui for Marquee Magician *********************************

Update:
If Stats5 = 1
{
PlayTimer := (A_TickCount - StartTime)/1000
dt = 20000101000000
dt += PlayTimer, seconds
FormatTime, PlayTimer, %dt%, H:mm:ss
GuiControl, 6:, PlayTimerText, Play Timer: %PlayTimer%
}
If Stats6 = 1   ; Display Memory Usage
{
VarSetCapacity( memorystatus, 100 )
DllCall("kernel32.dll\GlobalMemoryStatus", "uint",&memorystatus)
mem := *( &memorystatus + 4 )    ; 0..100%
GuiControl, 6:, MemProgress, %Mem%
GuiControl, 6:, MemText, Memory Usage:               %Mem%`%
}
If Stats7 = 1   ; Display CPU Usage
{
IdleTime0 := IdleTime, Tick0 := Tick
DllCall("GetSystemTimes", UInt64P,IdleTime, Int,0, Int,0)
CPU := (100 - .01*(IdleTime0 - IdleTime)/(Tick0 - Tick:=A_TickCount)/NumCpu)
GuiControl, 6:, CpuProgress, %CPU%
GuiControl, 6:, CpuText, CPU Usage:                     %CPU%`%
}
Return

ExitScript:
Process, Exist, HyperSpin.exe

PID := errorLevel
if (PID)
{
WinActivate, ahk_pid %PID%
WinWaitActive, ahk_pid %PID%
Gui, destroy
if (hideCursor)
SystemCursor("On")
if (hideTaskbar)
WinShow ahk_class Shell_TrayWnd
ExitApp
}


OnExit, ExitScript
return


;------------------------------------------------------------------------------;
; Volume ;
;------------------------------------------------------------------------------;
VolumeUp:
Send {Volume_up 1}
return
VolumeDown:
Send {Volume_Down 1}
return




;------------------------------------------------------------------------------;
; REST OF SCRIPT ;
;------------------------------------------------------------------------------;
;************PROBABLY DO NOT NEED TO EDIT THIS AREA*************



SystemCursor(OnOff=1) ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others
{
static AndMask, XorMask, $, h_cursor
,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; system cursors
, b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ; blank cursors
, h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 ; handles of default cursors
if (OnOff = "Init" or OnOff = "I" or $ = "") ; init when requested or at first call
{
$ = h ; active default cursors
VarSetCapacity( h_cursor,4444, 1 )
VarSetCapacity( AndMask, 32*4, 0xFF )
VarSetCapacity( XorMask, 32*4, 0 )
system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650
StringSplit c, system_cursors, `,
Loop %c0%
{
h_cursor := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% )
h%A_Index% := DllCall( "CopyImage", "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 )
b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0
, "int",32, "int",32, "uint",&AndMask, "uint",&XorMask )
}
}
if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T"))
$ = b ; use blank cursors
else
$ = h ; use the saved cursors

Loop %c0%
{
h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 )
DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% )
}
}
ToggleCursor:
SystemCursor("Toggle")
return

IniRead(Filename, Section, Key, Default = "") {
FileRead, text, *t %Filename%
text = `n%text%`n
StringTrimLeft, text, text, InStr(text, "`n[" . Section . "]`n")
Loop, 8 {
sp := sp . " "
StringReplace, text, text, %Key%%sp%=, %Key%=
If ErrorLevel
Break
}
start := InStr(text, "`n" . Key . "=")
If !start
Return, Default
start += StrLen(Key) + 2
StringMid, Value, text, start, InStr(text, "`n", false, start) - start
Return, Value
}

;Get Full Path from Relative Path
GetFullName( fn ) {
static buf, i
if !i
i := VarSetCapacity(buf, 512)
DllCall("GetFullPathNameA", "str", fn, "uint", 512, "str", buf, "str*", 0)
return buf
}

hideDesktop(){
;WinHide ahk_class Shell_TrayWnd
;Gui, +toolwindow
;Gui, -Caption
;Gui, Color, black
;Gui, show, +toolwindow Maximize
Gui, Color, 000000
Gui -Caption +ToolWindow
Gui, Show, W%A_ScreenWidth% H%A_ScreenHeight%, BlackScreen

}

CheckINI:
IfNotExist, %A_ScriptDir%\HyperSpin.exe
{
MsgBox,48,Error, Must be in same directory as HyperSpin.exe,6
Goto ExitScript
}
IfNotExist, %A_ScriptDir%\Settings\%systemName%.ini
{
MsgBox,48,Error,Cannot Find %A_ScriptDir%\Settings\%systemName%.ini,6
Goto ExitScript
}
return

CheckPaths:
romFound =
StringRight, emuPathBackSlash, EmuPath, 1
StringRight, romPathBackSlash, RomPath, 1

If (emuPathBackSlash != "\" || romPathBackSlash != "\")
{
MsgBox,48,Error, Make sure your paths contains a backslash on the end ,6
Goto ExitScript
}
If (executable = "")
{
MsgBox,48,Error, Missing executable in %systemName%.ini ,6
Goto ExitScript
}
If (romPath = "")
{
MsgBox,48,Error, Missing rom path in %systemName%.ini ,6
Goto ExitScript
}
If (emuPath = "")
{
MsgBox,48,Error, Missing emulator path in %systemName%.ini ,6
Goto ExitScript
}
IfNotExist, %EmuPath%%Executable%
{
MsgBox,48,Error,Cannot Find %EmuPath%%Executable%,6
Goto ExitScript
}
if(systemName != "zinc")
{
If (romExtensions = "")
{
MsgBox,48,Error, Missing rom extension in %systemName%.ini ,6
Goto ExitScript
}
Loop, parse, romExtensions, `,
{
inputVar = %A_LoopField%
StringLeft, charToCheck, inputVar, 1
If(charToCheck = ".")
{
MsgBox,48,Error, Make sure your rom extensions do not contain a ".",6
Goto ExitScript
}
IfExist %RomPath%%RomName%.%A_LoopField%
{
romExtension = .%A_LoopField%
romFound = true
break
}else{
IfExist %RomPath%%RomName%\%RomName%.%A_LoopField%
{
RomPath = %RomPath%%RomName%\
MsgBox %RomPath%
romExtension = .%A_LoopField%
romFound = true
break
}else{
romFound = false
}
}
}
}
if (romFound = "false")
{
if(systemName != "daphne"){
MsgBox,48,Error,Cannot find Rom - %RomPath%%RomName% with any provided extension,6
Goto ExitScript
}else{
MsgBox,48,Error,Cannot find Daphne framefile - %RomPath%%RomName% with any provided extension,6
Goto ExitScript
}
}
return

GameEx users can use their Existing Templates, without any changes. It has been reported that the Statistics windows do not work properly, although I don't know why they wouldn't. I will be happy to look at it if someone is willing to troubleshoot what is going on, or perhaps, help me setup an emulator in Hyperspin, so I can test it myself. Perhaps Brian_Hoffman, or BadBoyBill may see a conflict in the code for Marquee Magician that I put into HyperLaunch?

Lastly, I do have a setup program that I adapted for HyperSpin users, but it looks like I am enabled to upload anything but images?

  • Replies 63
  • Created
  • Last Reply
Posted

This is awesome Tempest! This is what I was really waiting for in HyperSpin. For those of you who don't know what Tempest's little app is, you really need to check it out. It's awesome and makes a perfect addition to HS. I've been using it with GameEx since he first came up with it as a beta tester. Hope to see it in incorporated very soon so I can give it a go. You should PM BadBoyBill I'm sure he would help you out. Thanks again Tempest!

HYPERPIN TEAM - UW - KINGB MODS: Twilight Zone (Night Mod-VP) TOTAN (Night Mod-VP) Flintstones (Night Mod-VP) TSPP (Night Mod-VP)

Posted

Anything on this at all?

thx

HYPERPIN TEAM - UW - KINGB MODS: Twilight Zone (Night Mod-VP) TOTAN (Night Mod-VP) Flintstones (Night Mod-VP) TSPP (Night Mod-VP)

Posted

You da man Brian!

I can add this, you can too sohpt!

:)

HYPERPIN TEAM - UW - KINGB MODS: Twilight Zone (Night Mod-VP) TOTAN (Night Mod-VP) Flintstones (Night Mod-VP) TSPP (Night Mod-VP)

Posted

If you are trying to add my code into an official version you need to look at these lines in the code I posted.

93 - 94

167 - 262

631 - 636

645-670

If you copied the code previously, you should do it again, I think I figured out why the statistics windows wasn't working, and edited the code in my first post.

Posted

Heya Tempest!

Glad to see you posting about Marquee Magician. I would have ggiven my observations having requested it from Tempest and having it working (minus the statistics) on my cab for a few weeks testing it out; but I had to stay at Mayo clinic in Jacksonville this last week; no worries though.

This is awesome and between the second monitor displaying game images thanks to Tempest, the Betabrite displaying the game title thanks to Lashek, and the pre-game CP display thanks to CPWizard; add it all to my hardware including ambient lighting and a true Frankenstein control panel; it all compliments Hyperspin very very well. I will post a video very shortly so you can all see the Marquee Magician working, it is uploading to youtube now. Then I will test the new script and try it with stats showing.

By the way, you can also use Marquee Magician for displaying a movie poster when playing a movie from the movie themes.

Posted

no way....that's just awesome

I really hope Marquee Magician gets built into HS. It's an awesome app.

HYPERPIN TEAM - UW - KINGB MODS: Twilight Zone (Night Mod-VP) TOTAN (Night Mod-VP) Flintstones (Night Mod-VP) TSPP (Night Mod-VP)

Posted
I can add this, you can too sohpt!

:)

This sounds great man!~

For neo geo games...I have over 225 Mini Marquees recreated in HIRES!

Posted

Im thinking about getting one of these screens.

-Will they work with Marquee Magician?

-Any benefits with a Touchscreen?

-Any recomendations\warnings for usb?

-With Multiple 7" monitors?

http://www.mimomonitors.com/

  • 2 weeks later...
Posted

Invincer, you out there?

Has anyone else got this script working in Hyperspin ?

- [x] second monitor, mimo usb 7" touchscreen

- [x] template setup and saved via marquee magician setup

- [x] link to gamelist in mm.ini matches "Gamelist=C:\Program Files\GameEx\DATA\gamelist.txt"

I keep getting this error "attached thumbnail".

I'm looking for Target Label, "settimer", and only see it at the error line section 2 and in section 3 but i dont think the script gets down that far.

Do I need to define this "settimer" target label in the script somewhere or is there a syntax error?

Using the exact script posted in post #1

Copying from 3 sections similar to betabrites' setup.

[section 1]

  
MarqueeMagician = "g:\Hyperspin\Marquee Magician\Marquee Magician1.0.exe" ; Change 
this to your Marquee Magician application location.
EnableMarqueeMagician = true ; Should Marquee Magician support be active? true or 
false here

;***************************************************************************
VolumeControlUP = ~.            ;Enables the ability to control the volume in 
programs that are launched by hyperlaunch*

[section 2]

 
;*************************************** Marquee Magician 
******************************************
;****************************** Added by Matt Mclemore AKA Tempest 
*********************************
;*********** Marquee Magician will display game specific graphics on a secondary 
monitor ***********
;************ For support, see: [url]http://www.gameex.info/forums/index.php[/url]?
showtopic=6911 *************
if (EnableMarqueeMagician)
{
PrevDir := A_WorkingDir
SetWorkingDir, %MarqueeMagician%
IfNotExist, MM.ini
{
 MsgBox, You need to run the setup program first.
 Goto ExitScript
}
Run, i_view32.exe /killmesoftly
IniRead, TimesPlayed, MM.ini, %systemName%, %romName%, 0
TimesPlayed++
IniWrite, %TimesPlayed%, MM.ini, %systemName%, %romName%
IniRead, Template, MM.ini, %systemName%, Template
If Template <> Error
{
 IniRead, Type, MM.ini, General, Type
 StringSplit, Filetype, Type ,|
 SetFormat, float, 0.0
 EnvGet, NumCpu, NUMBER_OF_PROCESSORS
 VarSetCapacity(Idletime,8,0)
 WinWaitClose, IrfanView ;*** Wait Or kill the following ***
 Statistics = 0
 TemplateFolder = Templates\%Template%
 Loop, %TemplateFolder%\*, 2
 {
  IniRead, FileFolder, MM.ini, %systemName%, FileFolder%A_Index%
  IniRead, Image, MM.ini, %systemName%, Image%A_Index%
  If FileFolder = 4
  {
   Statistics = 1
   IniRead, X, %A_LoopFileLongPath%\i_view32.ini, WinPosition, XKoord
   IniRead, Y, %A_LoopFileLongPath%\i_view32.ini, WinPosition, YKoord
   IniRead, W, %A_LoopFileLongPath%\i_view32.ini, WinPosition, Width
   IniRead, H, %A_LoopFileLongPath%\i_view32.ini, WinPosition, Height
   Loop, 7
     IniRead, Stats%A_Index%, MM.ini, %systemName%, Stats%A_Index%
   Gui, 6:default
   Gui, -Caption
   Gui, Font, s14
   If Stats1 = 1
      Gui, Add, Text, w300 h20, %systemName%
   If Stats2 = 1
      Gui, Add, Text, w300 h20, %romName%
   If Stats3 = 1
      Gui, Add, Text, w250 h20, TimesPlayed: %TimesPlayed%
;   If Stats4 = 1 ; FPS not available in HS
;      Continue
   If Stats5 = 1
      Gui, Add, Text, w250 h20 vPlayTimerText, Play Timer: %PlayTimer%
   If Stats6 = 1
   {
    Gui, Add, Text, vCpuText,  CPU Usage:                       00`%
    Gui, Add, Progress, w250 h20 50 vCpuProgress
   }
   If Stats7 = 1
   {
    Gui, Add, Text, vMemText, Memory Usage:                  00`%
    Gui, Add, Progress, w250 h20 vMemProgress
   }
   Gui, Show, x%X% y%Y% h%H% w%W%
   Continue
  }
  IF FileFolder = 2
  {
   IniRead, Backup, MM.ini, %systemName%, Backup%A_Index%
   Found = 0
   Image .= "\" . romName
   Loop, %FileType0%
   {
    Temp := Image . FileType%A_Index%
    IfExist, %Temp%
    {
     Image := Temp
     Found = 1
     Break
    }
   }
   If Found = 0
      Image := BackUp
  }
  Run, i_view32.exe %Image% /ini=%A_LoopFileLongPath% /title=Window%A_Index% 
/hide=15
  Count := A_Index
 }
 WinWaitActive, IrfanView - Window%Count%,, 3
 StartTime := A_TickCount
 If Statistics = 1
    [color=red]SetTimer, Update, 250[/color]
}
SetWorkingDir, %PrevDir%
}


;***************************************AAE************************************
if (systemName = "AAE" && executable = "aae.exe")

[section 3]

 
CloseProcess:

;**********************************************************
if (enablebetabright)
{
RunWait, %betabright% usb {AUTO}HyperSpin   Believe       The Hype! {DIM 
GREEN}{TIME}
}
;**********************************************************
if (EnableMarqueeMagician)
{
Runwait, i_view32.exe /killmesoftly, %MarqueeMagician%
Gui, 6:Destroy
[color=red]SetTimer, Update, Off[/color]
}

post-4135-142870571159_thumb.jpg

Posted

Ok, I missed a section to put in my code. There are actually 4 different sections.

So that nobody else screws up like me, I've highlighted the sections to add into your ahk.

The error above is now gone and now i have a new message when I launch mame through Hyperspin. see attachment

I thought I had already set it up by makeing a template earlier. I guess not. Maybe it was just for GameEX.

These 2 setup programs seem to be for Gameex

Marquee Magician Setup1.1.exe (to setup on screen 2)

Marquee Magician Setup1.2.exe (to setup on screen 1)

From Tempest

Lastly, I do have a setup program that I adapted for HyperSpin users, but it looks like I am enabled to upload anything but images?

I know he couldnt post the setup for Hyperspin here but I didnt see it on his link from the first page of this post either.

 
/**
* HyperLaunch Version 1.04.5
* Autohotkey script by BadBoyBill [email protected]
* CursorHide by Lazlo
* Additional add-ons by brian_hoffman
*
* If you are reading this and do not have autohotkey you can get it
* @ http://www.autohotkey.com/download/
* If you would like to modify this script and share it thats OK, but
* see if your modification is something that we would like to add
* to the official version.
*
* Refer to the autohotkey documentation for the keyoboard keylist
*
* If this script does not support your favorite emulator
* then please request support @ http://www.hyperspin-fe.com/forum
*
* :Supported emulators:
* :System: :Emulators:
*Atari 5200.............................messpp.exe
*Atari Lynx.............................handy.exe
*Daphne.................................daphne.exe
*Future Pinball.........................Future Pinball.exe
*Gameboy Advance........................visualboyadvance.exe
*Gameboy................................visualboyadvance.exe
*Gameboy Color..........................visualboyadvance.exe
*MAME...................................vmame.exe
*Neo Geo................................mame.exe
*Neo Geo Pocket Color...................NeoPop-Win32.exe
*Nintendo 64............................project64.exe
*Nintendo Entertainment System..........nestopia.exe
*Panasonic 3DO..........................FreeDO.exe
*Sega 32X...............................fusion.exe
*Sega CD................................fusion.exe
*Sega Dreamcast.........................nullDC_100b1_6.exe
*Sega Game Gear.........................fusion.exe
*Sega Genesis...........................fusion.exe
*Sega Master System.....................fusion.exe
*Sony Playstation.......................psxfin.exe
*Super Nintendo Entertainment System....zsnesw.exe
*TurboGrafx 16..........................mednafen.exe
*Zinc...................................zinc.exe
*JukeBox................................silverjuke.exe
*JukeBox................................SKJukebox.exe
*
*
*/
#SingleInstance force ;Prevent multiple instances
#InstallKeybdHook
SetTitleMatchMode 2
;------------------------------------------------------------------------------;
; MAIN SETTINGS ;
;------------------------------------------------------------------------------;
;[uNIVERSAL HOTKEYS] ;SEPERATE MULTIPLE KEYS WITH &(ampersand) up to 2 keys.
exitScriptKey = q & s ;Secret hotkey(s) to exit script if needed
;Not to be confused with exit emulator keys
exitEmulatorKey = Esc ;This key/key combo will close any emulators
;that do not have normal closing methods.
toggleCursorKey = t ;hotkey(s) to show or hide cursor if needed
;when hideCursor below is true
;[MOUSE CURSOR]
hideCursor = false ;Automatically hide cursor during script
;WARNING: Make sure ALL your emu's are running fine
;before setting this to true as a precaution.*
;[WINDOWS]
hideDesktop = false ;Attempts to hide desktop with black screen, might help
;on some emu's for hiding launching windows.
hideTaskbar = false ;Hide the windows taskbar when running emu's.
;WARNING: Make sure ALL your emu's are running fine
; before setting this to true as a precaution.*
daemontools = "C:\Program Files\DAEMON Tools Lite\daemon.exe" ;Hide the windows taskbar when running emu's.
;WARNING: Make sure ALL your emu's are running fine
; before setting this to true as a precaution.*
VolumeControlUP = ~g ;Enables the ability to control the volume in programs that are launched by hyperlaunch*
VolumeControlDown = ~b ;Enables the ability to control the volume in programs that are launched by hyperlaunch
;NOTE: the "~" denotes that the key retains its functionality*
betabright = "C:\BetaBrite\betacom.exe" ; Change this to your BetaBrite console application location.
betabrightparams = "com3 {AUTO}"
enablebetabright = true ; Should Betabright support be active? true or false here
[color=lime]MarqueeMagician := "C:\Users\Matt\Desktop\My Marquee Magician" ; Change this to your Marquee Magician application location.[/color]
[color=lime]EnableMarqueeMagician = true ; Should Marquee Magician support be active? true or false here[/color]
/*
*:If for some weird reason the script hangs follow these steps to get back to normal.
1. If an emulator hangs up or cant load your game then first try to exit the emu
by pressing your Emulator exit hotkey above.
2. If your emu exited but your mouse cursor is gone use your cursor toggle hotkey.
3. Next try to exit the script by pressing your Exit Script Hotkey above. This
will also bring back your cursor and taskbar is they are set to true.
*/
 
 
 
 
 
 
;*******************************************************************************
;* EDIT BELOW THIS POINT AT YOUR OWN RISK *
;*******************************************************************************
;------------------------------------------------------------------------------;
; GET PARAMATERS AND SET HOTKEYS ;
;------------------------------------------------------------------------------;
;CHECKING FOR 2 PARAMS, IF NOT THEN EXIT
if 0 < 2
{
MsgBox Usage: HyperLaunch.ahk/exe "System Name" "Rom Name"
ExitApp
}
systemName = %1%
romName = %2%
Hotkey, %exitScriptKey%, ExitScript
if (hideCursor = "true")
{
Hotkey, %toggleCursorKey%, ToggleCursor
SystemCursor("Off")
}
Hotkey, %VolumeControlUP%, VolumeUp
Hotkey, %VolumeControlDown%, VolumeDown
WinClose, cmd.exe
;------------------------------------------------------------------------------;
; GET AND CHECK PATHS ;
;------------------------------------------------------------------------------;
GoSub, CheckINI
IniRead, iniEmuPath, %A_ScriptDir%\Settings\%systemName%.ini, exe info, path
emuPath := GetFullName(iniEmuPath)
IniRead, iniRomPath, %A_ScriptDir%\Settings\%systemName%.ini, exe info, rompath
romPath := GetFullName(iniRomPath)
IniRead, executable, %A_ScriptDir%\Settings\%systemName%.ini, exe info, exe
IniRead, romExtensions, %A_ScriptDir%\Settings\%systemName%.ini, exe info, romextension
romExtension =
GoSub, CheckPaths
;------------------------------------------------------------------------------;
; RUN SYSTEM ;
;------------------------------------------------------------------------------;
;****** Added by Lashek - Force betabrite to update with hsbetabright.exe ******
;****** The loader will parse xml to get the "Description" and display it ******
;For support, see: http://www.hyperspin-fe.com/forum/showthre...post&t=4078
if (enablebetabright)
{
RunWait, hsbetabrite.exe "%systemName%" "%romName%" %betabright% %betabrightparams%,, Hide UseErrorLevel
}
[color=lime];*************************************** Marquee Magician ******************************************[/color]
[color=lime];****************************** Added by Matt Mclemore AKA Tempest *********************************[/color]
[color=lime];*********** Marquee Magician will display game specific graphics on a secondary monitor ***********[/color]
[color=lime];************ For support, see: http://www.gameex.info/forums/index.php?showtopic=6911 *************[/color]
[color=lime]if (EnableMarqueeMagician)[/color]
[color=lime]{[/color]
[color=lime]PrevDir := A_WorkingDir[/color]
[color=lime]SetWorkingDir, %MarqueeMagician%[/color]
[color=lime]IfNotExist, MM.ini[/color]
[color=lime]{[/color]
[color=lime]MsgBox, You need to run the setup program first.[/color]
[color=lime]Goto ExitScript[/color]
[color=lime]}[/color]
[color=lime]Run, i_view32.exe /killmesoftly[/color]
[color=lime]IniRead, TimesPlayed, MM.ini, %systemName%, %romName%, 0[/color]
[color=lime]TimesPlayed++[/color]
[color=lime]IniWrite, %TimesPlayed%, MM.ini, %systemName%, %romName%[/color]
[color=lime]IniRead, Template, MM.ini, %systemName%, Template[/color]
[color=lime]If Template <> Error[/color]
[color=lime]{[/color]
[color=lime]IniRead, Type, MM.ini, General, Type[/color]
[color=lime]StringSplit, Filetype, Type ,|[/color]
[color=lime]SetFormat, float, 0.0[/color]
[color=lime]EnvGet, NumCpu, NUMBER_OF_PROCESSORS[/color]
[color=lime]VarSetCapacity(Idletime,8,0)[/color]
[color=lime]WinWaitClose, IrfanView ;*** Wait Or kill the following ***[/color]
[color=lime]Statistics = 0[/color]
[color=lime]TemplateFolder = Templates\%Template%[/color]
[color=lime]Loop, %TemplateFolder%\*, 2[/color]
[color=lime]{[/color]
[color=lime]IniRead, FileFolder, MM.ini, %systemName%, FileFolder%A_Index%[/color]
[color=lime]IniRead, Image, MM.ini, %systemName%, Image%A_Index%[/color]
[color=lime]If FileFolder = 4[/color]
[color=lime]{[/color]
[color=lime]Statistics = 1[/color]
[color=lime]IniRead, X, %A_LoopFileLongPath%\i_view32.ini, WinPosition, XKoord[/color]
[color=lime]IniRead, Y, %A_LoopFileLongPath%\i_view32.ini, WinPosition, YKoord[/color]
[color=lime]IniRead, W, %A_LoopFileLongPath%\i_view32.ini, WinPosition, Width[/color]
[color=lime]IniRead, H, %A_LoopFileLongPath%\i_view32.ini, WinPosition, Height[/color]
[color=lime]Loop, 7[/color]
[color=lime]IniRead, Stats%A_Index%, MM.ini, %systemName%, Stats%A_Index%[/color]
[color=lime]Gui, 6:default[/color]
[color=lime]Gui, -Caption[/color]
[color=lime]Gui, Font, s14[/color]
[color=lime]If Stats1 = 1[/color]
[color=lime]Gui, Add, Text, w300 h20, %systemName%[/color]
[color=lime]If Stats2 = 1[/color]
[color=lime]Gui, Add, Text, w300 h20, %romName%[/color]
[color=lime]If Stats3 = 1[/color]
[color=lime]Gui, Add, Text, w250 h20, TimesPlayed: %TimesPlayed%[/color]
[color=lime]; If Stats4 = 1 ; FPS not available in HS[/color]
[color=lime]; Continue[/color]
[color=lime]If Stats5 = 1[/color]
[color=lime]Gui, Add, Text, w250 h20 vPlayTimerText, Play Timer: %PlayTimer%[/color]
[color=lime]If Stats6 = 1[/color]
[color=lime]{[/color]
[color=lime]Gui, Add, Text, vCpuText, CPU Usage: 00`%[/color]
[color=lime]Gui, Add, Progress, w250 h20 50 vCpuProgress[/color]
[color=lime]}[/color]
[color=lime]If Stats7 = 1[/color]
[color=lime]{[/color]
[color=lime]Gui, Add, Text, vMemText, Memory Usage: 00`%[/color]
[color=lime]Gui, Add, Progress, w250 h20 vMemProgress[/color]
[color=lime]}[/color]
[color=lime]Gui, Show, x%X% y%Y% h%H% w%W%[/color]
[color=lime]Continue[/color]
[color=lime]}[/color]
[color=lime]IF FileFolder = 2[/color]
[color=lime]{[/color]
[color=lime]IniRead, Backup, MM.ini, %systemName%, Backup%A_Index%[/color]
[color=lime]Found = 0[/color]
[color=lime]Image .= "\" . romName[/color]
[color=lime]Loop, %FileType0%[/color]
[color=lime]{[/color]
[color=lime]Temp := Image . FileType%A_Index%[/color]
[color=lime]IfExist, %Temp%[/color]
[color=lime]{[/color]
[color=lime]Image := Temp[/color]
[color=lime]Found = 1[/color]
[color=lime]Break[/color]
[color=lime]}[/color]
[color=lime]}[/color]
[color=lime]If Found = 0[/color]
[color=lime]Image := BackUp[/color]
[color=lime]}[/color]
[color=lime]Run, i_view32.exe %Image% /ini=%A_LoopFileLongPath% /title=Window%A_Index% /hide=15[/color]
[color=lime]Count := A_Index[/color]
[color=lime]}[/color]
[color=lime]WinWaitActive, IrfanView - Window%Count%,, 3[/color]
[color=lime]StartTime := A_TickCount[/color]
[color=lime]If Statistics = 1[/color]
[color=lime]SetTimer, Update, 250[/color]
[color=lime]}[/color]
[color=lime]SetWorkingDir, %PrevDir%[/color]
[color=lime]}[/color]
;**********************************ATARI 5200***********************************
if (systemName = "Atari 5200" && (executable = "messpp.exe" || executable = "mess.exe"))
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% a5200 -cart "%romPath%%romName%%romExtension%" -skip_gameinfo -nowindow -nonewui, %emuPath%, Hide UseErrorLevel
}
;**********************************ATARI Lynx***********************************
else if (systemName = "Atari Lynx" && executable = "handy.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% "%romPath%%romName%%romExtension%", %emuPath%, UseErrorLevel
}
;************************************DAPHNE*************************************
else if (systemName = "Daphne" && executable = "daphne.exe"){
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
daphneParams = vldp -fullscreen -x 640 -y 480 -nohwaccel -framefile
frameFilePath = %romPath%%romName%%romExtension%
RunWait, %executable% %romName% %daphneParams% %frameFilePath%, %emuPath%, UseErrorLevel
}
;********************************GAMEBOY ADVANCE********************************
else if (systemName = "Gameboy Advance" && executable = "visualboyadvance.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%emuPath%%executable%" "%romPath%%romName%%romExtension%", UseErrorLevel
}
;********************************GAMEBOY********** **********************
else if (systemName = "Gameboy" && executable = "visualboyadvance.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%emuPath%%executable%" "%romPath%%romName%%romExtension%", UseErrorLevel
}
;********************************GAMEBOY COLOR********************************
else if (systemName = "Gameboy Color" && executable = "visualboyadvance.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%emuPath%%executable%" "%romPath%%romName%%romExtension%", UseErrorLevel
}
;********************************Future Pinball********************************
else if (systemName = "Future Pinball" && executable = "Future Pinball.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Runwait, "%emuPath%%executable%" /open "%romPath%%romName%%romExtension%" /play /exit %emuPath%, Hide UseErrorLevel
}
;*************************************MAME******** ******************************
else if (systemName = "MAME" && executable = "vmame.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Runwait, %executable% %romName%, %EmuPath%, Hide UseErrorLevel
Process, waitClose, %executable%
exitapp
}
 
;***********************************NEO GEO*************************************
else if (systemName = "Neo Geo" && executable = "mame.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% "%romName%", %emuPath%, Hide UseErrorLevel
}
;*****************************NEO GEO POCKET COLOR******************************
else if (systemName = "Neo Geo Pocket Color" && executable = "NeoPop-Win32.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% "%romPath%%romName%%romExtension%", %emuPath%, UseErrorLevel
}
;***********************************NINTENDO 64*********************************
else if (systemName = "Nintendo 64" && executable = "Project64.exe")
{
hideDesktop()
Sleep, 2000
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %executable% %romPath%%romName%%romExtension%, %emuPath%, Hide UseErrorLevel
}
;****************************NINTENDO ENTERTAINMENT SYSTEM**********************
else if (systemName = "Nintendo Entertainment System" && executable = "Nestopia.exe")
{
Gui, Color, 000000
Gui -Caption +ToolWindow +AlwaysOnTop
Gui, Show, W%A_ScreenWidth% H%A_ScreenHeight%, BlackGui
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %executable% "%romPath%%romName%%romExtension%", %emuPath%, UseErrorLevel
Sleep, 2000
Gui, destroy
Process, waitClose, %executable%
exitapp
}
;***********************************Panasonic 3DO*******************************
else if (systemName = "Panasonic 3DO" && executable = "FreeDO.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, "%EmuPath%%Executable%",,Hide UseErrorLevel
DetectHiddenWindows, on
WinShow, FreeDO Beta 1.6.2
WinWait, FreeDO Beta 1.6.2
ControlSend, , {F4}, FreeDO Beta 1.6.2
WinWaitActive, FreeDO Beta 1.6.2
SendInput, {ALTDOWN}f{ALTUP}{ENTER}
IfWinNotActive, Open, Common Places Host W
WinActivate, Open, Common Places Host W
WinWaitActive, Open, Common Places Host W
clipboard=
clipboard=%romPath%%romName%%romExtension%
ClipWait
Sleep,100
Send,^v
Sleep,100
send, {ENTER}
WinWait, FreeDO Beta 1.6.2
IfWinNotActive, FreeDO Beta 1.6.2, , WinActivate, FreeDO Beta 1.6.2,
WinWaitActive, FreeDO Beta 1.6.2,
SendInput, {ALTDOWN}c{ALTUP}{ENTER}{ENTER}
Process, WaitClose, FreeDO.exe
}
;***********************************SEGA 32X************************************
else if (systemName = "Sega 32X" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -32X -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}
;***********************************SEGA CD*************************************
else if (systemName = "Sega CD" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -scd -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, %Executable%
exitapp
}
;*********************************SEGA DREAMCAST********************************
else if (systemName = "Sega Dreamcast" && executable = "nullDC_100b1_6.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% -config ImageReader:DefaultImage="%romPath%%romName%%romExtension%", %EmuPath%,Hide UseErrorLevel
WinWait, nullDC
Sleep,1000
WinShow, ahk_class ndc_main_window
Process, WaitClose, nullDC_100b1_6.exe
}
 
;*********************************SEGA Game Gear********************************
else if (systemName = "Sega Game Gear" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -sms -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}
;*********************************SEGA Genesis**********************************
else if (systemName = "Sega Genesis" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -gen -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}
;*******************************SEGA Master System******************************
else if (systemName = "Sega Master System" && executable = "Fusion.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% "%romPath%%romName%%romExtension%" -auto -sms -fullscreen, %EmuPath%, Hide UseErrorLevel
Process, WaitClose, fusion.exe
}
;***********************************SEGA MODEL 2*********************************
else if (systemName = "Sega Model 2")
{
if(executable = "emulator_multicpu.exe" || executable = "emulator.exe" )
{
;hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %executable% %romName%, %emuPath%, Hide UseErrorLevel
DetectHiddenWindows, on
WinWait, Model 2
WinShow
Process, WaitClose, %executable%
}
}
;***********************************SEGA Naomi***********************************
else if (systemName = "SEGA Naomi")
{
if(executable = "nullDC-Naomi_1.0.3_nommu.exe" || executable = "nullDC-Naomi_1.0.3_mmu.exe" )
SetWorkingDir, %emuPath%
Hotkey, %exitEmulatorKey%, CloseProcess
Blockinput on ; Keeps users from messing up loader my pressing buttons and moving mouse
rom = "%romPath%%romName%%romExtension%" ; (rompath romfile) gives friendly name as ROM
 
SetBatchLines -1
 
Gui +AlwaysOnTop -Caption +ToolWindow ; No title, No taskbar icon
Gui Color, 0 ; Color Black
Gui Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE
;WinSet Transparent, 200, A ; Can be semi-transparent
MouseGetPos X, Y ; Remember pos to return
MouseMove %A_ScreenWidth%,%A_ScreenHeight% ; Move pointer off screen
IniWrite, 1, %A_WorkingDir%\nulldc.cfg, nullDC, Emulator.AutoStart
IniWrite, 1, %A_WorkingDir%\nulldc.cfg, nullDC, Emulator.NoConsole
IniWrite, 1, %A_WorkingDir%\nulldc.cfg, drkpvr, Fullscreen.Enabled
IniWrite, 640, %A_WorkingDir%\nulldc.cfg, drkpvr, Fullscreen.Res_X
IniWrite, 480, %A_WorkingDir%\nulldc.cfg, drkpvr, Fullscreen.Res_Y
Run, %executable% ; launches emulator
WinWait, Open, Open as &read-only
IfWinNotActive, Open, Open as &read-only, WinActivate, Open, Open as &read-only
WinWaitActive, Open, Open as &read-only ; waits for load dialog
Sleep, 100
SendInput, %rom% ; sends rompath romfile from exe syntax
Send, {enter} ; loads roms by pressing enter
Sleep, 7000 ; Gives time for loading to finish before unhiding desktop
Gui Destroy ; Remove blinds from desktop
Blockinput off ; Allows user to send inputs so games can be played
Process, WaitClose, %executable%
exitapp
}
;**********************************SEGA SATURN****************
;**********************************SEGA SATURN***********************************
else if (systemName = "Sega Saturn" && executable = "SSF.exe")
{
RunWait, %DAEMONTOOLS% -mount 0`,"%romPath%%romName%%romExtension%"
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %executable% , %emuPath%, UseErrorLevel
}
;********************************Sony Playstation*******************************
else if (systemName = "Sony Playstation" && executable = "psxfin.exe")
{
psxParams = -f
Hotkey, %exitEmulatorKey%, CloseProcess
Run, %Executable% %psxParams% "%romPath%%romName%%romExtension%", %EmuPath%, Hide UseErrorLevel
DetectHiddenWindows, on
WinWait, ahk_class pSX
hideDesktop()
WinWaitClose, ahk_class pSX
}
;***********************Super Nintendo Entertainment System*********************
else if (systemName = "Super Nintendo Entertainment System" && executable = "zsnesw.exe")
{
hideDesktop()
SetKeyDelay, 250
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %Executable% "%romPath%%romName%%romExtension%", %EmuPath%
}
;**********************************TurboGrafx 16********************************
else if (systemName = "TurboGrafx 16" && executable = "mednafen.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, "%EmuPath%%Executable%" "%romPath%%romName%%romExtension%" -fs 1,, UseErrorLevel
}
;***********************************JukeBox*************************************
else if (systemName = "Jukebox" && executable = "Silverjuke.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseJuke
RunWait, %emuPath%%executable% --kiosk, Hide UseErrorLevel
}
else if (systemName = "Jukebox" && executable = "SKJukebox.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %emuPath%%executable%, Hide UseErrorLevel
}
;***************************************Zinc************************************
else if (systemName = "Zinc" && executable = "zinc.exe")
{
hideDesktop()
Hotkey, %exitEmulatorKey%, CloseProcess
RunWait, %Executable% %romName%, %EmuPath%, Hide UseErrorLevel
}
else
{
MsgBox,48,Error,%systemName% is an invalid System Name or %executable% isnt supported yet,6
}
 
;------------------------------------------------------------------------------;
; WHEN EMULATOR FINISHES OR IF LAUNCH EXE FAILS ;
;------------------------------------------------------------------------------;
;************PROBABLY DO NOT NEED TO EDIT THIS AREA*************
if (ErrorLevel = "ERROR")
{
MsgBox,48,Error,Failed to run executable check your paths,6
}
Goto ExitScript ; Exits script and returns to frontend
 
;------------------------------------------------------------------------------;
; KILL COMMANDS ;
;------------------------------------------------------------------------------;
;************PROBABLY DO NOT NEED TO EDIT THIS AREA*************
/*
Most emu's can be closed with CloseProcess when using a 2 key combo, if not set a custom
close.
*/
CloseJuke:
RunWait, %emuPath%%executable% --execute="program.shutdown(30);", Hide UseErrorLevel
return
CloseProcess:
if (enablebetabright)
{
RunWait, %betabright% com3 {AUTO}HYPERSPIN
}
[color=lime]if (EnableMarqueeMagician)[/color]
[color=lime]{[/color]
[color=lime]Runwait, i_view32.exe /killmesoftly, %MarqueeMagician%[/color]
[color=lime]Gui, 6:Destroy[/color]
[color=lime]SetTimer, Update, Off[/color]
[color=lime]}[/color]
Hotkey, %exitScriptKey%, Off
Process, Close, %Executable%
Process, WaitClose, %Executable%
Gui, Color, 000000
Gui -Caption +ToolWindow +AlwaysOnTop
Gui, Show, W%A_ScreenWidth% H%A_ScreenHeight%, BlackGui
return
[color=lime];********************************* Update Gui for Marquee Magician *********************************[/color]
[color=lime]Update:[/color]
[color=lime]If Stats5 = 1[/color]
[color=lime]{[/color]
[color=lime]PlayTimer := (A_TickCount - StartTime)/1000[/color]
[color=lime]dt = 20000101000000[/color]
[color=lime]dt += PlayTimer, seconds[/color]
[color=lime]FormatTime, PlayTimer, %dt%, H:mm:ss[/color]
[color=lime]GuiControl, 6:, PlayTimerText, Play Timer: %PlayTimer%[/color]
[color=lime]}[/color]
[color=lime]If Stats6 = 1 ; Display Memory Usage[/color]
[color=lime]{[/color]
[color=lime]VarSetCapacity( memorystatus, 100 )[/color]
[color=lime]DllCall("kernel32.dll\GlobalMemoryStatus", "uint",&memorystatus)[/color]
[color=lime]mem := *( &memorystatus + 4 ) ; 0..100%[/color]
[color=lime]GuiControl, 6:, MemProgress, %Mem%[/color]
[color=lime]GuiControl, 6:, MemText, Memory Usage: %Mem%`%[/color]
[color=lime]}[/color]
[color=lime]If Stats7 = 1 ; Display CPU Usage[/color]
[color=lime]{[/color]
[color=lime]IdleTime0 := IdleTime, Tick0 := Tick[/color]
[color=lime]DllCall("GetSystemTimes", UInt64P,IdleTime, Int,0, Int,0)[/color]
[color=lime]CPU := (100 - .01*(IdleTime0 - IdleTime)/(Tick0 - Tick:=A_TickCount)/NumCpu)[/color]
[color=lime]GuiControl, 6:, CpuProgress, %CPU%[/color]
[color=lime]GuiControl, 6:, CpuText, CPU Usage: %CPU%`%[/color]
[color=lime]}[/color]
[color=lime]Return[/color]
ExitScript:
Process, Exist, HyperSpin.exe
PID := errorLevel
if (PID)
{
WinActivate, ahk_pid %PID%
WinWaitActive, ahk_pid %PID%
Gui, destroy
if (hideCursor)
SystemCursor("On")
if (hideTaskbar)
WinShow ahk_class Shell_TrayWnd
ExitApp
}
 
OnExit, ExitScript
return
 
;------------------------------------------------------------------------------;
; Volume ;
;------------------------------------------------------------------------------;
VolumeUp:
Send {Volume_up 1}
return
VolumeDown:
Send {Volume_Down 1}
return
 
 
 
;------------------------------------------------------------------------------;
; REST OF SCRIPT ;
;------------------------------------------------------------------------------;
;************PROBABLY DO NOT NEED TO EDIT THIS AREA*************
 
 
SystemCursor(OnOff=1) ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others
{
static AndMask, XorMask, $, h_cursor
,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; system cursors
, b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ; blank cursors
, h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 ; handles of default cursors
if (OnOff = "Init" or OnOff = "I" or $ = "") ; init when requested or at first call
{
$ = h ; active default cursors
VarSetCapacity( h_cursor,4444, 1 )
VarSetCapacity( AndMask, 32*4, 0xFF )
VarSetCapacity( XorMask, 32*4, 0 )
system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650
StringSplit c, system_cursors, `,
Loop %c0%
{
h_cursor := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% )
h%A_Index% := DllCall( "CopyImage", "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 )
b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0
, "int",32, "int",32, "uint",&AndMask, "uint",&XorMask )
}
}
if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T"))
$ = b ; use blank cursors
else
$ = h ; use the saved cursors
Loop %c0%
{
h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 )
DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% )
}
}
ToggleCursor:
SystemCursor("Toggle")
return
IniRead(Filename, Section, Key, Default = "") {
FileRead, text, *t %Filename%
text = `n%text%`n
StringTrimLeft, text, text, InStr(text, "`n[" . Section . "]`n")
Loop, 8 {
sp := sp . " "
StringReplace, text, text, %Key%%sp%=, %Key%=
If ErrorLevel
Break
}
start := InStr(text, "`n" . Key . "=")
If !start
Return, Default
start += StrLen(Key) + 2
StringMid, Value, text, start, InStr(text, "`n", false, start) - start
Return, Value
}
;Get Full Path from Relative Path
GetFullName( fn ) {
static buf, i
if !i
i := VarSetCapacity(buf, 512)
DllCall("GetFullPathNameA", "str", fn, "uint", 512, "str", buf, "str*", 0)
return buf
}
hideDesktop(){
;WinHide ahk_class Shell_TrayWnd
;Gui, +toolwindow
;Gui, -Caption
;Gui, Color, black
;Gui, show, +toolwindow Maximize
Gui, Color, 000000
Gui -Caption +ToolWindow
Gui, Show, W%A_ScreenWidth% H%A_ScreenHeight%, BlackScreen
}
CheckINI:
IfNotExist, %A_ScriptDir%\HyperSpin.exe
{
MsgBox,48,Error, Must be in same directory as HyperSpin.exe,6
Goto ExitScript
}
IfNotExist, %A_ScriptDir%\Settings\%systemName%.ini
{
MsgBox,48,Error,Cannot Find %A_ScriptDir%\Settings\%systemName%.ini,6
Goto ExitScript
}
return
CheckPaths:
romFound =
StringRight, emuPathBackSlash, EmuPath, 1
StringRight, romPathBackSlash, RomPath, 1
If (emuPathBackSlash != "\" || romPathBackSlash != "\")
{
MsgBox,48,Error, Make sure your paths contains a backslash on the end ,6
Goto ExitScript
}
If (executable = "")
{
MsgBox,48,Error, Missing executable in %systemName%.ini ,6
Goto ExitScript
}
If (romPath = "")
{
MsgBox,48,Error, Missing rom path in %systemName%.ini ,6
Goto ExitScript
}
If (emuPath = "")
{
MsgBox,48,Error, Missing emulator path in %systemName%.ini ,6
Goto ExitScript
}
IfNotExist, %EmuPath%%Executable%
{
MsgBox,48,Error,Cannot Find %EmuPath%%Executable%,6
Goto ExitScript
}
if(systemName != "zinc")
{
If (romExtensions = "")
{
MsgBox,48,Error, Missing rom extension in %systemName%.ini ,6
Goto ExitScript
}
Loop, parse, romExtensions, `,
{
inputVar = %A_LoopField%
StringLeft, charToCheck, inputVar, 1
If(charToCheck = ".")
{
MsgBox,48,Error, Make sure your rom extensions do not contain a ".",6
Goto ExitScript
}
IfExist %RomPath%%RomName%.%A_LoopField%
{
romExtension = .%A_LoopField%
romFound = true
break
}else{
IfExist %RomPath%%RomName%\%RomName%.%A_LoopField%
{
RomPath = %RomPath%%RomName%\
MsgBox %RomPath%
romExtension = .%A_LoopField%
romFound = true
break
}else{
romFound = false
}
}
}
}
if (romFound = "false")
{
if(systemName != "daphne"){
MsgBox,48,Error,Cannot find Rom - %RomPath%%RomName% with any provided extension,6
Goto ExitScript
}else{
MsgBox,48,Error,Cannot find Daphne framefile - %RomPath%%RomName% with any provided extension,6
Goto ExitScript
}
}
return

post-4135-142870571161_thumb.jpg

Posted

So Far this is working in GameEX only! (still waiting for a HyperSpin setup program, directory structure for gamelist should be different in the mm.ini below)

3 images full vertical height, equally spaced horizontally on secondary monitor 7" (Baby steps for me!)

G:\HyperSpin\MarQuee Magician\Templates\Template\Image1\i_view32.ini

I cant stretch the windows as seen in the video (the way I want it) manually or through setup.

[iMAGE 1][sample i_view32.ini]

[WinPosition]
xKoord=1280
yKoord=0
Width=266
Height=480
Maximized=0
[Viewing]
FitWindowOption=2
UseResample=1
[Others]
RememberWinPos=1
[Toolbar]
Flag=0

[iMAGE 2][sample i_view32.ini]

G:\HyperSpin\MarQuee Magician\Templates\Template\Image2\i_view32.ini

 
[WinPosition]
xKoord=1545
yKoord=0
Width=266
Height=480
Maximized=0
[Viewing]
FitWindowOption=2
UseResample=1
[Others]
RememberWinPos=1
[Toolbar]
Flag=0

G:\HyperSpin\MarQuee Magician\Templates\Template\Image3\i_view32.ini

[iMAGE 3][sample i_view32.ini]

 
[WinPosition]
xKoord=1812
yKoord=0
Width=266
Height=480
Maximized=0
[Viewing]
FitWindowOption=2
UseResample=1
[Others]
RememberWinPos=1
[Toolbar]
Flag=0

[sample MM.ini] _No_image.png is for when there is no image to display.

G:\HyperSpin\MarQuee Magician\MM.ini

 
[General]
Type=.JPG|.PNG|.BMP|.JPEG|.GIF.IMG
[color=palegreen]Gamelist=C:\Program Files\GameEx\DATA\gamelist.txt[/color]
[MAME Games]
Template=Mame
Image1=G:\HyperSpin\Emulators\Mame\flyers
FileFolder1=2
Backup1=G:\HyperSpin\Emulators\Mame\flyers\[color=yellow]_No_Image.png[/color]
Image2=G:\HyperSpin\Emulators\Mame\cabinets
FileFolder2=2
Backup2=G:\HyperSpin\Emulators\Mame\cabinets\[color=yellow]_No_Image.png[/color]
Image3=G:\HyperSpin\Emulators\Mame\marquees
FileFolder3=2
Backup3=G:\HyperSpin\Emulators\Mame\marquees\[color=yellow]_No_Image.png[/color]
[Daphne]
Template=Daphne
Image1=G:\HyperSpin\Emulators\Daphne\images
FileFolder1=2
Backup1=G:\HyperSpin\Emulators\Daphne\images\[color=yellow]_No_Image.png[/color]
Dragon's Lair=lair
Space Ace=sae
Astron Belt=astron
Cliff Hanger=cliff
Cobra Command=cobraab

Also maybe this:

"Gamelist=C:\Program Files\GameEx\DATA\gamelist.txt"

changes to somthing like this?:

"Gamelist=g:\hyperspin\databases\mame\mame.xml"

Not sure about "Daphne" for use in hyperspin.

post-4135-142870571162_thumb.png

Posted

Hey Chillinwater,

I had similar issues with newer releases of MM. I am still just using the first one he custom made for HS. The newer ones seem to be made for GameEx only. You may want to IM Tempest (probably would find him visiting GameEx forums more) and ask him if it would be possible to try the newer releases in a more HS friendly version. I had been testing some for him with it all but my time has been limited of late. I will soon be having surgery at the Mayo clinic that will incapacitate me for a few weeks on the 19th. I hope to finish the comic book stuff and make video of some of my up-till-now cab stuff and pics before then, won't be able to play or mess with it much for a short while after that. I had everything pretty much working like I wanted in the version of MM I had, the statistics did not display correctly, but I really didn't want stats displayed anyways. I know he mentioned in the newer version being able to have MM display a default image maybe with custom controls displayed when exiting emulators back to HS also, it may be something worth looking into...

Posted

Hope all goes well!.

Do you need someone to take care of your cab while your away?:flute:

Very cool by the way!

Yeah I pm'ed him yesterday but I think he is too busy on "CFG Magician"

Where is the first one he "Custom made" for Hyperspin? Is it posted somwhere? The couple I have seen always use the game list for GameEX in the mm.ini.

What does your MM.ini look like if you dont mind me asking?

How does it call Hyperspin gamelists?

I saw your post with VP and Marquee Magician also and as soon as I work this out, Id like to work on somthing like that. My screen is touch also.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...