Jump to content

PC Games and Steam Games together under one System


ChrisKant

Recommended Posts

Posted

Yes, SteamID.ini is what I meant (sorry going from memory).

What do you mean you have your Steam games in 2 locations? All mine are c:\Program Files (x86)\Steam\steamapps\common.

That appwait stuff you have in that screenshot is probably what is keeping it all from working. Leave Appwait blank. Not a single one of all my games has anything under Appwait

What is your system called? My system is called PC Games (and of course module is PCLauncher)

1. Add the game(s) to SteamID.ini (pSee my post #7)

2. Add games to the database using whatever method you prefer (post #7)

2. Add the games into the PCLauncher module settings. Do not add a path to the .exe. Do not add an AppWait .exe

3. Add FadeTitle if the game needs it. If the game doesn't need it leave FadeTitle blank

For most Steam games having everything blank except for the Steam ID number works.

However you may need to change or lengthen your fade in/fade out settings for a few PC games to give them more time to load as compared to MAME/Older system games. (for example Mortal Kombat X takes forever to load, Split/Second takes awhile to)

I just changed mine under Global settings.

Posted

man i have done everything to my understanding just like you are telling me. and it still wont work. im trying with a single game doing the changes and trying to launch but wont launch. i have teamviewer if you are ok with trying to help me out with that.  my system is also called PC Games 

 

where can i adjust the fade time global? i dont see that option

Posted

Nah, I can't help you remote.

Do you have Steam running in the background? I have Steam start up with windows because trying to launch it after the fact doesn't work well.

Global Settings. Click Global at the top of the system list on the left. Then just go into the settings tab and which brings up all the various settings tabs. I believe there are 3 tabs for Fade alone.

You could also just adjust settings for the specific system, you don't need to adjust it globaly. That's just what I did and probably isn't even necessary.

Lets see if we can find a common game.

Do you own Street Fighter 4 Ultra?

Sonic All Stars Racing Transformed?

Shank 2?

Castlevania Mirror of Fate?

BroForce?

Err... what are some other common games?

Posted

shank 2 we can use that.

altho im thinking it might be a problem with my pclauncher module?

-yes steam is running in the backgroud, otherwise itll tell me that steam is not runnning

Posted

OK, posting from my cab now so I can check this for you.

Here's how I have Shank 2 setup. It runs perfectly from both HyperLaunchHQ and from Hyperspin.

I am running HyperLaunchHQ (most recent version before the RocketLauncher update) and Hyperspin 1.3 (newest before beta):

SteamIDs.ini

[102840]
title=Shank 2

exe=shank2.exe
PC Games.xml database:

  <game SteamAppId="0" name="Shank 2" index="true" image="0">
    <enabled>Yes</enabled>
    <description>Shank 2</description>
    <manufacturer>Klei Entertainment</manufacturer>
    <year>2014</year>
    <genre>Action</genre>
    <rating>ESRB - M (Mature)</rating>
  </game>
Module settings for the game has nothing except the SteamID (102840) and the FadeTitle:

post-58638-0-92116300-1434900680_thumb.png

This is my module. I have made no changes to it:

post-58638-0-17439500-1434900890_thumb.png

Here is my Global Emulator settings for it:

post-58638-0-32531000-1434901672_thumb.png

Here are my Fade General and Fade Progress global settings. I doubt you need to match mine:

post-58638-0-79034600-1434901135_thumb.png

post-58638-0-84094700-1434901148_thumb.png

My HyperHQ settings are basically blank:

post-58638-0-78994800-1434901339_thumb.png

post-58638-0-07922700-1434901356_thumb.png

Posted

thanks for that detailed post. i have mostly the same, but my module is another earlier version. whe could i get the same module you are using? and i have uploaded a small video to demonstrate.  https://youtu.be/1G8u9vG_UAI

 

i also tryd using your format in the steam id  so shank 2 looked exactly like it looks for you in the steamids.ini but same results

 

can you upload your pclauncher module folder somewhere i can grab it.

Posted

What version of HyperLaunch HQ are you using? That module was built into mine when I installed it. If you're using some old version of HLHQ then you should probably update.

Now would be the time to update to RocketLauncher 1.0 before you even have the PC stuff working.

The only reason I haven't updated is specifically because I'm afraid it will break all my PC games making the change.

Here's a copy of my PCLauncher.AHK file version 2.1.5

 

MEmu = PCLauncher
MEmuV =  N/A
MURL = https://sites.google.com/site/hyperlaunch2/additional-features/pclauncher
MAuthor = djvj
MVersion = 2.1.5
MCRC = 52BF1C4E
iCRC = 4F0EFDE4
mId = 635243126483565041
MSystem = "Arcade PC","Doujin Soft","Examu eX-BOARD","Fan Remakes","Games for Windows","Konami e-Amusement","Konami Bemani","Microsoft Windows","PCLauncher","PC Games","Steam","Steam Big Picture","Taito Type X","Touhou","Touhou Project"
;----------------------------------------------------------------------------
; Notes:
; Use the examples in the ini, in your Modules\PCLauncher\ folder, to add more applications.
; PCLauncher supports per-System inis. Copy your PCLauncher ini in the same folder and rename it to match the System's Name. Use this if you have games with the same name across multiple systems.
; Read the comments at the top of ini for the definitions of each key.
; For informaion on how to use this module and what all the settings do, please see https://sites.google.com/site/hyperlaunch2/additional-features/pclauncher
;----------------------------------------------------------------------------
StartModule()

If (romExtensions != "")
	ScriptError("PCLauncher does not use extensions, but you have them set to: """ . romExtensions . """. Please remove all extensions from the PCLauncher emulator in HyperLaunchHQ to continue using it.")

IfExist, % modulePath . "\" . systemName . ".ini"	; use a custom systemName ini if it exists
	settingsFile := modulePath . "\" . systemName . ".ini"
Else
	settingsFile := CheckFile(modulePath . "\" . moduleName . ".ini", "Could not find """ . modulePath . "\" . moduleName . ".ini"". HyperLaunchHQ will create this file when you configure your first game to be used with this " . MEmu . " module.")

iniLookup = SteamID|Application|AppWaitExe|DiscImage|Parameters|OriginGame|DXWndGame|WorkingFolder|PreLaunch|PreLaunchParameters|PreLaunchSleep|PostLaunch|PostLaunchParameters|PostLaunchSleep|PostExit|PostExitParameters|PostExitSleep|ExitMethod|FadeTitle|FadeInExitSleep|BezelEnabled
Loop, Parse, iniLookup, |
{	%A_LoopField% := IniReadCheck(settingsFile, dbName, A_LoopField, A_Space,,1)
	If A_LoopField in Application
		If (!Application && !SteamID) { ; Create keys if they do not exist in the ini and this is not a steam game
			IniWrite, %A_Space%, %SettingsFile%, %dbName%, %A_LoopField%
			missingKeys = 1
		}
}

; These settings enable them to be customized per-game in this module
bezelEnabled := IniReadCheck(settingsFile, "Settings|" . dbName, "BezelEnabled",,,1)

If bezelEnabled = true
	BezelGUI()
FadeInStart()
If bezelEnabled = true
	BezelStart()

If (missingKeys && !SteamID)
	ScriptError("You have not set up " . dbName . " in HLHQ yet, so PCLauncher does not know what exe, FadeTitle, and/or SteamID to watch for.")

; If Application needs a cd/dvd image in the drive, mount it in DT first
If DiscImage {
	Log("PCLauncher - Application is a Disc Image, mounting it in DT")
	appIsImage=1
	DiscImage := GetFullName(DiscImage)	; convert a relative path defined in the PCLauncher ini to absolute
	CheckFile(DiscImage,"Cannot find this DiscImage for " . dbName . ":`n" . DiscImage)
	SplitPath,DiscImage,,ImagePath,ImageExt,ImageName
	If ImageExt in mds,mdx,b5t,b6t,bwt,ccd,cue,isz,nrg,cdi,iso,ape,flac
	{	DaemonTools("get")	; get the dtDriveLetter
		DaemonTools("mount",ImagePath . "\" . ImageName . "." . ImageExt)
	} Else
		ScriptError("You defined a DiscImage, but it is not a supported format for this module and/or DT:`nccd,cdi,cue,iso,isz,nrg")
}

; Verify module's settings are set
CheckSettings()

If PreLaunch {
	Log("PCLauncher - PreLaunch set by user, running: " . PreLaunch)
	PreLaunchParameters := If (!PreLaunchParameters or PreLaunchParameters="ERROR" ) ? "" : PreLaunchParameters
	errLevel := Run(If preLSkip ? PreLaunch : """" . PreLaunchName . """ " . PreLaunchParameters, PreLaunchPath)
	If errLevel
		ScriptError("There was a problem launching your PreLaunch application. Please check it is a valid executable.")
	Sleep, %PreLaunchSleep%
}

If DXWndGame = true		; start dxwnd if needed
	DxwndRun()

If mode in steam,steambp	; steam launch
	Steam(SteamID, Application, Parameters)
Else If mode = origin		; origin launch
	Origin(ApplicationName, ApplicationPath, Parameters)
Else {
	If mode = url
	{	Log("PCLauncher - Launching URL.")
		errLevel := Run(Application)
	} Else {	; standard launch
		Log("PCLauncher - Launching a standard application.")
		errLevel := Run("""" . (If WorkingFolder ? ApplicationPath . "\" : "") . ApplicationName . """ " . Parameters, If WorkingFolder ? WorkingFolder : ApplicationPath,, AppPID)
	}
	If errLevel
		ScriptError("There was a problem launching your " . (If appIsImage ? "ImageExe" : "Application") . ". Please check it is a valid executable.")
}

If PostLaunch {
	Log("PCLauncher - PostLaunch set by user, running: " . PostLaunch)
	PostLaunchParameters := If (!PostLaunchParameters or PostLaunchParameters="ERROR" ) ? "" : PostLaunchParameters
	errLevel := Run(If postLSkip ? PostLaunch : """" . PostLaunchName . """ " . PostLaunchParameters, PostLaunchPath)
	If errLevel
		ScriptError("There was a problem launching your PostLaunch application. Please check it is a valid executable.")
	Sleep, %PostLaunchSleep%
}

If FadeTitle {
	Log("PCLauncher - FadeTitle set by user, waiting for """ . FadeTitle . """")
	WinWait(FadeTitle)
	WinWaitActive(FadeTitle)
} Else If AppWaitExe {
	Log("PCLauncher - FadeTitle not set by user, but AppWaitExe is. Waiting for AppWaitExe: " . AppWaitExe)
	AppWaitPID := Process("Wait", AppWaitExe, 15)
	If AppWaitPID = 0
		ScriptError("PCLauncher - There was an error getting the Process ID from your AppWaitExe for """ . dbName . """. Please try setting a FadeTitle instead.")
} Else If SteamIDExe {
	Log("PCLauncher - FadeTitle and AppWaitExe not set by user, but SteamIDExe was found. Waiting for SteamIDExe: " . SteamIDExe)
	SteamIDPID := Process("Wait", SteamIDExe, 15)
	If SteamIDPID = 0
		ScriptError("PCLauncher - There was an error getting the Process ID from your SteamIDExe for """ . dbName . """. Please try setting a FadeTitle instead.")
} Else If AppPID {
	Log("PCLauncher - FadeTitle and AppWaitExe not set by user, but an AppPID was found. Waiting for AppPID: " . AppPID)
	WinWait("ahk_pid " . AppPID)
	WinWaitActive("ahk_pid " . AppPID)
} Else
	Log("PCLauncher - FadeTitle and AppWaitExe not set by user and no AppPID found from an Application, PCLauncher has nothing to wait for",3)

If bezelEnabled = true
	BezelDraw()

Sleep, %FadeInExitSleep%	; PCLauncher setting for some stubborn games that keeps the fadeIn screen up a little longer
FadeInExit()

If AppWaitExe {
	SplitPath,AppWaitExe,AppWaitExe	; In case someone set this as a path accidentally, only want the filename from this key
	Log("PCLauncher - Waiting for AppWaitExe """ . AppWaitExe . """ to close.")
	Process("WaitClose", AppWaitExe)
} Else If FadeTitle {	; If fadeTitle is set and no appPID was created.
	Log("PCLauncher - Waiting for FadeTitle """ . FadeTitle . """ to close.")
	WinWaitClose(FadeTitle)
} Else If SteamIDExe {
	Log("PCLauncher - Waiting for SteamIDExe """ . SteamIDExe . """ to close.")
	Process("WaitClose", SteamIDExe)
} Else If AppPID {
	Log("PCLauncher - Waiting for AppPID """ . AppPID . """ to close.")
	Process("WaitClose", AppPID)
} Else
	ScriptError("Could not find a proper AppWaitExe`, FadeTitle`, or AppPID (from the launched Application). Try setting either an AppWaitExe or FadeTitle so the module has something to look for.")

If PostExit {
	Log("PCLauncher - PostExit set by user, running: " . PostExit)
	PostExitParameters := If (!PostExitParameters or PostExitParameters="ERROR" ) ? "" : PostExitParameters
	errLevel := Run(If postESkip ? PostExit : """" . PostExitName . """ " . PostExitParameters, PostExitPath)
	If errLevel
		ScriptError("There was a problem launching your PostExit application. Please check it is a valid executable.")
	Sleep, %PostExitSleep%
}

; If Application is a cd/dvd image, unmount it in DT
If appIsImage
	DaemonTools("unmount")

; Close steam if it was not open prior to launch, not really needed anymore because module knows how to launch if steam already running now
; If AppPID = 0
	; Run, Steam.exe -shutdown, %SteamPath%	; close steam

If DXWndGame = true
	DxwndClose()
If bezelEnabled = true
	BezelExit()

FadeOutExit()
ExitModule()


CheckSettings() {
	Global Application,ApplicationPath,ApplicationName,ApplicationExt
	Global PreLaunch,PreLaunchPath,PreLaunchName,PreLaunchExt
	Global PostLaunch,PostLaunchPath,PostLaunchName,PostLaunchExt
	Global PostExit,PostExitPath,PostExitName,PostExitExt
	Global moduleName,appIsImage,dtDriveLetter,SteamID,OriginGame,DXWndGame,mode,preLSkip,postLSkip,postESkip,AppWaitExe,SteamIDExe,FadeTitle
	Global modulePath,fadeIn
	Log("CheckSettings - Started")

	; These checks allow you to run URL and Steam browser protocol commands. Without them ahk would error out that it can't find the file. This is different than setting a SteamID but either work
	If (SteamID) {
		mode = steam	; setting module to use steam mode
		Log("PCLauncher - SteamID is set, setting mode to: """ . mode . """")
	} Else If (SubStr(Application,1,3) = "ste") {
		mode = steambp	; setting module to use Steam Browser Protocol mode
		Log("PCLauncher - Application is a Steam Browser Protocol, setting mode to: """ . mode . """")
	} Else If (SubStr(Application,1,4) = "http") {
		mode = url	; setting module to use url mode
		Log("PCLauncher - Application is a URL, setting mode to: """ . mode . """")
	} Else If OriginGame {
		mode = origin	; setting module to use Origin mode
		Application := GetFullName(Application)	; convert a relative path defined in the PCLauncher ini to absolute
		SplitPath,Application,ApplicationName,ApplicationPath,ApplicationExt
		StringRight, ApplicationBackSlash, Application, 1
		Log("PCLauncher - Origin mode enabled. Will log in to Origin if required.")
	} Else If Application {
		mode = standard	; for standard launching
		Application := GetFullName(Application)	; convert a relative path defined in the PCLauncher ini to absolute
		SplitPath,Application,ApplicationName,ApplicationPath,ApplicationExt
		StringRight, ApplicationBackSlash, Application, 1
		Log("PCLauncher - Setting mode to: """ . mode . """")
	} Else	; error if no modes are used
		ScriptError("Please set an Application, SteamID, Steam Browser Protocol, or URL in " moduleName . ".ini for """ . dbName . """")

	If (SteamID && Application)	; do not allow 2 launching methods
		ScriptError("You are trying to use Steam and Application, you must choose one or the other.")

	If ((mode = "steam" || mode = "steambp") && !AppWaitExe && !FadeTitle) { ; && fadeIn = "true") {	; If AppWaitExe or FadeTitle are defined, that will take precedence over the automatic method using the SteamIDs.ini
		SteamIDFile := CheckFile(modulePath . "\SteamIDs.ini")
		If !SteamID
			SplitPath, Application,SteamID ; grab the 
		SteamIDExe := IniReadCheck(SteamIDFile, SteamID, "exe","",,1)
		If !SteamIDExe
			ScriptError("You are using launching a Steam game but no way for the module to know what window to wait for after launching. Please set a AppWaitExe, FadeTitle, or make sure your SteamID and the correct exe is defined in the SteamIDs.ini",10)
		Else
			Log("PCLauncher - Found an exe in the SteamIDs.ini for this game: """ . SteamIDExe . """")
	} Else If (mode = "url" && !AppWaitExe && !FadeTitle)
		ScriptError("You are using launching a URL but no way for the module to know what to window to wait for after launching. Please set a AppWaitExe or FadeTitle to your default application that gets launched when opening URLs.",10)
	
	preLSkip := If (SubStr(PreLaunch,1,4)="http" || SubStr(PreLaunch,1,3)="ste") ? 1:""
	If preLSkip
		Log("PCLauncher - PreLaunch is a URL or Steam Browser Protocol: " . PreLaunch)
	postLSkip := If (SubStr(PostLaunch,1,4)="http" || SubStr(PostLaunch,1,3)="ste") ? 1:""
	If postLSkip
		Log("PCLauncher - PostLaunch is a URL or Steam Browser Protocol: " . PostLaunch)
	postESkip := If (SubStr(PostExit,1,4)="http" || SubStr(PostExit,1,3)="ste") ? 1:""
	If postESkip
		Log("PCLauncher - PostExit is a URL or Steam Browser Protocol: " . PostExit)

	If (ApplicationBackSlash = "\")
		ScriptError("Please make sure your Application does not contain a backslash on the end:`n" . Application)
	If (appIsImage && !ApplicationPath)	; if user only defined an exe for Application with no path, assume it will be found on the root dir of the image when mounted
		ApplicationPath := dtDriveLetter . ":\"
	If (!ApplicationName && mode = "standard" && (mode != "steam" || mode != "steambp"))
		ScriptError("Missing filename on the end of your Application in " . moduleName . ".ini:`n" . Application)
	If (!ApplicationExt && mode = "standard" && (mode != "steam" || mode != "steambp"))
		ScriptError("Missing extension on your Application in " . moduleName . ".ini:`n" . Application)
	If (PreLaunch && !preLSkip) {
		PreLaunch := GetFullName(PreLaunch)
		SplitPath,PreLaunch,PreLaunchName,PreLaunchPath,PreLaunchExt
		StringRight, PreLaunchBackSlash, PreLaunch, 1
		CheckFile(PreLaunch,"Cannot find this PreLaunch application:`n" . PreLaunch)
		If (PreLaunchBackSlash = "\")
			ScriptError("Please make sure your PreLaunch does not contain a backslash on the end:`n" . PreLaunch)
	}
	If (PostLaunch && !postLSkip) {
		PostLaunch := GetFullName(PostLaunch)
		SplitPath,PostLaunch,PostLaunchName,PostLaunchPath,PostLaunchExt
		StringRight, PostLaunchBackSlash, PostLaunch, 1
		CheckFile(PostLaunch,"Cannot find this PostLaunch application:`n" . PostLaunch)
		If (PostLaunchBackSlash = "\")
			ScriptError("Please make sure your PostLaunch does not contain a backslash on the end:`n" . PostLaunch)
	}
	If (PostExit && !postESkip) {
		PostExit := GetFullName(PostExit)
		SplitPath,PostExit,PostExitName,PostExitPath,PostExitExt
		StringRight, PostExitBackSlash, PostExit, 1
		CheckFile(PostExit,"Cannot find this PostExit application:`n" . PostExit)
		If (PostExitBackSlash = "\")
			ScriptError("Please make sure your PostExit does not contain a backslash on the end:`n" . PostExit)
	}
	If mode = standard
		CheckFile(ApplicationPath . "\" . ApplicationName,"Cannot find this Application:`n" . ApplicationPath . "\" . ApplicationName)	; keeping this last so more descriptive errors will trigger first
	Log("CheckSettings - Ended")
}

CloseProcess:
	If ExitMethod ; fadeout will only take effect if an ExitMethod method was set, otherwise fade will occur and application will not close
		FadeOutStart()
	If ( ExitMethod = "Process Close AppWaitExe" && AppWaitExe) {
		Log("CloseProcess - ExitMethod is ""Process Close AppWaitExe""")
		Process("Close", AppWaitExe)
	} Else If ( ExitMethod = "WinClose AppWaitExe" && AppWaitExe) {
		Log("CloseProcess - ExitMethod is ""WinClose AppWaitExe""")
		AppWaitExePID := Process("Exist", AppWaitExe)
		WinClose("ahk_pid " . AppWaitExePID)
	} Else If ( ExitMethod = "Process Close Application" ) {
		Log("CloseProcess - ExitMethod is ""Process Close Application""")
		Process("Close", ApplicationName)
	} Else If ( ExitMethod = "WinClose Application" && FadeTitle ) {
		Log("CloseProcess - ExitMethod is ""WinClose Close Application""")
		WinClose(FadeTitle)
	} Else If ( ExitMethod = "Send Alt+F4" ) {
		Log("CloseProcess - ExitMethod is ""Send Alt+F4""")
		Send, !{F4}
	} Else {
		Log("CloseProcess - Default ExitMethod`, using ""WinClose""")
		WinClose(ApplicationName)
	}
Return
Posted

Wow I am impressed that this can work with steam, does it also work with gog and origin?

Yes those are some of the other settings in the Module Settings.

I've never tried them though. I have no Origin games and I don't even know what GoG is.

EDIT: And welcome! I thought I was responding to avionic at first.

Yes you can run PC/Steam games right from Hyperspin. I have all my PC games, both Steam and non-Steam, running from a single wheel.

Just like MAME or other emulators you can scroll through the games, the games can each have their own theme and video playing (although I have to make most of my own themes because there aren't all that many for PC games) and the launch staright into the game using my normal Cabinet controls.

Posted

METALZOIC i want to thank you for all your help. up to now its working the games that are not working initially they work after setting the appwaitexe in hq. thanks again! i had module 2.1.1 i grabbed one that is even older 2.0.5 and that worked. somehow my module was bad.

 

now just need to start each game once so steam does the install thingy it always do. then to setup controls wich i have no idea how ill do using the xin-mo usb controller on the cab.

Posted

METALZOIC i want to thank you for all your help. up to now its working the games that are not working initially they work after setting the appwaitexe in hq. thanks again!

Good to hear you're getting it working. It frustrated the hell out of me too when I was first figuring it out.

Which games have you found need to use AppWait? Just curious...

And Happy Fathers Day!

EDIT: Yeah controls can be a pain with PC games. There are quite a few topics here and elsewhere though about games that work good with arcade cabinet controls.

My cab uses an iPac to change the inputs to keyboard commands. I have a 2-player 6 button each layout.

Posted

not a father yet but thanks! and same to you. well shank2 made me have to set the appwaitexe, ARES aswell. have not needed to set anymore yet. the rest have been all working so far. with each game i launch im finding it so confusing on how im going to even start working with controls.

Posted

As a tip many games let you simply re-bind controls from the in-game menus.

However there are a bunch that get way trickier and might have a config file hidden in the Steam folder for it, or a config.exe, or need to be configured from Steam itself.

Some are even worse. For example Strider plays perfectly awesome on a 6 button cab (and I highly recommend it), but it has a nightmare of a config.script you need to edit to get it working. It probably took me more than an hour googling just to figure out what to do. That game is worth it though, freakin awesome.

Anyway good luck! If I don't get off this thing my wife is going to freak out.

EDIT: If you ever try to get Mortal Kombat X working search for topics on how to get the controls working. That one is really tricky too.

Posted

thanks for the tips, i do have strider yes very good game. dont have MK X only all the previous ones.  i mostly added a few sidescrollers to test it out. ill add some more after everyone i already added work. 

Archived

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

×
×
  • Create New...