Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon

[APP] SwitchDisc 1.0.4


nullPointer

Recommended Posts

A new build is available in the first post of the thread. This release includes the following changes:

SwitchDisc 1.0.2

  • Bug Fix: Improved image caching routine. This will prevent SwitchDisc from reusing previous image settings
  • Added an Artwork Path switch to command line parameters (see readme for details)
  • SwitchDisc Configurator Send Keys Builder: Addition of automated Task Killer operation

Thanks for all the feedback and the bug reporting!

@Felix: In testing this latest build I put together a SwitchDisc config that works with ePSXecutor. Note that I'm not using a virtual drive with this config. If I were, I'd need to throw in an additional disc mounting step. That would be fairly arbitrary to do, but it is noteworthy. All in all, it turned out to be a pretty simple config (especially once I leveraged the new Task Killer operation :D). I've attached the config for your perusal, but a picture is worth a thousand words. Here are the pertinent settings for ePSXecutor:

ePSXecutor_config.png

If something in here doesn't seem clear you can refer to the full config, or you can post back right here. I'll post up a working GameEx config for this tomorrow evening.

Thanks again to Felix, Adultery, and to anyone else who's had the opportunity to mess around with this utility.

  • Like 1
Link to comment
Share on other sites

While I do not emulate the systems that this program is looking to be very useful for, I have to say again thanks to both nullpointer for the program and Felix for his thorough testing and reporting back to make it a success!

Link to comment
Share on other sites

Null, just for postarity and thorough documentation, could you also post your GameEx send before/after/also, command line, working path and rompath. Then we should have a complete model to follow. Thanks a ton, BTW.

I'll keep testing and report any bugs, or if I get things working, etc.

***EDIT***

BUG REPORT:

This is really nit picky, but something that is in the details. When I was in the Emulators screen and moving from disk to disk, a blue higlight indicate the curent selection. Well you can navigate up or down by the arrow keys, but the info to the right does not refresh to the new disc. When you click on the other disk it does, just not if you try the arrow up or down. Like I said, it is a really nit picky issue, and frankly it's easier to click on the disc than use the arrows keys. So I doubt you'll need to fix it. Thought I might mention it.

Link to comment
Share on other sites

Good catch Felix. :) Looks like a navigation method that I neglected to implement. I'll look into it. I imagine that it will be fairly easy to fix.

Edit:

I may not implement the exact way you describe here. I'd like the tree menu to operate in much the same way that the tree menu operates in Windows Explorer. So it won't immediately refresh the right hand panel as you navigate through the tree menu with arrow keys, but it will refresh when you navigate with arrow keys to highlight your selection, and press enter. That way the control acts in a way that's familiar to standard Windows controls (which as you point out, it's not quite there yet). Thanks again for reporting.

Link to comment
Share on other sites

I was able to get Switchdisc to recognize what disc is loaded, as it only displays the discs relevent to that game. I used this from the readme;

Launch Before:

start "" "C:\SWITCHDISC_DIRECTORY \SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"

I can't get the run after command to run after! It runs exactly after the run also/before command (starting switchdisc and closing imediatly). Either that or switchdisc never loads at all. No conbination, of batch files, direct input, or start "" will allow me to start switchdisc then close it after exiting the emulator. I can get it to start and run if I leave the after command empty. That is what I'm doing now to test if switchdis will switch discs. On that front, it still does not. It exits ePSXe with that <TASK_KILL> operation but goes back to GameEx screen instead of changing discs.

Anyway thats where I'm at.

***Edit***

Just thought I might mention that I'm using the -nogui command in the ePSXecutor command line for the game.lnk shortcuts. Perhaps switchdisc needs the ePSXe GUI running in the background in order to change discs? Thought I might add that.

Link to comment
Share on other sites

Okie Dokie, config time. Note that what I'm presenting here is probably one of at least a few different ways you could pull this off. First here's my full ePSXecutor emulator config from GameEx:

[Console] Sony Playstation (ePSXecutor)

[Emulator]

Enabled=True

System=Sony Playstation

Category=Console

Emulator=pSX

Version=1.13

Rating=8.2

DownloadUrl=http://www.gamesdbase.com/setupwizard/emulators/download/pSX.7z

RequiredFiles=scph1001.bin (512kb)

Website=http://psxemulator.gazaxian.com/

Info=Sony Playstation Emulator

TitleText=Sony Playstation

StartPageName=[Console] Sony Playstation (ePSXecutor)

StartPageLogo=Sony Playstation

Command="[ROMPATH]\[ROMFILE]"

RomFilter=*.lnk

Database=[Console] Sony Playstation

ConfigFile=[Mapping On] ePSXecutor

MapFile=

RomPath=E:\Emulation\Emulators\ePSXe v1.7.0\shortcuts

SnapPath=E:\Emulation\Assets\Sony_Playstation\Snap

TitlePath=E:\Emulation\Assets\Sony_Playstation\Title

BoxPath=E:\Emulation\Assets\Sony_Playstation\Box

CartPath=

ManualPath=E:\Emulation\Assets\Sony_Playstation\Manual

ControlPanelPath=E:\Emulation\Assets\Sony_Playstation\Controls\Console_Sony_PSX.png

WorkingPath=E:\Emulation\Emulators\ePSXe v1.7.0

MapKeys=True

WaitBeforeKeys=

SendKeys=

ReplaceDash=False

ReplaceUnder=True

Capitals=False

RemoveBrackets=True

ShowDesktop=True

Debug=False

AlsoLaunch="E:\Emulation\Emulators\ePSXe v1.7.0\batch\ePSXecutor_Also_Launch.bat" "[WORKINGPATH]" "[ROMFILE]"

LaunchBefore=

LaunchAfter=start "" "E:\Emulation\Emulators\ePSXe v1.7.0\batch\ePSXecutor_Launch_After.bat"

ExcludedFiles=

CustomBackground=

PlayMusic=False

DontShowInfo=

PlaySelectionMusic=False

SelectionMusicFolder=

PCGame=False

GamesIn7Zips=False

PlayInScreenSaver=False

ShowMostPlayed=True

RandomMostPlayed=True

CDCheck=False

CDCheckFile=

imagenotfound=E:\Emulation\Assets\no_img.png

MergeSets=True

lastgame=

UseDbName=True

RomsInFolders=False

VideoSnapPath=E:\Emulation\Assets\Sony_Playstation\Video_MP4

TVAdPath=E:\Emulation\Assets\Sony_Playstation\Video_Advert_MP4

CustomArtName1=Print Advert

CustomArtPath1=E:\Emulation\Assets\Sony_Playstation\Advert

CustomArtName2=Disc

CustomArtPath2=E:\Emulation\Assets\Sony_Playstation\CD

Here are some noteworthy tidbits from that config. I've utilized batch scripts here in an attempt to more closely mirror you're own processes. If I'd had my druthers, I'd probably attempt to omit that step, and just run/exit SwitchDisc directly form the Launch Before and Launch After parameters (technically you could still do this by launching everything else from Also Launch, but for now we'll stick with the script)

You're absolutely correct that the command that should be "Launch Before" must be launched as an "Also Launch". I suspect that if one were able to use the start "" "process.exe" notation GameEx would be able to process the command a bit better, but since we're sending multiple parameters into that batch file and they all potentially contain spaces (which in turn causes the start "" "process.exe" to balk), we'll just stick with the Also Launch command. It works fine for our purposes.

Also Launch:


"E:\Emulation\Emulators\ePSXe v1.7.0\batch\ePSXecutor_Also_Launch.bat" "[WORKINGPATH]" "[ROMFILE]"

The start "" "process.exe" method works just fine for Launch After though, so that's what I'll use here.

Launch After


start "" "E:\Emulation\Emulators\ePSXe v1.7.0\batch\ePSXecutor_Launch_After.bat"

So what exactly do those batch scripts contain? Well let's take a look! Take note of how the last line in ePSXecutor_Also_Launch.bat utilizes the parameters passed in from GameEx.

ePSXecutor_Also_Launch.bat

start "" "C:\Emulation\Utilities\Xpadder\Xpadder.exe" "C:\Emulation\Utilities\Xpadder\Profiles\Rumblepad2_P2[Default].xpadderprofile" "C:\Emulation\Utilities\Xpadder\Profiles\Rumblepad2_P1[Default].xpadderprofile" /M

start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -w "%~1" -f "%~2"

The Launch After batch script is pretty straight forward. It just closes everything launched in the Also Launch and doesn't need any special parameters.

ePSXecutor_Launch_After.bat

start "" "C:\Emulation\Utilities\Xpadder\Xpadder.exe" /C

start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -q

So we've already discussed the need for an advanced emulator config simply for using ePSXecutor through GameEx. Remember how we added ePSXe to the Additional Processes to Watch? Well SwitchDisc is going to throw a new wrinkle in that plan (albeit a very minor one). You'll notice that in order to change discs here we must completely restart the emulator. So how do we let GameEx know that we're not done playing yet? We just add SwitchDisc to the list of Additional Processes to Watch. Easy-Peezy. Here's the advanced emulator config that I'm using for that purpose:

[Mapping On] ePSXecutor.ini

# This is an advanced emulator configuration file. It does things such as allow keyboard only emulators to be operated by a gamepad, wait for additional processes to exit and map keys. If this file is used it overrides the MAPKeys setting for the emulator.

[GENERAL]

# Enabled. Use this.

Enabled=True

#Make MCE Back button and X-ARCADE Escape and SlikStik Escape to close emulator process

MapBack=True

#Make Escape key close emulator process

MapEscape=True

#When exiting an emulator via the above mappings, you can specify keys in the send keys format to send instead of having GameEx close the process to cleanly exit the emulator. Such as the Q Key or ALT F4 which is %{F4}

KeysToSendOnExit={ESC}

#Wait for keys to be processed by the emulator

EmuWaitForKeys=True

#Additional processes to wait to exit or close on exit. Dont include the .exe. Leave blank not to use.

Process1=ePSXe

Process2=SwitchDisc

Process3=

Process4=

[JOYMAPPING]

# For mapping a GamePad to keys

# Specify a virtual key code to send when the specific joystick control is pressed. Look at vkcodes.htm for codes.

JoymappingEnabled=False

Left=

up=

Right=

Down=

Button1=

Button2=

Button3=

Button4=

Button5=

Button6=

Button7=

Button8=

Button9=

Button10=

Button11=

Button12=

Button13=

Button14=

Button15=

Button16=

[GAMEPADEXIT]

#MAP Gamepad controls to exit and make controls exit process

MapGamePadExit=True

#Flag the controls that exit a game by placing True next to each control. To not use the control as part of the combination use a 0

Left=True

Down=

Right=

Up=True

Button1=

Button2=

Button3=

Button4=True

Button5=True

Button6=True

Button7=

Button8=

Button9=

Button10=

Button11=

Button12=

Button13=

Button14=

Button15=

Button16=

[MOUSEMAPPING]

# For registered users, the ability to control the mouse with a gamepad and/or directional keys.

# For example for PC strategy games.

# Apparantly this functionality is similar to the software Pinnacle profiler. Remember you can setup an emulator

# as one PC game. Specify enabled, and mousespeed 0-20. 20 Being fastest. This setting overrides the directional

# mapping for the above and buttons 1 and 2 Button 1/CTRL becomes left mouse. Button 2/ALT Right mouse

MouseMappingEnabled=False

MouseSpeed=0

[bLOCKKEYS]

# Use this section to disable and block key presses and mouse clicks.

# To disable the mouse clicks use code 1 for left mouse button,

# 2 for right button and 4 for middle button

Enabled=False

BlockKey_1=1

BlockKey_2=2

BlockKey_3=4

BlockKey_4=

BlockKey_5=

[KEYBOARDREMAP]

# Remap Keys for the emulator. Specify from the from key, which is the key you wish to replace the to key

# This should be good enough for real time gaming. Registered version feature. Look at VKCodes.htm for codes.

Enabled=False

Remap_1_From_VK=

Remap_1_To_VK=

Remap_2_From_VK=

Remap_2_To_VK=

Remap_3_From_VK=

Remap_3_To_VK=

Remap_4_From_VK=

Remap_4_To_VK=

Remap_5_From_VK=

Remap_5_To_VK=

Remap_6_From_VK=

Remap_6_To_VK=

Remap_7_From_VK=

Remap_7_To_VK=

Remap_8_From_VK=

Remap_8_To_VK=

Remap_9_From_VK=

Remap_9_To_VK=

Remap_10_From_VK=

Remap_10_To_VK=

Remap_11_From_VK=

Remap_11_To_VK=

Remap_12_From_VK=

Remap_12_To_VK=

Remap_13_From_VK=

Remap_13_To_VK=

Remap_14_From_VK=

Remap_14_To_VK=

Remap_15_From_VK=

Remap_15_To_VK=

Remap_16_From_VK=

Remap_16_To_VK=

Remap_17_From_VK=

Remap_17_To_VK=

Remap_18_From_VK=

Remap_18_To_VK=

Remap_19_From_VK=

Remap_19_To_VK=

Remap_20_From_VK=

Remap_20_To_VK=

Remap_21_From_VK=

Remap_21_To_VK=

Remap_22_From_VK=

Remap_22_To_VK=

Remap_23_From_VK=

Remap_23_To_VK=

Remap_24_From_VK=

Remap_24_To_VK=

Remap_25_From_VK=

Remap_25_To_VK=

Remap_26_From_VK=

Remap_26_To_VK=

Remap_27_From_VK=

Remap_27_To_VK=

Remap_28_From_VK=

Remap_28_To_VK=

Remap_29_From_VK=

Remap_29_To_VK=

Remap_30_From_VK=

Remap_30_To_VK=

Remap_31_From_VK=

Remap_31_To_VK=

Remap_32_From_VK=

Remap_32_To_VK=

So I think that's everything. That's doing the trick on my rig. Let me know how it goes, or if you run into any rough patches.

Link to comment
Share on other sites

So, I was unable to reproduce your results with the settings you provided. However, as I have suspected, that ePSXecutor.ini has been an issue. I copied yours and placed it in my emulator config, and added SwitchDisk to the original's watch list. They do not fix the launch after problem I've been experiancing. If anything is in the launch after command, it will run as if it were also run, and not upon exiting ePSXe. GameEx does however wait for switchdisc to end before coming back. So that part is right. Let me be clear I can only get into the SwitchDisc GUI if I leave the also launch command line empty, otherwise, switch disc opens and closes imediatly.

Big questions: Ok, lets break it down.

1) The purpose of the Launch also command is to start SwitchDisc, correct? What is the purpose of this? ("%~1" -f "%~2") Would it matter if I changed it to: (-w "[WORKINGPATH]" -f "[ROMFILE]"). I imagine the two are identicle commands. Can this be acomplished without batch files to simplify the process? Or, since there is more than one string do we need to use a batch?

2) The purpose of the Launch After command line is to Exit SwitchDisc after ePSXe is exited, correct? Can this be acomplished without batch files to simplify the process? Also, how does GameEx know when to send the also launch command? I hoping there is a config entery that can be changed, because there is an issue with that process! I could not find anything in the ePSXecutor.ini that seems to apply. But, this worked correctly before that config. Right now (for me at least) it is most certainly not being sent after... Extremly frustrating! It, doesn't make a difference if I use the launch berore or also command line. I get the same result. We have to iron that out, especially now that gameEx is waiting for switchdisc to be closed. I coulden't have changed a setting in the wizard that could affect this process, could I?

3) You changed the following in the ePSXecutor.ini. Could you explain why. I assume they are preferences, but they might be for an important reason.

MapBack=True, MapEscape=True, KeysToSendOnExit={ESC},

4) It's difficult to tell if your GameEx working path is to the folder containing the ePSXecutor shortcuts or the the folder containing the ePSXe.exe emulator. Which is it suposed to be? I have both my working path and rom path to the same place, since ePSXecutor is launching my ePSXe games (with the correct config/version) and not ePSXe.exe. Is that correct?

***Edit***

5) What should the Map File be?

Link to comment
Share on other sites

Prepare for a wall of text. Everybody feeling good? Fortified? Does everyone have a snack and a crosswalk buddy? OK good let’s dive in.

So, I was unable to reproduce your results with the settings you provided. However, as I have suspected, that ePSXecutor.ini has been an issue. I copied yours and placed it in my emulator config, and added SwitchDisk to the original's watch list. They do not fix the launch after problem I've been experiancing. If anything is in the launch after command, it will run as if it were also run, and not upon exiting ePSXe. GameEx does however wait for switchdisc to end before coming back. So that part is right. Let me be clear I can only get into the SwitchDisc GUI if I leave the also launch command line empty, otherwise, switch disc opens and closes imediatly.

To be honest I would attempt to duplicate the contents of the Emulator Config, Advanced Emulator Config, and batch scripts I posted as closely as possible. Making an adjustment here and there is fine when tweaking is all that’s required, but we’ve been hammering on that same config for quite a while without getting the desired results. Time for an overhaul my friend! :lol: I’ll post an alternate working config that might be a bit more manageable following this post. GameEx can be quirky at times about launching batch files.

1) The purpose of the Launch also command is to start SwitchDisc, correct? What is the purpose of this? ("%~1" -f "%~2") Would it matter if I changed it to: (-w "[WORKINGPATH]" -f "[ROMFILE]"). I imagine the two are identicle commands. Can this be acomplished without batch files to simplify the process? Or, since there is more than one string do we need to use a batch?

Yes in this case the purpose of Also Launch is to launch SwitchDisc. In the general case, Also Launch is designed to start processes for which the strict order of operations is not important (i.e. processes that don’t need to be launched before the emulator itself is running). Typically you see Launch Before and Launch After being used much more frequently than you see Also Launch being used. This is something of a special case.

Remember how I discussed passing parameters into a batch script? That’s what’s happening there. So when GameEx runs this command


"E:\Emulation\Emulators\ePSXe v1.7.0\batch\ePSXecutor_Also_Launch.bat" "[WORKINGPATH]" "[ROMFILE]"

[WORKINGPATH] and [ROMFILE] are passed into the batch script and processed in the order in which they were passed in. So

• “%~1” = [WORKINGPATH]

• "%~2" = [ROMFILE]

Thus the command that gets run from within the batch script is this:


start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"

It would definitely not work if you changed the "%~1" -f "%~2" to -w "[WORKINGPATH]" -f "[ROMFILE]" within the batch script itself. Only GameEx knows how to parse those placeholder values. So although GameEx launches your batch script, it has no idea (and more to the point doesn’t care) what’s inside your batch script. If you put the placeholders inside your batch file, they will be processed as “String Literals” (i.e. they’ll be read literally as “[WORKINGPATH]” and “[ROMFILE]” respectively). Following this post I’m going to bang together a config that shouldn’t have to rely on batch scripts in this fashion.

2) The purpose of the Launch After command line is to Exit SwitchDisc after ePSXe is exited, correct? Can this be acomplished without batch files to simplify the process? Also, how does GameEx know when to send the also launch command? I hoping there is a config entery that can be changed, because there is an issue with that process! I could not find anything in the ePSXecutor.ini that seems to apply. But, this worked correctly before that config. Right now (for me at least) it is most certainly not being sent after... Extremly frustrating! It, doesn't make a difference if I use the launch berore or also command line. I get the same result. We have to iron that out, especially now that gameEx is waiting for switchdisc to be closed. I coulden't have changed a setting in the wizard that could affect this process, could I?

Yes in this case the purpose of the launch after command is to close SwitchDisc when you exit the emulator. If you’re only closing SwitchDisc, then yes a single command would be perfectly sufficient. If you need to close multiple processes when you exit the emulator you’ll need to resort to a batch file. I’m not sure if you need to close your DS3Tool dealy when you exit the emulator (I was assuming so since it gets launched at the same time as the emulator). If you don’t need to close the additional process then just go with a single command.

You can think of Also Launch as being launched at the same time as the emulator. Furthermore GameEx doesn’t seem to ‘watch’ the Also Launch command as closely as the Launch Before command (GameEx tries to guarantee that a Launch Before command occurs before the emulator is running; Also Launch – not so much).

My guess is that the launch after is running immediately after the Launch Before/Also Launch as a result of how you’re using the Launch Before/Also Launch commands, or else the contents within those scripts. Just an educated guess mind you. :huh:

3) You changed the following in the ePSXecutor.ini. Could you explain why. I assume they are preferences, but they might be for an important reason.

MapBack=True, MapEscape=True, KeysToSendOnExit={ESC},

Actually that part is superfluous. I was bored and curious. It still worked to exit the emulator so I left it in place. Sorry to have confused the issue there.

4) It's difficult to tell if your GameEx working path is to the folder containing the ePSXecutor shortcuts or the the folder containing the ePSXe.exe emulator. Which is it suposed to be? I have both my working path and rom path to the same place, since ePSXecutor is launching my ePSXe games (with the correct config/version) and not ePSXe.exe. Is that correct?

My working path and rom path are different in that config. I put my shortcuts into the following directory and named that as my ROM directory. There’s really not a ‘correct’ way to do this in terms of ePSXe (cutor) since it doesn’t require roms to be in a specific directory. So long as your GameEx emulator command is working you’re golden.


RomPath=E:\Emulation\Emulators\ePSXe v1.7.0\shortcuts

You’ll notice that GameEx isn’t actually even doing anything with the working directory in that config other than passing it over to SwitchDisc. Even SwitchDisc is only using it to match up with an emulator in the SwitchDisc config. Really the working path here doesn’t matter much. In this case ePSXecutor is what really nees to know the Working Path, and it simply requires that ePSXe.exe resides in the same directory as itself. All the same for the purposes of GameEx I’m still pointing the working directory at the emulator directory (like a good little GameEx user). Same goes for the SwitchDisc config.


WorkingPath=E:\Emulation\Emulators\ePSXe v1.7.0

***Edit***

5) What should the Map File be?

The map file should be nothing. I don’t want to confuse the issue too much by going into detail on what map files are or how they should be used (let’s call it a conversation for another day ;)). But long story short, you don’t need a map file here (and not for any disc based emulator to my knowledge) In fact I don’t think SwitchDisc would cooperate very well at all with map files.

Wow, for anyone who made it this far, I bet you’re exhausted! How about some cookies and nice warm milk? Ha, just kidding this is the internet, and I can’t transmit those digitally. I’m afraid you’re on your own there. :o

Link to comment
Share on other sites

OK here's an alternate working GameEx config verified on my own system. Note that I'm not using any batch scripts here. Before I used batch scripts to illustrate how one might accomplish that. In the previous example I was using the batch script(s) to open and close Xpadder in addition to SwitchDisc. In reality if I were doing that, I'd use Adulterys excellent Xpadder plug-in instead. Felix in your case I'd experiment with launching your DS3Tool using Also Launch. If that doesn't work swap around the Launch Before and Also Launch Commands (i.e put SwitchDisc in the Also Launch and your DS3Tool in the Launch Before). The advanced emulator config referenced here is the exact same one I posted here, but I renamed it slightly for the purpose of clarity (i.e. since SwitchDisc is included in the advanced config I renamed it to reflect that).

[Console] Sony Playstation (ePSXecutor)

[Emulator]

Enabled=True

System=Sony Playstation

Category=Console

Emulator=pSX

Version=1.13

Rating=8.2

DownloadUrl=http://www.gamesdbase.com/setupwizard/emulators/download/pSX.7z

RequiredFiles=scph1001.bin (512kb)

Website=http://psxemulator.gazaxian.com/

Info=Sony Playstation Emulator

TitleText=Sony Playstation

StartPageName=[Console] Sony Playstation (ePSXecutor)

StartPageLogo=Sony Playstation

Command="[ROMPATH]\[ROMFILE]"

RomFilter=*.lnk

Database=[Console] Sony Playstation

ConfigFile=[Mapping On] ePSXecutor_SwitchDisc

MapFile=

RomPath=E:\Emulation\Emulators\ePSXe v1.7.0\shortcuts

SnapPath=E:\Emulation\Assets\Sony_Playstation\Snap

TitlePath=E:\Emulation\Assets\Sony_Playstation\Title

BoxPath=E:\Emulation\Assets\Sony_Playstation\Box

CartPath=

ManualPath=E:\Emulation\Assets\Sony_Playstation\Manual

ControlPanelPath=E:\Emulation\Assets\Sony_Playstation\Controls\Console_Sony_PSX.png

WorkingPath=E:\Emulation\Emulators\ePSXe v1.7.0

MapKeys=True

WaitBeforeKeys=

SendKeys=

ReplaceDash=False

ReplaceUnder=True

Capitals=False

RemoveBrackets=True

ShowDesktop=True

Debug=False

AlsoLaunch=

LaunchBefore=start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"

LaunchAfter=start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -q

ExcludedFiles=

CustomBackground=

PlayMusic=False

DontShowInfo=

PlaySelectionMusic=False

SelectionMusicFolder=

PCGame=False

GamesIn7Zips=False

PlayInScreenSaver=False

ShowMostPlayed=True

RandomMostPlayed=True

CDCheck=False

CDCheckFile=

imagenotfound=E:\Emulation\Assets\no_img.png

MergeSets=True

lastgame=

UseDbName=True

RomsInFolders=False

VideoSnapPath=E:\Emulation\Assets\Sony_Playstation\Video_MP4

TVAdPath=E:\Emulation\Assets\Sony_Playstation\Video_Advert_MP4

CustomArtName1=Print Advert

CustomArtPath1=E:\Emulation\Assets\Sony_Playstation\Advert

CustomArtName2=Disc

CustomArtPath2=E:\Emulation\Assets\Sony_Playstation\CD

Here are the pertinent changes (in fact these are the only changes). Hey Ma, no batch files! :)


AlsoLaunch=
LaunchBefore=start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"
LaunchAfter=start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -q

Note the judicious use of start "" "process.exe" I'd highly recommend applying the same technique. I've experienced some unpredictable behavior in GameEx when I haven't done that (particularly for Launch Before / Launch After). Good luck man. I'm hoping between this config and the previous it should put you on the right track.

Link to comment
Share on other sites

More launch before/after/also back and forth. This has been beaten to death, so I've included it in spoiler brackets to save space. Skip this if you don't care:

GameEx tries to guarantee that a Launch Before command occurs before the emulator is running; Also Launch – not so much... My guess is that the launch after is running immediately after the Launch Before/Also Launch as a result of how you’re using the Launch Before/Also Launch commands, or else the contents within those scripts. Just an educated guess mind you. :huh:

I mean, that should be the case and I suppose it is still possable that I haven't found the correct combination. However, I have tried every combination you have suggested and at least 15-20 others (with the start "", with and without the batch files, and with and without the pass commands -w, -f, -q, etc.) The behavior of GameEx has varried some and I've thought I was close a few times, but one constant appeared; I can't get the launch after process to occur after ePSXecutor exits and just before GameEx returns. It always happens imediatly after the launch before string (at least from what my eyes tell me). I can see switchdisc launch in the system tray just before the game goes fullscreen. I hit the ALT+Enter keys to exit fullscreen after the game launches and switchdisc is gone. When I press ESC the game ends and gameex comes back the way it should, except in the cases where switchdisc is still running(because I left the after command empty to test switchdisc's functionality). That is why I was asking about this process.

Am I the only person having this problem, or just the only person testing the ePSXecutor setup?

I have one last thing to try in the desparate hope it's a setting within GameEx I unwitingly changed. I will copy my GameEx config, yes that god awefuly long one, and place it in another location. Then I will go back into the setup wizard and hit default on every page that might have settings on it. I'll even change my theme back to the default.If the problem is settings related, this should expose it. I'm currently using the latest working switchdisc config you suggested (the one without batch files).All I'm looking for is that the also launch command runs after ePSXecutor exits the game and before GameEx returns, alowing me to get into the switchdisc GUI. We can deal with getting it to work afterwards. If there is no change I can just deleate the config and replace it with the original copy to return my settings to like before.

If that doesn't work, then I'm not sure I will be able to use switchdisc with my Playstation games. That would be a huge bummer, after all this work and coming so close. Besides it's the only emulator I have with multipl disc, so far. I'll edit if that fixes the issue or not. Stay tuned...

***Edit***

No that did not fix the issue. So, it is not a setting. It must be a command, or a "Ninja Gremlin :ph34r:".

Runitgame: Looks right

chcp 65001
E:
CD "E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXe.1.6.0"
start "" "C:\GameEx\CONFIG\Switchdisc\SwitchDisc-1.0.2\SwitchDisc-1.0.2\SwitchDisc.exe" -w "E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXecutor frontend\Game Shortcuts" -f "Chrono Cross (Disc 1).LNK"
"E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXe.1.6.0\ePSXeCutor.exe" "Chrono Cross (Disc 1)"
start "" "C:\GameEx\CONFIG\Switchdisc\SwitchDisc-1.0.2\SwitchDisc-1.0.2\SwitchDisc.exe" -q

I'll fuss around with the commands a little before reverting back to my old config, and see if I can come up with something....

***edit***

I wasn't able to, unfortunatly. :mellow:

...I’m not sure if you need to close your DS3Tool dealy when you exit the emulator (I was assuming so since it gets launched at the same time as the emulator). If you don’t need to close the additional process then just go with a single command.

Yeah, no. The DS3Tool I made is just an autohotkey executable that enables my motionjoy profile. I have motionjoy setup to run in the system tray at startup, so it is ever present and working. The problem is that it doesn't automatically enable your controller profile upon discovery of the controller. My DS3Tool only needs to be run once to enable the profile, then it is go untill reboot. The reason I can't just place it in the startup folder is that the controller has to connect tho the computer first, then the tool has to run. So, I need to have it run before the emulator, unless there is a way to tell the computer to autorun the DS3Tool upon discovery of this controller. I'm sure there is but that's beyond my programming skill level, and would probably get messed up the next time I pair my Dualshock 3 with the PS3. I would probably need a dedicated Dualshock that is only for the computer. There shoulden't be a problem with running the DS3Tool in the before command and SwitchDisc in the also. I mean switchdisc doesn't need to be run before the emulator does it? As long as it is running at the same time switchdisc should be able to see the game running, right? Anyway, that's what going on there.

Null:

I knoticed you're running SwitchDisc from visual studio projects. Is what you're running exactly the same as the download? I assume it is, but it might have better compatability on your system if it was created there. I figure you have set it up on another computer (or arcade console ;)) to test switchdisc outside it's "cacoon motherboard". Not to pass the blame, I'm sure that I have a setting, wrong command, or some kind of ninja gremlin somewhere, especially if others are able to get this working. Just want to make sure the variables between our systems are minamal.

BTW: that is what I'm calling this issue now. The Ninja Gremlin :ph34r: !

Link to comment
Share on other sites

More launch before/after/also back and forth. This has been beaten to death, so I've included it in spoiler brackets to save space. Skip this if you don't care:

Aww, you wound me Felix! Of course I care! :D I’m still hoping we can get you up and running - at the very least so I know that Switchdisc is working for someone other than myself (and for all I know you’re the only other person who has tried the application). Stuff like this is what keeps developers up at night. Let’s check out what you’ve got here:

No that did not fix the issue. So, it is not a setting. It must be a command, or a "Ninja Gremlin :ph34r:".

Runitgame: Looks right

chcp 65001
E:
CD "E:\<omitted>\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXe.1.6.0"
start "" "C:\GameEx\CONFIG\Switchdisc\SwitchDisc-1.0.2\SwitchDisc-1.0.2\SwitchDisc.exe" -w "E:\<omitted>\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXecutor frontend\Game Shortcuts" -f "Chrono Cross (Disc 1).LNK"
"E:\<omitted>\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXe.1.6.0\ePSXeCutor.exe" "Chrono Cross (Disc 1)"
start "" "C:\GameEx\CONFIG\Switchdisc\SwitchDisc-1.0.2\SwitchDisc-1.0.2\SwitchDisc.exe" -q

I'll fuss around with the commands a little before reverting back to my old config, and see if I can come up with something....

***edit***

I wasn't able to, unfortunatly.

I omitted a lot of stuff form the spoiler because I have to agree; to my eyes your SwitchDisc commands are looking good at this point. I think there may be an issue with your emulator config in GameEx. If you have the patience, and don’t mind travelling down this well worn path one more time, let’s see if we can’t go all Samurai (or Pirate if you prefer) on that Ninja Gremlin. :ph34r:

Hmm … I started typing out some suggestions, but I realized that I’m making some assumptions about your GameEx emulator config based on your runitgame.bat. I’d like to avoid keeping you running in circles, so I reversed course mid-stream. Would you mind posting your GameEx emulator config for ePSXecutor? That would be worth its weight in gold to assist in troubleshooting the config. (If you feel like being super helpful you could post your GameEx emulator config for ePSXecutor and your SwitchDisc config – that would be the best means of trouble shooting) Here’s a quick overview of what I’m observing:

  • It looks like the emulator command in your GameEx config is different than the one I’m using. It looks like you’re launching ePSXecutor.exe using a reference to the named profile within ePSXecutor. I’d like to see what happens if you launch the game shortcut directly. I dunno if it will make a difference to the problem, but the one big difference I’m seeing is that it appears you’re launching ePSXecutor differently than I am. I'm currently away from my machine, or I'd post my own runitgame.bat for comparison.

  • It looks like GameEx is sending a different working path to SwitchDisc than the one that’s configured in GameEx. From the perspective of SwitchDisc this is relatively minor, but it does stand out as something of a discrepancy.

I still have a relatively high degree of confidence that we can get you going. If you don’t mind posting your GameEx emulator config for ePSXecutor (i.e. the one that you export from the setup wizard) and your SwitchDisc config I’m fairly sure I can put you on the right track (I may need to verify a couple of file locations with you).

If it makes you feel any better I myself have struggled with Launch Before and Launch After parameters on a couple of different occasions (and once even specifically with ePSXe). It can definitely be frustrating, but it’s not insurmountable.

The problem is that it doesn't automatically enable your controller profile upon discovery of the controller. My DS3Tool only needs to be run once to enable the profile, then it is go untill reboot. The reason I can't just place it in the startup folder is that the controller has to connect tho the computer first, then the tool has to run. So, I need to have it run before the emulator, unless there is a way to tell the computer to autorun the DS3Tool upon discovery of this controller.

Ah, I see. Sounds cool then. Hey, it’s auxillary to the task at hand, but you might consider running the DS3Tool when GameEx itself starts up. It would be one less thing to worry about in terms of this specific emulator config, and then your controller would be good to go for any emulator you choose to run during your GameEx session. Just a thought. Check out the Tweaks / Performance screen in the Setup Wizard if you’re interested. On that screen you’ll find an entry for Launch On Startup (alternatively you might want to take a look at Launch On Startup Don’t Wait depending on whether GameEx waits for the DS3Tool to complete, which would obviously pose a problem)

Null:

I knoticed you're running SwitchDisc from visual studio projects. Is what you're running exactly the same as the download? I assume it is, but it might have better compatability on your system if it was created there. I figure you have set it up on another computer (or arcade console ;)) to test switchdisc outside it's "cacoon motherboard". Not to pass the blame, I'm sure that I have a setting, wrong command, or some kind of ninja gremlin somewhere, especially if others are able to get this working. Just want to make sure the variables between our systems are minamal.

BTW: that is what I'm calling this issue now. The Ninja Gremlin :ph34r: !

This is a very interesting point, and one which I hadn’t considered. I will do as you suggest. I’ll download SwitchDisc from this thread, and double check that it works on the other machine I have running GameEx. I should take this opportunity to mention that both of these machines are running Win 7 64 bit. Early on in SwitchDisc development I was also doing some minor testing on an XP machine, but I haven’t done so in a while (and probably can’t at this point since that machine is my work computer (as in my job) – It’s one thing to have a dev build of SwitchDisc sitting on my work machine, quite another to have GameEx and (possibly) several emulators installed on there :o). I’ll report back with my findings.

Link to comment
Share on other sites

I was also doing some minor testing on an XP machine, but I haven’t done so in a while (and probably can’t at this point since that machine is my work computer (as in my job) – It’s one thing to have a dev build of SwitchDisc sitting on my work machine, quite another to have GameEx and (possibly) several emulators installed on there :o). I’ll report back with my findings.

When we behead this Ninja Gremlin :ph34r: (Samuri Style!) I'll be glad to test it out on my laptop running XP Home. I'd like a mobile GameEx platform anyway.

More launch before/after/also back and forth. This has been beaten to death, so I've included it in spoiler brackets to save space. Skip this if you don't care
This was ment for the casual reader. We've got a hot topic here, just don't want bruse their ears (eyes? :blink:).
It looks like the emulator command in your GameEx config is different than the one I’m using. It looks like you’re launching ePSXecutor.exe using a reference to the named profile within ePSXecutor. I’d like to see what happens if you launch the game shortcut directly. I dunno if it will make a difference to the problem, but the one big difference I’m seeing is that it appears you’re launching ePSXecutor differently than I am. I'm currently away from my machine, or I'd post my own runitgame.bat for comparison.
You're going to have to be more specific. I'm not sure where to find the entery you are talking about. I have GameEx looking at the shortcut folder (both workingpath and rompath), which is in different directory than the ePSXecutor.exe. ePSXecutor.exe is in the ePSXe folders. There are 3 ePSXe folders each with it's own ePSXecutor.exe, so that each version could be setup with game/version specific shortcuts. But the shortcuts them selves are located in a separate directory where both GameEx and switchdisk have their rompaths/workingpaths pointed. The CD path from the runitgame.bat confuses me, because I don't see where it is getting that from. What command line is telling it to change discs in that directory?

For general info purpose, because I don't think I've posted it yet, here is a sample command I am using within ePSXecutor to launch my roms:


-loadbin "E:\Michael\GAMES\My Games\All Games (Files)\PSone\ISO\ePSXe (1.6.0)\Chrono Cross (Disc 1).img" -slowboot -nogui

They all follow that formula.

Really, I've just been trying to get switchdisc running before and after correctly. The other stuff I have tried, but wasen't really worrying about untill that critical part is fugured out. I had been using the ePSXe emulator before. Now I am using the pSX 1.13 in your setup. I was hoping "The "Ninja Gremlin :ph34r:" would dissappear, but it's there too. However, emulator version is one less variable to worry about now.

Here is the info you asked for:

Emulator config: Should be almost exactly the same as your example.


[Emulator]
lastgame=
VideoSnapPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Snaps\Video
BakSnapPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Snaps\Background
CDCheckFile=
CDCheck=False
RandomMostPlayed=False
ShowMostPlayed=False
PlayInScreenSaver=False
GamesIn7Zips=False
PCGame=False
SelectionMusicFolder=
PlaySelectionMusic=False
DontShowInfo=
PlayMusic=False
CustomBackground=
ExcludedFiles=
LaunchAfter=start "" "C:\GameEx\CONFIG\Switchdisc\SwitchDisc-1.0.2\SwitchDisc-1.0.2\SwitchDisc.exe" -q
LaunchBefore=start "" "C:\GameEx\CONFIG\Switchdisc\SwitchDisc-1.0.2\SwitchDisc-1.0.2\SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"
AlsoLaunch=
Debug=False
ShowDesktop=True
RemoveBrackets=True
Capitals=False
ReplaceUnder=True
ReplaceDash=False
SendKeys=
WaitBeforeKeys=
MapKeys=True
WorkingPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXecutor frontend\Game Shortcuts
ControlPanelPath=C:\Assets\Sony Playstation\Controls
ManualPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Manuals
CartPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Cartridge
BoxPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Box Art
TitlePath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Snaps\Title
SnapPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Snaps\Image
RomPath=E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXecutor frontend\Game Shortcuts
MapFile=
ConfigFile=ePSXecutor
Database=[Console] Sony Playstation
RomFilter=*.lnk
Command="[ROMPATH]\[ROMFILE]"
StartPageLogo=Sony Playstation
StartPageName=Sony Playstation
TitleText=Sony Playstation
Info=Sony Playstation Emulator
Website=http://psxemulator.gazaxian.com/
RequiredFiles=scph1001.bin (512kb)
Enabled=False
System=Sony Playstation
Category=Console
Emulator=pSX
Version=1.13
Rating=8.2
DownloadUrl=http://www.gamesdbase.com/setupwizard/emulators/download/pSX.7z

Switchdisc config:


<?xml version="1.0" encoding="utf-8"?>
<SwitchDisc xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:SwitchDisc">
<SwitchDiscVersion i:nil="true" />
<ApplicationSettings>
<SwitchDiscKeys>Tab</SwitchDiscKeys>
<PrevDiscKeys>Left</PrevDiscKeys>
<NextDiscKeys>Right</NextDiscKeys>
<SelectDiscKeys>Enter</SelectDiscKeys>
<CancelKeys>Back</CancelKeys>
<FullScreen>true</FullScreen>
<ScreenNumber>0</ScreenNumber>
<XWinRes>800</XWinRes>
<YWinRes>600</YWinRes>
<NoGUI>false</NoGUI>
<DefaultArtworkPath>E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXecutor frontend\SwitchDisc-1.0.0\SwitchDisc-1.0.0\images\DefaultDiscImg.png</DefaultArtworkPath>
<VirtualDrives i:nil="true" />
</ApplicationSettings>
<Emulators>
<Emulator z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">emu-1</ItemID>
<EmulatorName>ePSCecutor_1.7.0</EmulatorName>
<WorkingPath>E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXe 1.7.0</WorkingPath>
<ArtworkPath>E:\Michael\GAMES\My Games\All Games (Files)\PSone\Artwork\Cartridge</ArtworkPath>
<RomPath>E:\Michael\GAMES\My Games\All Games (Files)\PSone\ePSXe Emulator\ePSXecutor frontend\Game Shortcuts</RomPath>
<RomsInSubDir>false</RomsInSubDir>
<SwitchDiscCmd>'[DISCPATH}\[DISCFILE]"</SwitchDiscCmd>
<KeysBeforeGUI>[MENU, RETURN]</KeysBeforeGUI>
<KeysBeforeSwitch><TASK_KILL></KeysBeforeSwitch>
<KeysAfterSwitch></KeysAfterSwitch>
<UseVirtualDrive>false</UseVirtualDrive>
<VirtualDrive i:nil="true" />
<MultiDiscSets>
<MultiDiscSet z:Id="i2">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-2</ItemID>
<Emulator z:Ref="i1" />
<SetName>Chrono Cross</SetName>
<Discs>
<Disc z:Id="i3">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-7</ItemID>
<MultiDiscSet z:Ref="i2" />
<DisplayName>Chrono Cross (Disc 1)</DisplayName>
<FileName>Chrono Cross (Disc 1).LNK</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i4">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-8</ItemID>
<MultiDiscSet z:Ref="i2" />
<DisplayName>Chrono Cross (Disc 2)</DisplayName>
<FileName>Chrono Cross (Disc 2).LNK</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
<MultiDiscSet z:Id="i5">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-0</ItemID>
<Emulator z:Ref="i1" />
<SetName>Final Fantasy 7</SetName>
<Discs>
<Disc z:Id="i6">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-0</ItemID>
<MultiDiscSet z:Ref="i5" />
<DisplayName>Final Fantasy VII (Disc 1)</DisplayName>
<FileName>Final Fantasy VII (Disc 1).LNK</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i7">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-1</ItemID>
<MultiDiscSet z:Ref="i5" />
<DisplayName>Final Fantasy VII (Disc 2)</DisplayName>
<FileName>Final Fantasy VII (Disc 2).LNK</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
<Disc z:Id="i8">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-2</ItemID>
<MultiDiscSet z:Ref="i5" />
<DisplayName>Final Fantasy VII (Disc 3)</DisplayName>
<FileName>Final Fantasy VII (Disc 3).LNK</FileName>
<DiscNumber>3</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
<MultiDiscSet z:Id="i9">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-1</ItemID>
<Emulator z:Ref="i1" />
<SetName>Final Fantasy 8</SetName>
<Discs>
<Disc z:Id="i10">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-3</ItemID>
<MultiDiscSet z:Ref="i9" />
<DisplayName>Final Fantasy VIII (Disc 1)</DisplayName>
<FileName>Final Fantasy VIII (Disc 1).LNK</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i11">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-4</ItemID>
<MultiDiscSet z:Ref="i9" />
<DisplayName>Final Fantasy VIII (Disc 2)</DisplayName>
<FileName>Final Fantasy VIII (Disc 2).LNK</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
<Disc z:Id="i12">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-5</ItemID>
<MultiDiscSet z:Ref="i9" />
<DisplayName>Final Fantasy VIII (Disc 3)</DisplayName>
<FileName>Final Fantasy VIII (Disc 3).LNK</FileName>
<DiscNumber>3</DiscNumber>
</Disc>
<Disc z:Id="i13">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-6</ItemID>
<MultiDiscSet z:Ref="i9" />
<DisplayName>Final Fantasy VIII (Disc 4)</DisplayName>
<FileName>Final Fantasy VIII (Disc 4).LNK</FileName>
<DiscNumber>4</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
<MultiDiscSet z:Id="i14">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-6</ItemID>
<Emulator z:Ref="i1" />
<SetName>Final Fantasy 9</SetName>
<Discs>
<Disc z:Id="i15">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-18</ItemID>
<MultiDiscSet z:Ref="i14" />
<DisplayName>Final Fantasy IX (Disc 1)</DisplayName>
<FileName>Final Fantasy IX (Disc 1).LNK</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i16">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-19</ItemID>
<MultiDiscSet z:Ref="i14" />
<DisplayName>Final Fantasy IX (Disc 2)</DisplayName>
<FileName>Final Fantasy IX (Disc 2).LNK</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
<Disc z:Id="i17">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-20</ItemID>
<MultiDiscSet z:Ref="i14" />
<DisplayName>Final Fantasy IX (Disc 3)</DisplayName>
<FileName>Final Fantasy IX (Disc 3).LNK</FileName>
<DiscNumber>3</DiscNumber>
</Disc>
<Disc z:Id="i18">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-21</ItemID>
<MultiDiscSet z:Ref="i14" />
<DisplayName>Final Fantasy IX (Disc 4)</DisplayName>
<FileName>Final Fantasy IX (Disc 4).LNK</FileName>
<DiscNumber>4</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
<MultiDiscSet z:Id="i19">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-7</ItemID>
<Emulator z:Ref="i1" />
<SetName>Grandia</SetName>
<Discs>
<Disc z:Id="i20">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-22</ItemID>
<MultiDiscSet z:Ref="i19" />
<DisplayName>Grandia (Disc 1)</DisplayName>
<FileName>Grandia (Disc 1).lnk</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i21">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-23</ItemID>
<MultiDiscSet z:Ref="i19" />
<DisplayName>Grandia (Disc 2)</DisplayName>
<FileName>Grandia (Disc 2).lnk</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
<MultiDiscSet z:Id="i22">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-3</ItemID>
<Emulator z:Ref="i1" />
<SetName>Metal Gear Solid</SetName>
<Discs>
<Disc z:Id="i23">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-9</ItemID>
<MultiDiscSet z:Ref="i22" />
<DisplayName>Metal Gear Solid (Disc 1)</DisplayName>
<FileName>Metal Gear Solid (Disc 1).LNK</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i24">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-10</ItemID>
<MultiDiscSet z:Ref="i22" />
<DisplayName>Metal Gear Solid (Disc 2)</DisplayName>
<FileName>Metal Gear Solid (Disc 2).LNK</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
<MultiDiscSet z:Id="i25">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-4</ItemID>
<Emulator z:Ref="i1" />
<SetName>Riven - The Sequel to Myst</SetName>
<Discs>
<Disc z:Id="i26">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-11</ItemID>
<MultiDiscSet z:Ref="i25" />
<DisplayName>Riven (Disc 1)</DisplayName>
<FileName>Riven - The Sequel to Myst (Disc 1).LNK</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i27">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-12</ItemID>
<MultiDiscSet z:Ref="i25" />
<DisplayName>Riven (Disc 2)</DisplayName>
<FileName>Riven - The Sequel to Myst (Disc 2).LNK</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
<Disc z:Id="i28">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-13</ItemID>
<MultiDiscSet z:Ref="i25" />
<DisplayName>Riven (Disc 3)</DisplayName>
<FileName>Riven - The Sequel to Myst (Disc 3).LNK</FileName>
<DiscNumber>3</DiscNumber>
</Disc>
<Disc z:Id="i29">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-14</ItemID>
<MultiDiscSet z:Ref="i25" />
<DisplayName>Riven (Disc 4)</DisplayName>
<FileName>Riven - The Sequel to Myst (Disc 4).LNK</FileName>
<DiscNumber>4</DiscNumber>
</Disc>
<Disc z:Id="i30">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-15</ItemID>
<MultiDiscSet z:Ref="i25" />
<DisplayName>Riven (Disc 5)</DisplayName>
<FileName>Riven - The Sequel to Myst (Disc 5).LNK</FileName>
<DiscNumber>5</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
<MultiDiscSet z:Id="i31">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-5</ItemID>
<Emulator z:Ref="i1" />
<SetName>Star Ocean</SetName>
<Discs>
<Disc z:Id="i32">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-16</ItemID>
<MultiDiscSet z:Ref="i31" />
<DisplayName>Star Ocean (Disc 1)</DisplayName>
<FileName>Star Ocean (Disc 1).LNK</FileName>
<DiscNumber>1</DiscNumber>
</Disc>
<Disc z:Id="i33">
<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-17</ItemID>
<MultiDiscSet z:Ref="i31" />
<DisplayName>Star Ocean (Disc 2)</DisplayName>
<FileName>Star Ocean (Disc 2).LNK</FileName>
<DiscNumber>2</DiscNumber>
</Disc>
</Discs>
</MultiDiscSet>
</MultiDiscSets>
</Emulator>
</Emulators>
</SwitchDisc>

Last thing: Off topic

You said you are running win 7 x64. Are you running NullDc? If so, what version? I can run 1.0.3 but 1.0.4 has a dll error and refuses to load the video plugin. I've installed the C++ runtimes and reinstalled direct x drivers and nothing seems to allow newer versions tor run (the ones with the peruperu controller plugin and better video plugins). The peruperu plugin does not show up in my list of selectable controller plugins even though it is in the plugin folder, I may have copied it from the newer version's folder hoping it would work, but can't remember doing that.

Link to comment
Share on other sites

If it makes you feel any better I myself have struggled with Launch Before and Launch After parameters on a couple of different occasions (and once even specifically with ePSXe). It can definitely be frustrating, but it’s not insurmountable.

Null:

Quick questions:

1) Are you still using the ePSXe settings above? I have not looked into the Daemon Tools and associated commands. What are they and do you think I should use them?

2)Do you think I should try going back to the batch file for the launch before and adding a 5 second timeout, like you did here to give ePSXe a chance to start and the ePSXecutor config a chance to see ePSXe? Maybe this is our Ninja Gremlin :ph34r:?

:: Launch ePSXeCutor using the [ROM] parameter
start "" "E:\Emulation\Emulators\ePSXe v1.70\ePSXeCutor_shark.exe" "%~1"

:: Wait 5 seconds before exiting the batch process.
:: This will buy some time for ePSXe.exe to start up
:: (at which point the advanced config knows it's running)
:: Note that this command only works in Vista and above

timeout 5

Link to comment
Share on other sites

OK I may have made some headway with this issue. I downloaded SwitchDisc from this thread to my alternate PC. I setup a new emulator config for ePSXecutor in GameEx. I copied the Advanced Emulator Config from this post. I made a couple of tweaks to the Switchdisc config seen here. And guess what? Everything launched just fine, but when I exited the emulator my Launch After command did not run as expected (it didn't run at all)!

So I took a couple steps back and I reverted to the Advanced Emulator Config from this post. Then when I exited the emulator ... everything worked! (i.e. the Launch After command worked as expected) :huh: turns out that the experimental changes I made to the Advanced Emulator Config weren't superfluous at all, and in fact they were what enabled full functionality. That was certainly a piece of dumb luck! :o If you haven't done so yet, I'd go ahead and overwrite the ePSXecutor SwitchDisc Advanced Emulator Config with those settings.

Other than that, everything is working as expected.

Here are the details that are fit to print using the config on the secondary machine:

[Console] Sony Playstation (ePSXecutor)

[Emulator]

Enabled=True

lastgame=

VideoSnapPath=E:\Emulation\Assets\Sony_Playstation\ePSXe\Video_MP4

CDCheckFile=

CDCheck=False

RandomMostPlayed=True

ShowMostPlayed=True

PlayInScreenSaver=False

GamesIn7Zips=False

PCGame=False

SelectionMusicFolder=

PlaySelectionMusic=False

DontShowInfo=False

PlayMusic=False

CustomBackground=

ExcludedFiles=

LaunchAfter=start "" "E:\Emulation\Utilities\SwitchDisc-1.0.2\SwitchDisc.exe" -q

LaunchBefore=start "" "E:\Emulation\Utilities\SwitchDisc-1.0.2\SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"

AlsoLaunch=

Debug=False

ShowDesktop=True

RemoveBrackets=True

Capitals=False

ReplaceUnder=True

ReplaceDash=False

SendKeys=

WaitBeforeKeys=

MapKeys=True

WorkingPath=E:\Emulation\Emulators\ePSXe v1.70

ControlPanelPath=E:\Emulation\Assets\Sony_Playstation\ePSXe\Controls\Console_Sony_PSX.png

ManualPath=E:\Emulation\Assets\Sony_Playstation\ePSXe\Manual

CartPath=

BoxPath=E:\Emulation\Assets\Sony_Playstation\ePSXe\Box

TitlePath=E:\Emulation\Assets\Sony_Playstation\ePSXe\Title

SnapPath=E:\Emulation\Assets\Sony_Playstation\ePSXe\Snap

RomPath=E:\Emulation\Emulators\ePSXe v1.70\shortcuts

MapFile=

configFile=[Mapping On] ePSXecutor SwitchDisc (Process Close)

DATABASE=[Console] Sony Playstation

ROMFilter=*.lnk

Command="[ROMPATH]\[ROMFILE]"

StartPageLogo=Sony Playstation

STARTPAGENAME=[Console] Sony Playstation (ePSXecutor)

TITLETEXT=Sony Playstation

UseDbName=True

MusicPath=

TVAdPath=E:\Emulation\Assets\Sony_Playstation\ePSXe\Video_Advert_MP4

CustomArtName1=Print Advert

CustomArtPath1=E:\Emulation\Assets\Sony_Playstation\ePSXe\Advert

imagenotfound=E:\Emulation\Assets\no_img.png

RomsInFolders=False

MergeSets=True

CustomArtName2=Disc

CustomArtPath2=E:\Emulation\Assets\Sony_Playstation\ePSXe\CD

SwitchDisc.xml

<?xml version="1.0" encoding="utf-8"?>

<SwitchDisc xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:SwitchDisc">

<SwitchDiscVersion i:nil="true" />

<ApplicationSettings>

<SwitchDiscKeys>F9</SwitchDiscKeys>

<PrevDiscKeys>Left</PrevDiscKeys>

<NextDiscKeys>Right</NextDiscKeys>

<SelectDiscKeys>Enter</SelectDiscKeys>

<CancelKeys>Back</CancelKeys>

<FullScreen>false</FullScreen>

<ScreenNumber>0</ScreenNumber>

<XWinRes>640</XWinRes>

<YWinRes>480</YWinRes>

<NoGUI>false</NoGUI>

<DefaultArtworkPath></DefaultArtworkPath>

<VirtualDrives i:nil="true" />

</ApplicationSettings>

<Emulators>

<Emulator z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">emu-0</ItemID>

<EmulatorName>ePSXecutor_1.7.0</EmulatorName>

<WorkingPath>E:\Emulation\Emulators\ePSXe v1.70</WorkingPath>

<ArtworkPath>E:\Emulation\Assets\Sony_Playstation\ePSXe\Box</ArtworkPath>

<RomPath>E:\Emulation\Emulators\ePSXe v1.70\shortcuts</RomPath>

<RomsInSubDir>false</RomsInSubDir>

<SwitchDiscCmd>"[DISCPATH]\[DISCFILE]"</SwitchDiscCmd>

<KeysBeforeGUI>[MENU, RETURN]</KeysBeforeGUI>

<KeysBeforeSwitch><TASK_KILL></KeysBeforeSwitch>

<KeysAfterSwitch></KeysAfterSwitch>

<UseVirtualDrive>false</UseVirtualDrive>

<VirtualDrive i:nil="true" />

<MultiDiscSets>

<MultiDiscSet z:Id="i2">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-0</ItemID>

<Emulator z:Ref="i1" />

<SetName>Final Fantasy VII (USA)</SetName>

<Discs>

<Disc z:Id="i3">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-0</ItemID>

<MultiDiscSet z:Ref="i2" />

<DisplayName>Final Fantasy VII (USA) (Disc 1)</DisplayName>

<FileName>Final Fantasy VII (USA) (Disc 1).LNK</FileName>

<DiscNumber>1</DiscNumber>

</Disc>

<Disc z:Id="i4">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-1</ItemID>

<MultiDiscSet z:Ref="i2" />

<DisplayName>Final Fantasy VII (USA) (Disc 2)</DisplayName>

<FileName>Final Fantasy VII (USA) (Disc 2).LNK</FileName>

<DiscNumber>2</DiscNumber>

</Disc>

<Disc z:Id="i5">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-2</ItemID>

<MultiDiscSet z:Ref="i2" />

<DisplayName>Final Fantasy VII (USA) (Disc 3)</DisplayName>

<FileName>Final Fantasy VII (USA) (Disc 3).LNK</FileName>

<DiscNumber>3</DiscNumber>

</Disc>

</Discs>

</MultiDiscSet>

</MultiDiscSets>

</Emulator>

</Emulators>

</SwitchDisc>

Advanced Emulator Config

[Mapping On] ePSXecutor SwitchDisc (Process Close)

# This is an advanced emulator configuration file. It does things such as allow keyboard only emulators to be operated by a gamepad, wait for additional processes to exit and map keys. If this file is used it overrides the MAPKeys setting for the emulator.

[GENERAL]

# Enabled. Use this.

Enabled=True

#Make MCE Back button and X-ARCADE Escape and SlikStik Escape to close emulator process

MapBack=True

#Make Escape key close emulator process

MapEscape=True

#When exiting an emulator via the above mappings, you can specify keys in the send keys format to send instead of having GameEx close the process to cleanly exit the emulator. Such as the Q Key or ALT F4 which is %{F4}

KeysToSendOnExit={ESC}

#Wait for keys to be processed by the emulator

EmuWaitForKeys=True

#Additional processes to wait to exit or close on exit. Dont include the .exe. Leave blank not to use.

Process1=ePSXe

Process2=SwitchDisc

Process3=

Process4=

[JOYMAPPING]

# For mapping a GamePad to keys

# Specify a virtual key code to send when the specific joystick control is pressed. Look at vkcodes.htm for codes.

JoymappingEnabled=False

Left=

up=

Right=

Down=

Button1=

Button2=

Button3=

Button4=

Button5=

Button6=

Button7=

Button8=

Button9=

Button10=

Button11=

Button12=

Button13=

Button14=

Button15=

Button16=

[GAMEPADEXIT]

#MAP Gamepad controls to exit and make controls exit process

MapGamePadExit=True

#Flag the controls that exit a game by placing True next to each control. To not use the control as part of the combination use a 0

Left=True

Down=

Right=

Up=True

Button1=

Button2=

Button3=

Button4=True

Button5=True

Button6=True

Button7=

Button8=

Button9=

Button10=

Button11=

Button12=

Button13=

Button14=

Button15=

Button16=

[MOUSEMAPPING]

# For registered users, the ability to control the mouse with a gamepad and/or directional keys.

# For example for PC strategy games.

# Apparantly this functionality is similar to the software Pinnacle profiler. Remember you can setup an emulator

# as one PC game. Specify enabled, and mousespeed 0-20. 20 Being fastest. This setting overrides the directional

# mapping for the above and buttons 1 and 2 Button 1/CTRL becomes left mouse. Button 2/ALT Right mouse

MouseMappingEnabled=False

MouseSpeed=0

[bLOCKKEYS]

# Use this section to disable and block key presses and mouse clicks.

# To disable the mouse clicks use code 1 for left mouse button,

# 2 for right button and 4 for middle button

Enabled=False

BlockKey_1=1

BlockKey_2=2

BlockKey_3=4

BlockKey_4=

BlockKey_5=

[KEYBOARDREMAP]

# Remap Keys for the emulator. Specify from the from key, which is the key you wish to replace the to key

# This should be good enough for real time gaming. Registered version feature. Look at VKCodes.htm for codes.

Enabled=False

Remap_1_From_VK=

Remap_1_To_VK=

Remap_2_From_VK=

Remap_2_To_VK=

Remap_3_From_VK=

Remap_3_To_VK=

Remap_4_From_VK=

Remap_4_To_VK=

Remap_5_From_VK=

Remap_5_To_VK=

Remap_6_From_VK=

Remap_6_To_VK=

Remap_7_From_VK=

Remap_7_To_VK=

Remap_8_From_VK=

Remap_8_To_VK=

Remap_9_From_VK=

Remap_9_To_VK=

Remap_10_From_VK=

Remap_10_To_VK=

Remap_11_From_VK=

Remap_11_To_VK=

Remap_12_From_VK=

Remap_12_To_VK=

Remap_13_From_VK=

Remap_13_To_VK=

Remap_14_From_VK=

Remap_14_To_VK=

Remap_15_From_VK=

Remap_15_To_VK=

Remap_16_From_VK=

Remap_16_To_VK=

Remap_17_From_VK=

Remap_17_To_VK=

Remap_18_From_VK=

Remap_18_To_VK=

Remap_19_From_VK=

Remap_19_To_VK=

Remap_20_From_VK=

Remap_20_To_VK=

Remap_21_From_VK=

Remap_21_To_VK=

Remap_22_From_VK=

Remap_22_To_VK=

Remap_23_From_VK=

Remap_23_To_VK=

Remap_24_From_VK=

Remap_24_To_VK=

Remap_25_From_VK=

Remap_25_To_VK=

Remap_26_From_VK=

Remap_26_To_VK=

Remap_27_From_VK=

Remap_27_To_VK=

Remap_28_From_VK=

Remap_28_To_VK=

Remap_29_From_VK=

Remap_29_To_VK=

Remap_30_From_VK=

Remap_30_To_VK=

Remap_31_From_VK=

Remap_31_To_VK=

Remap_32_From_VK=

Remap_32_To_VK=

runitgame.bat

chcp 65001

E:

CD "E:\Emulation\Emulators\ePSXe v1.70"

start "" "E:\Emulation\Utilities\SwitchDisc-1.0.2\SwitchDisc.exe" -w "E:\Emulation\Emulators\ePSXe v1.70" -f "Final Fantasy VII (USA) (Disc 1).LNK"

"E:\Emulation\Emulators\ePSXe v1.70\ePSXeCutor.exe" "Final Fantasy VII (USA) (Disc 1)"

start "" "E:\Emulation\Utilities\SwitchDisc-1.0.2\SwitchDisc.exe" -q

Regarding the runitgame.bat, my previous statement about the emulator command was wrong. Looks like the ePSXecutor game shortcuts do launch ePSXecutor using a reference to the internal game config. Sorry I hadn't realized that before!

Any hoo, I'd definitely recommend updating your Advanced Emulator config if you haven't done so. There's a slight discrepancy in the way we've got directory paths configured too. I've got my ePSXecutor shortcuts stored in a separate directory that ePSXe and ePSXecutor


WorkingPath=E:\Emulation\Emulators\ePSXe v1.70
RomPath=E:\Emulation\Emulators\ePSXe v1.70\shortcuts

I think you mentioned that your shortcuts are in the same directory as ePSXe.exe and ePSXecutor.exe, but maybe you should try separating them into separate diectories? Then point your Working Path at the directory containing ePSXe.exe and ePSXecutor.exe and point your ROM directory at the directory containing the shortcuts. Our SwitchDisc commands are identical so I really think you should be good to go there.

There's one other thing that's likely going to trip you up (when you get so far as changing discs):


<SwitchDiscCmd>'[DISCPATH}\[DISCFILE]"</SwitchDiscCmd>

You'll want to change that command so it's completely encloses in double-quotes (the first one is a single quote).

Null:

Quick questions:

1) Are you still using the ePSXe settings above? I have not looked into the Daemon Tools and associated commands. What are they and do you think I should use them?

Heh, well that's stepping back into history. It was that experience that planted the first seeds for SwitchDisc. Those disc combining kits were a great idea, but in execution they were often buggy, so it was back to the old drawing board. Those settings should still work fine for running 'vanilla' ePSXe from a virtual drive though. But no that's not what I'm doing currently. Especially for the purposes of this config I'm using -loadbin. I do endorse running disc based emulators from a virtual drive where applicable, but it adds a additional layer of complexity, and for now I'd like to avoid additional complexity. ;)

2)Do you think I should try going back to the batch file for the launch before and adding a 5 second timeout, like you did here to give ePSXe a chance to start and the ePSXecutor config a chance to see ePSXe? Maybe this is our Ninja Gremlin :ph34r:?

:: Launch ePSXeCutor using the [ROM] parameter
start "" "E:\Emulation\Emulators\ePSXe v1.70\ePSXeCutor_shark.exe" "%~1"

:: Wait 5 seconds before exiting the batch process.
:: This will buy some time for ePSXe.exe to start up
:: (at which point the advanced config knows it's running)
:: Note that this command only works in Vista and above

timeout 5

This is a very good question. I'd give it a shot, and see how it goes! It does involve bringing a batch file back into the picture, but if ePSXe and SwitchDisc are taking a while to load it could certainly cause the issue you're experiencing. Note that the timeout command only works on Vista and above.

Believe it or not I don't have nullDC configured on any of my machines at the current time. When I have some spare time, I'll take a look and see if I can get it working.

Link to comment
Share on other sites

It did not work for me. The runitgame.bat looks the same as it does above and there is no indication switchdisc is loading (or is closing imediatly) other than that runitgame.bat. ***EDIT*** Scratch that. Actually it runs correctly sometimes, and not other times. Basicly with the current settings it is closer than I've been before. But it is super buggy. If I close switchdisc and try again, it will run again, and be closed imediatly, or work fine, or not laod, etc. I changed my tray settings to show it always if it is running, making it easier to know if if loads before being closed.

I removed the start "" from the before command and switchdisc runs, but the game fais to appear. So I tried openiong switchdisc and selecting the game and it returned this: "A 32 bit process can not access modules of a 64 bit system". After choosing ok the game launched, presumably because GameEx was waiting for switchdisc to end first. I switched the order of watch ePSXe and switchdisc to see if that made a difference, and this is what happened.

Timeout idea didn't work either. Is there a grounding or spanking command? This demon child needs discipline! It's worth noting that the batch kept running in the backround even after the 5 seconds. Then it tried another command and failed, said something like "not enough sotrage to complete operation" or the like.

FEATURE REQUEST:

I have an idea! Can you make a key press to command maper in switchdisc? If we could map a combination of key presses to send the -q quit comand to close Switchdisc, then all we need to do is tell the emulator to send the keys after. Basically, switchdisc would wait for a preconfigured set of key presses, and when they are pressed it would exit. That way we don't have to worry about the after command being buggy. We know we can get switchdisc running correctly from just the before command, just not when the after is used also. I wonder if this woulden't be a more reliable way to end switchdisc after the game exits, which is all we are trying to do, right? This shoulden't mees with the commands passed to switchdisc from the before command. The only question is if it would be a problem when switchdisc trys to switch the disc, the emulator might closes it before it has a chance to load the next disc, unless you told switchdisc to ignore the command during this process? I don't know, you tell me if this could work.

Link to comment
Share on other sites

You know man, after I reported successful operation, I experienced something similar to you (well mostly similar). I never had it where SwitchDisc hasn't loaded at all, but I did have a situation in which SwitchDisc didn't close. It was too late in the evening to do more extensive testing, but I'll have some time tonight. I'm honestly not sure whether it's a problem with SwitchDisc or GameEx, but it definitely sucks. I'm leaning more towards it being an issue with GameEx since I've never had the SwitchDisc.exe -q command fail while I was running SwitchDisc outside of GameEx. Furthermore, if SwitchDisc continues to run without closing, it should prevent GameEx from returning to focus since we've explicitly configured it not to return focus to GameEx until it stops running (via the advanced config). Maybe it's the advanced config that's the issue, but if so I can't see where the problem might be.

As a joke, I was going to call this release of SwitchDisc the Infernal Build, since well, check out the size of the download. Turns out that moniker may not have been all that far off.

I like your idea for a feature request. I will definitely consider adding that feature. I would make the exit keys configurable to the user so they could enter their own exit key (or combination of keys). It would be a great idea to disable the exit keys during a disc swap operation, so that one didn't inadvertently exit a game during that operation. The only issue here would be integrating the feature (cleanly) with GameEx. GameEx has a send keys feature, but it executes before the emulator loads, not after. That would leave the possibility of running an external AutoHotKey (or equivalent) script as your Launch After command in GameEx in order to kill SD. One of my mantras during development of SD has been ".NET or bust" (mainly as i was looking to expand my skill set), meaning that I don't really want to include a spaghetti code blend of .NET, AHK, AutoIt, whatever, with the release of SwitchDisc. Accordingly I could write up a really simple "SwithDisc Killer" module (this would be a separate executable included with SwitchDisc). This module could consist of a single configurable choice: Send Keys (which would simply send the Exit key(s)) or send a Taskill command to SD. It does feel like a workaround, but I guess if the shoe fits ...

Hey, one other thing ... you've been awesome about testing SD, and I can't thank you enough for that, but I also am worried this is beginning to impede upon your enjoyment of GameEx and emulation in general. I'd hate for my crappy program to have that effect on anyone. I should take this opportunity to point out an alternative to SwitchDisc which is MuDiGUI (sort of the spiritual ancestor of SwitchDisc). I dunno, I've never used it, but it might offer up some better results for you (I don't think it looks better than SD if I may be so bold, but if it works better it may be a better choice in terms of general gaming). I dunno, I'm just tossing it out as an option.

Link to comment
Share on other sites

Yeah, your right. There is no send keys after option (possable freature request?). That would have made that idea much easier to implement. I wish there was a way to edit the order of operations in the emulator config or generally debug that process, short of diging around in the source code, assuming it has been released.

Can you create a watch this program line, and a couple of lines below it that would be like the launch after/also commands?

I'll check out the other program, but am having fun testing your program. I'm not ready to give up on switchdisc yet. I still have some ideas to get around this, and make it more user friendly.

PS:

666 in biblical terms, often referred to as "the mark of the beast," is simply 1 less than 7. 7 being the number denoting perfection (kinda like how we rate hot girls nowadays on a scale of 1-10. Jesus was a 7, so to speak). Therfore 666 means to fall short of perfection,.and repeated 3 time for emphasis, because we all sin. This is a common pattern found in the bible and is ment to remind us of our imperfection. Interesting how simple things get blown out of perportion with time, isn't it? That's also why 7 is considered a lucky number. I love random factoids, I even have a book called "the extraordinary origins of everyday things". The story of modern day christmas is a good read. Ok, bible school over.

Link to comment
Share on other sites

The links to the MUDIGUI download seem to be broken or not available anymore, except in the last post. I downloaded that but there is no .exe application. There is file called "MuDiGUI_0_92.au3". Do I need another app to run this or what? I followed the other instructions, but can't set up GameEx untill there is an executable.

Link to comment
Share on other sites

Here's a brief tutorial on running AutoIt scripts. Long story short you'll probably need to install AutoIt. It's a pretty great suite of tools, so it's not a bad idea at all. As I mentioned, I've never used MuDiGUI, but the instructions at least seem to be fairly straight forward (and it's certainly a novel approach to the problem of changing discs.)

Tonight I was simply burned out on screwing around with ePSXecutor, so I put together a SwitchDisc config for pSX. Seems to work just fine. It's a lot more straight forward in terms of GameEx integration since you don't have to worry about an Advanced Emulator Config. pSX has an integrated means of changing discs during game play, so you don't need to completely restart the emulator. SwitchDisc can easily leverage that integrated support. Here's the config. No commands here, it's all about the send keys:

pSX v1.13 SwitchDisc Config:

<?xml version="1.0" encoding="utf-8"?>

<SwitchDisc xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:SwitchDisc">

<SwitchDiscVersion i:nil="true" />

<ApplicationSettings>

<SwitchDiscKeys>F9</SwitchDiscKeys>

<PrevDiscKeys>Left</PrevDiscKeys>

<NextDiscKeys>Right</NextDiscKeys>

<SelectDiscKeys>Enter</SelectDiscKeys>

<CancelKeys>Back</CancelKeys>

<FullScreen>false</FullScreen>

<ScreenNumber>0</ScreenNumber>

<XWinRes>640</XWinRes>

<YWinRes>480</YWinRes>

<NoGUI>false</NoGUI>

<DefaultArtworkPath></DefaultArtworkPath>

<VirtualDrives i:nil="true" />

</ApplicationSettings>

<Emulators>

<Emulator z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">emu-1</ItemID>

<EmulatorName>pSX_v1.13</EmulatorName>

<WorkingPath>E:\Emulation\Emulators\pSX v1.13</WorkingPath>

<ArtworkPath>E:\Emulation\Assets\Sony_Playstation\Box</ArtworkPath>

<RomPath>E:\Emulation\Roms\Sony_PlayStation[RE]\pSX</RomPath>

<RomsInSubDir>true</RomsInSubDir>

<SwitchDiscCmd></SwitchDiscCmd>

<KeysBeforeGUI>[MENU, RETURN]</KeysBeforeGUI>

<KeysBeforeSwitch>[MENU, VK_F], RETURN, <OPEN_FILE>, [MENU, VK_F], DOWN, DOWN, DOWN, RETURN</KeysBeforeSwitch>

<KeysAfterSwitch>[MENU, RETURN]</KeysAfterSwitch>

<UseVirtualDrive>false</UseVirtualDrive>

<VirtualDrive i:nil="true" />

<MultiDiscSets>

<MultiDiscSet z:Id="i2">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">set-1</ItemID>

<Emulator z:Ref="i1" />

<SetName>Final Fantasy VII (USA)</SetName>

<Discs>

<Disc z:Id="i3">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-3</ItemID>

<MultiDiscSet z:Ref="i2" />

<DisplayName>Final Fantasy VII (USA) (Disc 1)</DisplayName>

<FileName>Final Fantasy VII (USA) (Disc 1).cue</FileName>

<DiscNumber>1</DiscNumber>

</Disc>

<Disc z:Id="i4">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-4</ItemID>

<MultiDiscSet z:Ref="i2" />

<DisplayName>Final Fantasy VII (USA) (Disc 2)</DisplayName>

<FileName>Final Fantasy VII (USA) (Disc 2).cue</FileName>

<DiscNumber>2</DiscNumber>

</Disc>

<Disc z:Id="i5">

<ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-5</ItemID>

<MultiDiscSet z:Ref="i2" />

<DisplayName>Final Fantasy VII (USA) (Disc 3)</DisplayName>

<FileName>Final Fantasy VII (USA) (Disc 3).cue</FileName>

<DiscNumber>3</DiscNumber>

</Disc>

</Discs>

</MultiDiscSet>

</MultiDiscSets>

</Emulator>

</Emulators>

</SwitchDisc>

You'll note that I'm also storing disc images in sub-directories here. That part is optional, but it sure keeps your directories cleaner! Here's the GameEx config I'm using to accompany the above SwitchDisc config:

[Console] Sony Playstation (pSX)

[Emulator]

Enabled=True

System=Sony Playstation

Category=Console

Emulator=pSX

Version=1.13

Rating=8.2

DownloadUrl=http://www.gamesdbase.com/setupwizard/emulators/download/pSX.7z

RequiredFiles=scph1001.bin (512kb)

Website=http://psxemulator.gazaxian.com/

Info=Sony Playstation Emulator

TitleText=Sony Playstation

StartPageName=[Console] Sony Playstation (pSX)

StartPageLogo=Sony Playstation

Command=psxfin.exe -f "[ROMPATH]\[ROMFILE]"

RomFilter=*.cue

Database=[Console] Sony Playstation

ConfigFile=[Mapping Off] Exit (Process Close)

MapFile=

RomPath=E:\Emulation\Roms\Sony_PlayStation[RE]\pSX

SnapPath=E:\Emulation\Assets\Sony_Playstation\Snap

TitlePath=E:\Emulation\Assets\Sony_Playstation\Title

BoxPath=E:\Emulation\Assets\Sony_Playstation\Box

CartPath=

ManualPath=E:\Emulation\Assets\Sony_Playstation\Manual

ControlPanelPath=E:\Emulation\Assets\Sony_Playstation\Controls\Console_Sony_PSX.png

WorkingPath=E:\Emulation\Emulators\pSX v1.13

MapKeys=True

WaitBeforeKeys=

SendKeys=

ReplaceDash=False

ReplaceUnder=True

Capitals=False

RemoveBrackets=True

ShowDesktop=True

Debug=False

AlsoLaunch=

LaunchBefore=start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"

LaunchAfter=start "" "E:\Visual_Studio_2010\Projects\Build\SwitchDisc\SwitchDisc.exe" -q

ExcludedFiles=

CustomBackground=

PlayMusic=False

DontShowInfo=

PlaySelectionMusic=False

SelectionMusicFolder=

PCGame=False

GamesIn7Zips=False

PlayInScreenSaver=False

ShowMostPlayed=True

RandomMostPlayed=True

CDCheck=False

CDCheckFile=

lastgame=

VideoSnapPath=E:\Emulation\Assets\Sony_Playstation\Video_MP4

UseDbName=True

imagenotfound=E:\Emulation\Assets\no_img.png

TVAdPath=E:\Emulation\Assets\Sony_Playstation\Video_Advert_MP4

MergeSets=True

CustomArtName1=Print Advert

CustomArtPath1=E:\Emulation\Assets\Sony_Playstation\Advert

CustomArtName2=Disc

CustomArtPath2=E:\Emulation\Assets\Sony_Playstation\CD

RomsInFolders=True

The above seems to be working like a champ for me (so far anyway).

Link to comment
Share on other sites

A new build is available in the first post of the thread. This release includes the following changes:

1.0.3

  • Critical Fix: Send Key Strings were not parsing correctly under some circumstances. All Send Key Strings will parse correctly now.
  • Improved clipboard behavior
  • SwitchDisc Configurator: Improved navigation within the tree view. You can now navigate using arrow keys and select a module using the Enter key.

Thanks for checking out SwitchDisc! :D

  • Like 1
Link to comment
Share on other sites

So I just had an epiphany (hey, drinking before noon tends to have that effect :o j/k). I think I know why Launch After fails to run for ePSXecutor. Check out this order of events:

  • GameEx starts ePSXecutor (via a shortcut)
  • ePSXecutor starts ePSXe and subsequently exits
  • GameEx knows nothing about what ePSXecutor does (nor does it care), In fact GameEx would take back focus right then and there, if not for the advanced emulator config. For all GameEx knows ePSXecutor is the emulator (and it's not running anymore). So if GameEx thinks ePSXecutor is the emulator, and that "emulator" is no longer running, how does it know when to run a Launch After command? Answer: I suspect it doesn't.

I don't think this behavior is relegated to SwitchDisc. I think GameEx will have difficulty running any Launch After command for this configuration. In order for GameEx to run a Launch After command for ePSXecutor, it's going to need to run ePSXecutor through some sort of wrapper. Perhaps that's my next little project. ;)

p.s. Sorry about triple posting, but I figure each one was dedicated to a distinctly different train of thought. :rolleyes:

Link to comment
Share on other sites

So, at this point do we call it?

Time of death = 4:03 PST, Wed. /Oct. 24/ 2012.

Subject's name (First, middle, last)= ePSXecutor, Switch disc, Compatability.

Cause of death = GameEx order of operations failure.

Attending Programmer = nullPointer

May it's code rest intact. We will hope for the day when we will be reunited with it (when it is resurected by the supreme wrapper, which is both the alpha and beta).

All kidding aside, why would that matter? The first watched entery in the ini is ePSXe. Shoulden't gameEx not care about ePSXecutor and just wait untill ePSXe ends? It shoulden't matter what launches ePSXe as long as we tell GameEx to watch what is being launched not what is launching it, right? So what would happen if we added ePSXecutor to the watched list?

Link to comment
Share on other sites

So by reading this, is it safe to assume you're not adding ePSXecutor to the "also watch" list in the Advanced Emulator Config? Or did I chime in late with worthless information? ;)

Link to comment
Share on other sites

No it's definitely not worthless information, and I was hoping someone else might chime in as well. Perhaps greater minds will prevail! Currently the also watch list contains the following

  • ePSXe - since ePSXecutor launches ePSXe and exits
  • SwitchDisc - since if you change discs in ePSXecutor you need to restart the emulator (via SwitchDisc)

I would think that ePSXecutor wouldn't need to be on the list since that's what's launched by GameEx (i.e. the "emulator" itself).

Honestly I'm still trying to figure out whether this is a bug (in the way that GameEx handles the advanced emu config), or "works as designed". It all depends on the way GameEx is supposed to handle the advanced emulator config I guess. At this point I'm sort of scratching my head since what I would expect to happen, is not in fact what's happening (thus my hypothesis above).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...