PCSX2 + Steam. Command Line Switches
#11
(09-18-2012, 12:18 AM)Alan3002 Wrote: Now, the part about multiple PCSX2 folders, there is only 1 reason I did this. As you may know by using Steam you have images on the grid view (as seen above in my picture) and you can set custom images for non steam games. I have to (I think I do anyway) create multiple PCSX2 folder locations to allow different custom images, otherwise changing an image for a game, lets say KH2 will automatically change it for FFX too because they would be coming from the same PCSX2 location. Having two different locations allows me two different custom images for different paths.

There may be a way around this I need to look into it further but at the moment it seems to be working ok!
It should work fine as you have it, but if you want to reduce the duplication then a different use of BAT files should be the easiest solution.

Simply take individual folders like you already have, but instead of putting an entire PCSX2 installation in each such folder, you simply put a BAT file in each of them. Then have that game-specific BAT file perform the necessary changes of active path and have it call PCSX2 with the arguments needed to launch the game as you want it launched.

If I were to use the Steam GUI this way myself, I would simply make each such new BAT call one of the game-specific BATs in my current collection of such BATs, as described in my previous post here. But if you don't need such complexity (ie: can use same MCs and plugin settings for all these games), then you can simply have it call PCSX2 directly with the proper arguments. This should work fine without duplicating any PCSX2 components.

NB: This method assumes that the Steam GUI is 'willing' to launch BAT files as well as EXE files, which is something Ive never really tried myself...Tongue2

Best regards: dlanor
Reply

Sponsored links

#12
I know this is an old post but I thought this might be helpful to others. I made a bat file that launches games in steam. It uses parts of different bat files that I found in different posts. It kills multiple instances of pcsx2.exe that may be running and then launches the game iso. I create the bat files for each individual game and then convert them to exe files using bat2exe. Then I link to them in steam. Works like a charm. No more multiple instances of pcsx2.exe in the task manager.


Echo Killing any double pcsx2
TASKKILL /IM pcsx2.exe /t
cls
Echo Successfully killed any double pcsx2.exe's
Echo Starting pcsx2.exe
CD C:
CD C:\Program Files (x86)
CD PCSX2 1.0.0
start pcsx2.exe --nogui "F:\Roms\Playstation 2\Final Fantasy X\FINAL FANTASY X.ISO"

::--------------------------------------
Echo Press any key to kill pcsx2 after finished playing
pause
taskkill /f /im pcsx2.exe
exit
Reply
#13
Recently ive been playin with ma' steam and emus and whatnot.
Here i got somethin for ya all.

To exit from any emulator simply press 4 pad buttons (left and right bumper + select + start)
Use autohotkey -> http://www.autohotkey.com

Make text file and name it exitemu.ahk and paste below code into it:
Code:
Joy10::  ; This can be any *one* of the four buttons.
Loop
{
    GetKeyState, JoyTrigger, %A_ThisHotkey%
    if JoyTrigger = U  ; Main button released before the others were pressed.
        return  ; End this thread to start waiting again for a new triggering.

    GetKeyState, JoyState7, Joy7  ; Replace these digits with your chosen buttons.
    GetKeyState, JoyState8, Joy8
    GetKeyState, JoyState9, Joy9

    JoyStates = %JoyState7%%JoyState8%%JoyState9%
    if JoyStates = DDD  ; The other three are all down now, so break out of the loop.
        break
    else  ; Keep waiting, but do a Sleep to prevent heavy load on CPU:
        Sleep, 10
}
; Since the loop above didn't "return", all four buttons are now down.

Process, Exist, pcsx2-r5350.exe
PCSX2 = %ErrorLevel%  ; Save the value immediately since ErrorLevel is often changed.
if %PCSX2% <> 0
{
    Process, Close, %PCSX2%  ; Kill PCSX2 Process
}

Process, Exist, Dolphin.exe
Dolphin = %ErrorLevel%  ; Save the value immediately since ErrorLevel is often changed.
if %Dolphin% <> 0
{
    Process, Close, %Dolphin%  ; Kill Dolphin Process
}

Process, Exist, PPSSPPWindows64.exe
PPSSPP = %ErrorLevel%  ; Save the value immediately since ErrorLevel is often changed.
if %PPSSPP% <> 0
{
    Process, Close, %PPSSPP%  ; Kill PPSSPP Process
}

Process, Exist, ePSXe.exe
epsxe = %ErrorLevel%  ; Save the value immediately since ErrorLevel is often changed.
if %epsxe% <> 0
{
    Process, Close, %epsxe%  ; Kill ePSXe Process
}

return



To know what is the number of your buttons in autohotkey see below

Create text file testjoy.ahk and paste below code into it:
Code:
; July 6, 2005: Added auto-detection of joystick number.
; May 8, 2005 : Fixed: JoyAxes is no longer queried as a means of
; detecting whether the joystick is connected.  Some joysticks are
; gamepads and don't have even a single axis.

; If you want to unconditionally use a specific joystick number, change
; the following value from 0 to the number of the joystick (1-16).
; A value of 0 causes the joystick number to be auto-detected:
JoystickNumber = 0

; END OF CONFIG SECTION. Do not make changes below this point unless
; you wish to alter the basic functionality of the script.

; Auto-detect the joystick number if called for:
if JoystickNumber <= 0
{
    Loop 16  ; Query each joystick number to find out which ones exist.
    {
        GetKeyState, JoyName, %A_Index%JoyName
        if JoyName <>
        {
            JoystickNumber = %A_Index%
            break
        }
    }
    if JoystickNumber <= 0
    {
        MsgBox The system does not appear to have any joysticks.
        ExitApp
    }
}

#SingleInstance
SetFormat, float, 03  ; Omit decimal point from axis position percentages.
GetKeyState, joy_buttons, %JoystickNumber%JoyButtons
GetKeyState, joy_name, %JoystickNumber%JoyName
GetKeyState, joy_info, %JoystickNumber%JoyInfo
Loop
{
    buttons_down =
    Loop, %joy_buttons%
    {
        GetKeyState, joy%a_index%, %JoystickNumber%joy%a_index%
        if joy%a_index% = D
            buttons_down = %buttons_down%%a_space%%a_index%
    }
    GetKeyState, joyx, %JoystickNumber%JoyX
    axis_info = X%joyx%
    GetKeyState, joyy, %JoystickNumber%JoyY
    axis_info = %axis_info%%a_space%%a_space%Y%joyy%
    IfInString, joy_info, Z
    {
        GetKeyState, joyz, %JoystickNumber%JoyZ
        axis_info = %axis_info%%a_space%%a_space%Z%joyz%
    }
    IfInString, joy_info, R
    {
        GetKeyState, joyr, %JoystickNumber%JoyR
        axis_info = %axis_info%%a_space%%a_space%R%joyr%
    }
    IfInString, joy_info, U
    {
        GetKeyState, joyu, %JoystickNumber%JoyU
        axis_info = %axis_info%%a_space%%a_space%U%joyu%
    }
    IfInString, joy_info, V
    {
        GetKeyState, joyv, %JoystickNumber%JoyV
        axis_info = %axis_info%%a_space%%a_space%V%joyv%
    }
    IfInString, joy_info, P
    {
        GetKeyState, joyp, %JoystickNumber%JoyPOV
        axis_info = %axis_info%%a_space%%a_space%POV%joyp%
    }
    ToolTip, %joy_name% (#%JoystickNumber%):`n%axis_info%`nButtons Down: %buttons_down%`n`n(right-click the tray icon to exit)
    Sleep, 100
}
return
Reply




Users browsing this thread: 1 Guest(s)