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

is the batch file necessary?

if so, is it literally "echo|set/p=%~1|clip" as the only text in the *.bat? It goes in the working path directory, right?

Lastly, what does VK_F & VK_V represent? I'm guessing Control + F, and Control +V, but not sure.

yup

yup,yup

[MENU, VK_F] opens the file menu,[CONTROL, VK_V] = ctrl+v

Link to comment
Share on other sites

Ok It's working beautyfully, Thanks. For reference here are the settings for anyone interested in doing this for Dolphin.

clipboardpaste.bat (put this batchfile in 2 places on your computer. 1-The Switchdisk directory where the configurator and switchdisk.exe are located. and 2-The working directory of Dolphin where dolphin.exe is located.)

 echo|set/p=%~1|clip

In Dolphin I set:

  • Disk change operation = F10 (this can be whatever you want as long as you change it also in the "send keys before" string. See below)

In SwitchDisc's Emulator Configurator set:

  • Send Keys Before = F10, |100|, MENU, |100| (F10 calls the change disk menu in dolphin, change this to whatever key you set it to, and alt, = "MENU", brings the disc change menu to the front. The timings are optimized for speed)
  • Switchdisc command = clipboardpaste.bat "[ROMPATH]\[ROMFILE]"
  • Send Keys After = [CONTROL, VK_V], |100|, RETURN, |100|, [MENU, RETURN], |100|, [MENU, RETURN] (CONTROL, VK_V pastes the romname into the dialog box, Return hits Ok, MENU+RETURN restores down the screen and the second time it restores fullscreen. This is needed because game window is behind the dolphin emulator window. This brings it to the front.)
Link to comment
Share on other sites

this might give people the wrong idea

clipboardpaste.bat = echo|set/p=%~1|clip in the first line

thay know that this is the way it goes or thay might actualy put

clipboardpaste.bat = echo|set/p=%~1|clip

in the bat file so it should be this

clipboardpaste.bat

echo|set/p=%~1|clip
Link to comment
Share on other sites

Actually, there is one more thing I'd like to do.

Problem:

  • I have my Nintendo Wii/Gamecube roms in different folders. Dolphin defaults to the last folder you browsed to when adding locations for it to add to the game list. If that wasen't the folder containing the game your trying to play it can't find the disc your trying to swich to when you paste the Romname into the open file dialog box.
  • Therefore I need to copy the Rompath\Romname into the clipboard. I see that p=%~1 is for the Romname. So what is it for the Rompath and how would the new batch script look?

EDIT:

I tried p=%`f1 to see if that would return the whole filepath\Romname.ext, but it didn't. I'm not sure if I was doing it right because I think that is correct. At least that's waht this says. I don't really know what I'm doing anyway. Maybe I sould try a different switchdisk command? Perhaps somthing like "[ROMPATH]\[ROMNANE]", then the batch file will copy the whole thing? I tried that too, but it didn't work either. I could have all my gamecube and wii games in the same directory and avoid this trouble altogether, but then GameEX will display wii in the gamecube section and visa versa. I could use the filter. but then I'd have to do it game by game since there's no unifying file extension (at least not all my games are *.gcm or *.wbfs, some wii and GC are *.iso). I'd perfer just pasting the whole filepath\name.ext into the open file dialog box. Besides that is a more complete approach anyway, it eliminates problems like this.

Link to comment
Share on other sites

oh sorry here

clipboardpaste.bat "[ROMPATH]\[ROMFILE]"

i had to change mine to this to get the correct folder names because i compress all my multi disk games and use gameex to open them

no change to the bat file

and the commands are

echo -- not sure what this does

set/p= -- set with option p

%~1 -- this is the var you send it

clip -- this directs it to the clipboard

Link to comment
Share on other sites

  • 8 months later...

Hi everybody! First of all, sorry for my english (i'm italian XP). I was looking for an app that allows me to switch disk in Epsxe, then i found this topic. I download and configure this app, but i have some issue... i'm not sure that i configure it in the right way. This is my log

Spoiler

27/05/2016 1.39.28 SwitchDisc logging initialized
27/05/2016 1.39.28 SwitchDisc Version: 1.0.4.0
27/05/2016 1.39.28 Processing SwitchDisc command options...
27/05/2016 1.39.29 Command options parsed successfully:
27/05/2016 1.39.29 DiscID =
27/05/2016 1.39.29 DiscFile =
27/05/2016 1.39.29 EmulatorID =
27/05/2016 1.39.29 WorkingPath =
27/05/2016 1.39.29 ArtPath =
27/05/2016 1.39.29 FullScreen = False
27/05/2016 1.39.29 NoGUI = False
27/05/2016 1.39.29 Exit = False
27/05/2016 1.39.29 Parsing SwitchDisc configuration from file
27/05/2016 1.39.29 Registering SwitchDisc HotKey
27/05/2016 1.39.29 Registering SwitchDisc Interface Keys
27/05/2016 1.39.29 Error:  is not a valid Keys Enum Name. Control Type: CANCEL
27/05/2016 1.39.29 Options do not match the existing configuration. SwitchDisc will attempt to load entire configuration
27/05/2016 1.39.29 Could not determine currently loaded disc
27/05/2016 1.39.29 Overriding NoGUI settings. Initializing to FALSE

 

I use Epsxe ver. 2.0.2

I hope you can halp me to solve my problem...

 

Link to comment
Share on other sites

Hi Raven_Kilit  and Welcome to the forums!

Thanks for giving SwitchDisc a shot.  I have to tell you that it's been quite a while since I've looked at the internals of this app.  Having said that I'd be glad to try and assist.  When you have a moment, would you please post the contents of your SwitchDisc.xml?  It's found in your SwitchDisc directory under config\.  Based on your log it appears that your config is empty or that SwitchDisc was launched without command line params (possibly both).

I'll also put this out there.  I used to be a diehard ePSXe user, but these days for the purposes of PlayStation emulation, I've fully converted to using RetroArch and never looked back.  It's such a solid base for emulation and among other things it offers a really slick in built solution for changing discs directly within the interface.  So even as the author of SwitchDisc I currently use RetroArch for this purpose.  Shameful I know.  :o

Link to comment
Share on other sites

Thanks a lot for the fast answer! no shame, i'm sure that you made a great work with switchdisk, i just have to "understand" it  ;-)

This is my switchdisc.xml

Spoiler
<?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>P</SwitchDiscKeys>
  <PrevDiscKeys>U</PrevDiscKeys>
  <NextDiscKeys>I</NextDiscKeys>
  <SelectDiscKeys>O</SelectDiscKeys>
  <CancelKeys />
  <FullScreen>false</FullScreen>
  <ScreenNumber>0</ScreenNumber>
  <XWinRes>1024</XWinRes>
  <YWinRes>576</YWinRes>
  <NoGUI>false</NoGUI>
  <DefaultArtworkPath />
  <VirtualDrives i:nil="true" />
  </ApplicationSettings>
- <Emulators>
  <ItemID xmlns="http://schemas.datacontract.org/2004/07/">emu-0</ItemID>
  <EmulatorName>ePSXe202-1</EmulatorName>
  <WorkingPath>C:\Documents and Settings\Raven Arcade\Desktop\EMULATORI\PSX\ePSXe202-1</WorkingPath>
  <ArtworkPath />
  <RomPath>C:\Documents and Settings\Raven Arcade\Desktop\GIOCHI\PSX</RomPath>
  <RomsInSubDir>true</RomsInSubDir>
  <SwitchDiscCmd />
  <KeysBeforeGUI><EPSXE_ESCAPE></KeysBeforeGUI>
  <KeysBeforeSwitch />
  <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>Metal Gear</SetName>
- <Discs>
- <Disc z:Id="i3">
  <ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-1</ItemID>
  <MultiDiscSet z:Ref="i2" />
  <DisplayName>Metal Gear Solid (I) (Disc 1) [SLES-01508]</DisplayName>
  <FileName>Metal Gear Solid (I) (Disc 1) [SLES-01508].bin</FileName>
  <DiscNumber>1</DiscNumber>
  </Disc>
- <Disc z:Id="i4">
  <ItemID xmlns="http://schemas.datacontract.org/2004/07/">dsc-2</ItemID>
  <MultiDiscSet z:Ref="i2" />
  <DisplayName>Metal Gear Solid (I) (Disc 2) [SLES-11508]</DisplayName>
  <FileName>Metal Gear Solid (I) (Disc 2) [SLES-11508].bin</FileName>
  <DiscNumber>2</DiscNumber>
  </Disc>
  </Discs>
  </MultiDiscSet>
  </MultiDiscSets>
  </Emulator>
  </Emulators>
  </SwitchDisc>

about the command line, there is a custom command that i have to write for epsxe?

one more question, the problem about the epsxe focus has been solved or not? (again, sorry for my english XD)

Link to comment
Share on other sites

Tutorial: ePSXe & Switchdisc - The ePSXeCutor Method

 

ePSXe & ePSXeCutor Setup:

  1. Download ePSXe (you can find this on your own)
  2. Download ePSXeCutor and place it into the same directory as "ePSXe.exe"
  3. First run and setup ePSXe to confirm the game runs with your plugin settings. Search around the ngemu forums for helpful tips to find the right settings for each game. After confirming the game runs, exit ePSXe and double click the ePSXecutor.exe.
  4. Right-click in the left pane of the window's subdivision and select "New Group". Name this Group "1.6.0" or "1.7.0" and etc. according to the version of ePSXe your game runs best in. Note, ePSXeCutor must be run from within the ePSXe root directory of the version your game runs in. So for each version of ePSXe you have there should be an ePSXecutor.exe and ePSXe.exe in the root ePSXe folder. Create a new game specific configuration by right-clicking the right window and selecting "New". Setup each game according to it's individual best settings on a per game basis. In the "Options" Tab be sure to get the CMD correct. Here is an example command:
    
    -loadbin "E:\Games\Playstation\ePSXe 1.6.0\Final Fantasy IX (USA) (Disc 1) (v1.1).bin" -slowboot -nogui

         It is important that you name the ePSXeCutor configuration exactly the same as your Games filename. In this case it would be "Final Fantasy IX (USA) (Disc 1) (v1.1)". Also, pay attention to the game's filetype (*.bin, *.iso) and make sure you have the right extension in ePSXeCutor's command line for your shortcut. Otherwise it won't work. Note: ePSXeCutor will replace a period (.) with an underscore (_) in the *.LNK file it generates (eg, "Final Fantasy IX (USA) (Disc 1) (v1.1).bin" becomes "Final Fantasy IX (USA) (Disc 1) (v1_1).LNK") So you need to check that your CD art names match exactly the *.LNK and not the romname (this won't matter in most cases, just when a period appears in the romname, such as with versions). Did you notice my "ePSXe 1.6.0" folder in the example command above? I have separate folders for 1.5.2, 1.7.0, and 1.8.0. Each has it's own ePSXecutor.exe next to "ePSXe.exe". I have 4 versions of ePSXe for various games that prefer one version over another. Each ePSXe version needs an "ePSXecutor.exe" and if you want to create a shortcut for a game that uses a specific version, you need to open the "ePSXecutor.exe" from that version's directory, create a New Group, and New configurations for each game which likes that version.

  5. When finished, double click on the config in ePSXeCutor to confirm it launches the game correctly and without errors. If it doesn't, double check the command line. If you're able to launch the game from ePSXe with your settings, then you should be able to from ePSXeCutor too. The only reason you shouldn't is because the command line is not right or your settings are not the same.

  6. When all your games have a working config, right click on each and choose "Create desktop config link". This will create a *.LNK for each of your games and launch each game with your specific settings by simply double clicking on it. Place these in a folder called "Shortcuts" or "Links" or whatever you want, but this folder is where we will point GameEx to look for ROMs ("ROM Path"). So place this folder among your PlayStation emulator directory somewhere handy.

Switchdisc Setup:

  1. Create a Folder named "SwitchDisc" and place it into the "CONFIG" folder of the GameEX root directory (C:\GameEx\CONFIG\Switchdisc).
  2. Download ePSXecutor_wrapper-1.0.1.7z & Extract it using a free unzipping program called 7z (Available Here). Place the extracted file "ePSXecutor_wrapper.exe" into the "SwitchDisc" folder created in step 1.
  3. Download Switchdisc. Right-click on Switchdisc-1.0.4.7z and under 7-Zip choose Extract to "SwitchDisc-1.0.4\". Place the extracted "SwitchDisc-1.0.4" folder next to "ePSXecutor_wrapper.exe" inside the "SwitchDisc" folder created in step 1.
  4. Double click "SwitchDiscConfigurator.exe" to Open the Switchdisc configurator. First press the "General Configuration" button at the bottom and in the "Switch Disk Trigger Key" field put something like F9, but DO NOT USE TAB, ALT, CONTROL, ESC or any other windows system navigation key as they can interfere with the Disc Switch process!
  5. Now Press the "Emulator Configuration" button.and create a new emulator. Name it whatever you like (eg. Playstation). In the "Working Path" field point it at your "SwitchDisc" folder containing "ePSXecutor_wrapper.exe". In the "ROM Path" field point switchdisc at the folder containing the *.LNK game shortcuts you created using ePSXeCutor. If you have CD art, point the "Artwork Path" at the folder containing CD art for your multi-disc games. Be sure that your artwork files match your *.LNK names since ePSXeCutor will replace a period in a romname with an underscore (eg, "Final Fantasy IX (USA) (Disc 1) (v1.1).bin" becomes "Final Fantasy IX (USA) (Disc 1) (v1_1).LNK").  If your CD art name has a period instead of the underscore switchdisk won't display CD art for that title. Finally, in the "Disc Switch Command" put:
    
    ePSXecutor_wrapper.exe --cmd "<QUOTE>[DISCPATH]\[DISCFILE]<QUOTE>"

     

  6. At the bottom press the "Add a New Multi-Disc Set" Button to create a new set and name it according to the Game (eg. Final Fantasy IX). Then Press the "Add Disc" button at the bottom. Use the [...] Navigation button to browse to the shortcut folder you put the *.LNK files in and select the one you made for this disc of the game. For the "Disc Display Name" use anything you like (eg, Final Fantasy IX - Disc 1), this is what will be displayed in Switchdiscs GUI but does't need to follow a naming convention. Choose the correct "Disc Number" in the drop-down list and repeat this process for the additional discs in the set.
  7. Save and Exit Switchdisc.

GameEx Setup:

  1. Download & Install GameEx.
  2. Open the GameEx "Setup Wizard" and choose "Custom". Check the boxes for "Emulator Setup" and "Advanced Emulator Setup"..
  3. In the "Emulator Setup" page select your ePSXe emulator in the drop-down menu.
  4. In the "Working Path" field navigate to the Switchdisc Folder that contains "ePSXecutor_wrapper.exe"
  5. In the "ROM Path" field navigate to the folder you created to contain your *.LNK shortcuts
  6. In the "ROM Filter" field put *.LNK
  7. In the "Command Line" field put:
    
    ePSXecutor_wrapper.exe --cmd "<QUOTE>[ROMPATH]\[ROMFILE]<QUOTE>"

     

  8. Proceed to the "Advanced Emulator Setup" Page
  9. In the "Launch Before" field put:
    
    start "" "C:\GameEx\CONFIG\SwitchDisc\SwitchDisc-1.0.4\SwitchDisc.exe" -w "[WORKINGPATH]" -f "[ROMFILE]"

     

  10. In the "Launch After" field put:
    
    start "" "C:\GameEx\CONFIG\SwitchDisc\SwitchDisc-1.0.4\SwitchDisc.exe" -q

     

  11. In the "Advanced Emulator Config" drop-down select "[Mapping Off] Exit (ESC)"
  12. Exit the wizard

Now if your *.LNK names match your artwork, and your links all work, your GameEx emulator field for ePSXe should display everything as it would for any other emulator and Switchdisc will handle the Disc Swap function exactly as you imagine it should. Good luck and your welcome.

  • Like 1
Link to comment
Share on other sites

  • 10 months later...

I realise this thread is quite old but looks to be a good way to handle games with multiple disc.

In the tutorial above this, I was just wanting to confirm that a .lnk file needs to be made for each disc of the game? Or is a .lnk file made for the first disc and then the other discs in SwitchDisc point to the .bin (for eg) file?

Link to comment
Share on other sites

4 hours ago, whatisk said:

I realise this thread is quite old but looks to be a good way to handle games with multiple disc.

In the tutorial above this, I was just wanting to confirm that a .lnk file needs to be made for each disc of the game? Or is a .lnk file made for the first disc and then the other discs in SwitchDisc point to the .bin (for eg) file?

Yeah, every physical disc will need a separate link made in ePSXeCutor and placed into a shortcuts folder that you will point GameEX to (From GE's point of view, they are the games). So, for example, you will need to make 5x *.LNK shortcuts for the five disc of Riven, 4x for Final Fantasy VIII, and so on. This only applies to ePSXe, switchdisk can be used for other multi-disk systems too, but ePSXe needed the above work around.

Tip: it's very important to think about where you want to keep your ROMs (ISO, BIN, etc.). If ever you want to move them or the ePSXe root folders, you'll have to remake all those shortcuts. If you have a large library of PS1 games, that will take a long time. So get it right the first time.

  • Like 1
Link to comment
Share on other sites

Thanks for the clarification.

So in your game list in GameEx you end up with an entry for each disc is that correct?

Would it still work if you put the disc 2, etc links in a subfolder and pointed to them there when configuring SwitchDisc and the discs for each game? Just wondering if it's possible to keep a 'clean' games list.

Link to comment
Share on other sites

19 minutes ago, whatisk said:

...Would it still work if you put the disc 2, etc links in a subfolder and pointed to them there when configuring SwitchDisc and the discs for each game? Just wondering if it's possible to keep a 'clean' games list.

No, that would be done using "Merge Sets" in the "Advanced Emulator Config" section in GameEX. The main list will just show a list games, then when you enter that game you will choose the disc to start. It originally was designed to keep clones, hacks, and related versions under one listing, but works for this purpose too.

EDIT: to be clear, you want all your *.LNK shortcuts in one folder without subfolders for simplicity. Then use Merge Sets to clean them up. The best way for this to work is to keep the ROM nomenclature (Goodmerge for example). GameEX knows this nomenclature and will correctly map the games into the correct listings (with other cool stuff too, like automatic artwork downloads if you have emumovies, icons, descriptions, and etc.) I used to rename my rom...It was a bad idea.

Link to comment
Share on other sites

Thanks once again!!

Have upgraded my arcade machine PC for the first time in 10+ years. So moving from MAME 0.95 to MAME 0.184 and Mamewah to GameEx. As well as playing around with other emulators obviously. Been a steep learning curve!

Is there something similar to Merge Sets in the MAME config page so that selecting a game will then list the different regions, etc of that game? I had a look but there didn't seem to be one there. Though that is getting a bit off topic for this thread.

Link to comment
Share on other sites

6 minutes ago, whatisk said:

Thanks once again!!

Have upgraded my arcade machine PC for the first time in 10+ years. So moving from MAME 0.95 to MAME 0.184 and Mamewah to GameEx. As well as playing around with other emulators obviously. Been a steep learning curve!

Yeah my rig is down currently and I've been putting off the headache. So I feel yr pain:o

post-10261-0-60866800-1377242939_thumb.jpg

Oh, BTW I put together a MAME tutorial a while back that you may find useful. Kinda basic, but a good refresher. As for CLRMamePro, god that kicked my butt for years until I finally figured it out. Trick with that is to get the official clean copy of mame from the mame dev team and build the database from that exe. I was trying from other builds and it always failed - it drove me bat disease (rabies) crazy.

Link to comment
Share on other sites

Sweet rig!

18 hours ago, whatisk said:

...Yeah, haven't even considered looking at something to clean up the ROMs like that. Just started from scratch.

I assume you mean CMP (ClrMamePro)? Mame requires changes to both Mame itself and Roms, so you have to get rom update packs and use a rom manager like CMP to update your romset to the new version of mame. You can get away with older romsets, since most roms don't change between versions, but the changes pile up over time and the number of unplayable roms increases. This is a useful guide. Good hunting.

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...