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

[APPLICATION] MuDiGUI - A Multiple-Disc Game Selector / GUI for Playstation


Chesko

Recommended Posts

MuDiGUI - Multiple Disc Graphical User Interface

Update: Version 0.92 Download Here

  • Includes PointerGen.exe. Use this to automatically generate pointer files. See simplified setup below.

Update: Version 0.90a Download Here (Source)

  • Fixed issue where folders containing "disk" instead of "disc" would not be considered a disc folder.
  • Added a note in the .ini stating not to use quotation marks in the path.

Hey guys. I wrote a script / app that I think some of you may get some use out of. Since there's a lot of info's to convey, I'll put it all down FAQ-style.

FAQ

1. What is MuDiGUI? What does it do?

Basically, I love GameEx (Thank You TSpeirs!). But GameEx doesn't have a mechanism (so far as I can tell) to gracefully handle multi-disc games for systems like Playstation, at least without having a keyboard and mouse on hand. I wanted something that would let me automate that kind of behavior only using my remote control or my gamepad, plus give me access to some useful emulator functions.

MuDiGUI Features:

  • Will clean up your game list in GameEx (no more entries for each disc! A multi-disc game will only appear once)
  • Is operatable with only a remote controller or gamepad
  • Will let you change discs without exiting to GameEx
  • Is compatible with Windows XP, Windows Vista, and Windows 7
  • Is compatible with ePSXe and pSX v1.13 (more functionality / compatibility with pSX)
  • Is compatible with resolutions as low as 1024x768, and scales well to HD widescreen resolutions.
  • Will allow you to configure a default emulator, or make exceptions for certain games

2. How does it work?

Basically, MuDiGUI takes the place of your Playstation emulator. You will point GameEx at MuDiGUI.exe as your emulator instead, in the form of "MuDiGUI.exe [ROM]".

Once you do that, you must create a special folder that contain what I call "pointers". These are blank, extensionless files that are named after your PSX games. Configure this to be GameEx's PSX ROM folder. This is what GameEx will see and display in the game list.

When GameEx launches a Playstation "game", it will launch MuDiGUI which will handle which emulator to use, what exceptions to make, etc.

3. What's it look like?

Here are some screenshots.

eaqui.jpg

a4ZXm.jpg

Glass graphics by allhopeislost. http://allhopeislost.deviantart.com/

CD Icon by Laurent Baumann. http://lbaumann.com/

Images used under the Creative Commons Share-Alike license.

4. Where do I get it?

Right here: http://www.filefront.com/16058471/MuDiGUI_0_90.zip/

5. Is this going to give me a trojan, a virus, or something else nasty?

No.

6. I don't believe you! Give me the source code NAO!

Ok, here you go :)http://www.filefront.com/16058475/MuDiGUI_0_90.au3/ (open with any text editor)

7. What was it written in?

I wrote it in AutoIt v3.6, which is very handy for automating Windows controls, windows, files, etc. I'm not a programmer by trade, so please excuse the very messy looking code if you are so brave as to look at the sourcecode.

8. Will you make a Linux or Mac version?

Since AutoIt is designed specifically to automate Windows, and since I have no desire to rewrite a script solely for someone else's benefit (my HTPC runs Windows XP), no, I will not.

9. Which emulators do you support?

ePSXe and pSX v1.13. Due to the way ePSXe behaves when launched from a command line, mid-game disc changing and emulator resetting is turned off in the Main Menu for this emulator. I'm open to suggestions as to a workaround for this.

10. Will you support Dreamcast, Saturn, etc?

One day "soon". It's on my short list.

11. How many discs can a game have?

The maximum is 5. I believe that record belongs to the PSX version of Riven. I am unaware of any PSX games that have more than 5 discs. If there are, let me know, and I will increase the limit.

12. What kind of disc image files is supported?

There is detection support for MDF, ISO, BIN, and IMG. Other filetypes could be added easily, provided they can be executed from the command line. Let me know if there's a filetype I should be supporting.

Setup

6 (somewhat) Easy Steps

1. First, unzip the zip file into it's own folder anywhere you would keep emulators.

2. Create a blank folder to store your Pointer files in. These are blank, extensionless files that GameEx will see as "games" and will point MuDiGUI to the right folders.

3. Navigate to your ISO directory. Make sure all of your multi-disc games have the structure "root\disc\game.iso". Example:

C:\ISOs\

----\Awesome Game

-----------------\Awesome Game.bin

----\Toilet Revenge 5

---------------------\Toilet Revenge 5 [disc1of2]

-------------------------------------------------\TR5disc1.iso

---------------------\Toilet Revenge 5 (disc 2)

-------------------------------------------------\T-Revenge-5-disc2.iso

Note that a folder containing a disc in a multi-disc game must contain the word "disc" or "disk", or it will be skipped. Single disc game images can be placed directly in the root directory, as is the case above with "Awesome Game".

4. Double-click on PointerGen.exe. Select your ISO directory and the newly created Pointer directory. Click Generate!, and all of your pointers will be generated for you.

5. Open up MuDiGUI.ini. Here, you can setup how MuDiGUI behaves. Most of the sections are self-explanatory. Set up your Main Menu hotkey, your Paths, your defaults, and any exceptions for certain games you might have. For example, "TEHWIZARDFACE,,,1,,,-f" will run TEHWIZARDFACE (a true classic) with emulator 1 (ePSXe) always, no matter what the default emulator is. It will also pass in -f to the emulator as an argument at runtime.

6. Configure GameEx. The emulator should be "MuDiGUI.exe "[ROM]" ", and the ROM directory should point to the folder of Pointers you set up earlier.

That's it! Fire up GameEx.

If the game you seleted is multi-disc, you will be presented with a startup screen allowing you to choose a disc to load. Select one using left and right, and hit Enter or Select with your remote or gamepad.

If the game in question is a single-disc game, it will bypass this initial screen and jump straight to the game.

Bring up the Main Menu any time during play with the hotkey you configured in the .ini file. This will let you change discs and reset the emulator without returning to GameEx (pSX only), as well as let you quit the emulator and return to GameEx without having to have a keyboard around to hit Escape on.

Troubleshooting

1. Help! It doesn't work!

Did you configure your .ini for first use? Until you do, it won't work. MuDiGUI needs to know the paths to your emulators and games. MuDiGUI will work with an ISO path and at least 1 path to an emulator.

2. It still doesn't work!

Double-check your paths. Usually that's where things go wrong.

3. Nope, still not working.

In that case, set up GameEx to run MuDiGUI using this: "MuDiGUI.exe "[ROM]" -d". The -d is the debug flag. When you run MuDiGUI again, you will get a lot of pop up messages (and I mean a lot), stepping you through each step of the script. These messages might give you a clue as to what is wrong.

4. All of the above have failed, and it still doesn't work.

After having followed step 3 and ran MuDiGUI with the -d debug flag, check the Logs folder located in the same directory as the MuDiGUI.exe. Inside should be a log, timestamped. Paste that log file here, or email it to me at [email protected], and I'll see what I can do.

5. How do I map gamepad keys for the Main Menu hotkey?

I am unaware of a way to directly send DirectInput commands via SendKeys. Therefore, I suggest you use something like JoyToKey to map your gamepad's controls to keyboard buttons. Note that the Main Menu hotkey can be any combination of keys, and I suggest you make it something that you would never accidentally hit, such as "d-pad up + select + left trigger". In the .ini, it is by default set to Shift+R.

Hopefully someone out there on the internets gets a little use out of my personal project. Let me know what you think.

Link to comment
Share on other sites

I've always wanted to write an app that manages multi-disc games, like in WinUAE Loader which uses a single key disk swapper.

May I suggest such a method that doesn't require a menu and instead you assign a key that rotates through a bunch of disks. That way you can do everything you need from within the emulator and only having to give up a single key.

Anyway just a suggestion and thanks for your work :)

Link to comment
Share on other sites

May I suggest such a method that doesn't require a menu and instead you assign a key that rotates through a bunch of disks. That way you can do everything you need from within the emulator and only having to give up a single key.

I considered that, but shied away from it, since changing discs is something I wanted the user to commit to and not perform by accident.

That being said, it would be something very easy to add and something I will consider adding a hotkey for. Future plans are to allow save-state saving and loading, and it would be handy to have quick access to those as well.

Maybe you didn't mean it like this, but with the current implementation you don't have to "give up" any keys to use as a hotkey, provided you use a combination. By default it's set to Shift+R. You can still use Shift, and you can still use R independently. Only when they're pressed together does it get caught as a hotkey. You should be able to use any combination of keys you like and not impact usable buttons on your controller.

And thanks for the thanks :)

Link to comment
Share on other sites

Really nice 1st post Chesko! The app looks great, I hope you stay involved in GameEx, and stick around. smile.gif

It shouldn't be too hard to automate creating the pointer files, and even folder structure. If you don't feel up to it , I could do something in AutoHotKey. Unfortunately, I don't know much about Autoit. If you want to work on something together regarding these two things, let me know.

Link to comment
Share on other sites

It shouldn't be too hard to automate creating the pointer files, and even folder structure. If you don't feel up to it , I could do something in AutoHotKey. Unfortunately, I don't know much about Autoit. If you want to work on something together regarding these two things, let me know.

I think I'd be up to it. For this first release I took a strong position of "look, but don't touch (people's iso directory)". Now that i've had time to get AutoIt under my fingers, I'm a lot less fearful of risking screwing up someone's collections :)

The best way I can think of would be to include a "known good list" of PSX games in the code, and attempt to match off of that. If it sees a match, it creates a pointer file in a folder that you specify, and then checks to make sure the folder name matches; if it doesn't change it. If it matches the name + "disc", it's a disc folder, so I would generate a correctly-named root directory and move the disc folders inside it.

...now that I just spelled it out, that doesn't seem nearly so daunting :) I'll try to take a crack at it tonight. A lot of the file searching / matching code used for other parts of the script could be adapted to do this.

I think I'll use wikipedia's list of PSX games to form the list.

Link to comment
Share on other sites

well done sir!

can't wait to get this to work.

in the mean time i keep getting the error

"the disc for the game specified could not be found. make sure that your iso path is set correctly."

as far as i can tell, everything is configured correctly, so i'm not sure what the trouble is. here's some info.

game iso path (as listed in mudigui.cfg)

"C:\GameEx\Roms\Sony Playstation\Roms\" (is the space between sony and playstation possibly the problem)?

Test shortcut target path:

1. C:\GameEx\Tools\MuDiGUI_0_90\MuDiGUI.exe "C:\GameEx\Roms\Sony Playstation\Roms\Pointers\XenoGears (patched).txt" (also tried it without the '.txt'"

2. C:\GameEx\Tools\MuDiGUI_0_90\MuDiGUI.exe "XenoGears (patched)" -d

iso folder structure within "C:\GameEx\Roms\Sony Playstation\Roms"

XenoGears (patched)

----XenoGears (disk 1)

------XenoGears (1of2) [patched].bin

------XenoGears (1of2) [patched].cue

----XenoGears (disk 2)

------Xenogears (2of2) [patched].bin

------XenoGears (2of2) [patched].cue

any help would be greatly appreciated.

edit: i think it might have something to do with the quotation marks. i got rid of them in the config file, and now it's getting far enough to detect my folders, but it's saying that there are no disks in said folders. "non-disc folder: detected a folder that doesn't appear to contain a game disc. continuing."

Link to comment
Share on other sites

can't wait to get this to work.

Change the folder names from "disk" to "disc" and it should work. Also removing the quotation marks.

I will make a note to detect both "disk" and "disc" in the future (even though "disc" in the sense of "compact disc" is the correct spelling) Thank you!

edit: also, leave off the .txt extension. I will make the instructions up top more clear until I get around to making a pointer generator / folder renamer.

edit 2: your 2nd path (C:\GameEx\Tools\MuDiGUI_0_90\MuDiGUI.exe "XenoGears (patched)" -d) is the correct one to use. MuDiGUI looks at the first command line argument and takes that to be the game name. The path to the pointer file is unimportant. And running it the way you currently are via the command line, the pointer file's existance doesn't matter either; it solely exists for GameEx to have something to look at, and a name to pass to MuDiGUI so it can do its thing.

edit 3: I fixed your "disk" issue in the version posted above.

Link to comment
Share on other sites

Change the folder names from "disk" to "disc" and it should work. Also removing the quotation marks.

I will make a note to detect both "disk" and "disc" in the future (even though "disc" in the sense of "compact disc" is the correct spelling) Thank you!

edit: also, leave off the .txt extension. I will make the instructions up top more clear until I get around to making a pointer generator / folder renamer.

edit 2: your 2nd path (C:\GameEx\Tools\MuDiGUI_0_90\MuDiGUI.exe "XenoGears (patched)" -d) is the correct one to use. MuDiGUI looks at the first command line argument and takes that to be the game name. The path to the pointer file is unimportant. And running it the way you currently are via the command line, the pointer file's existance doesn't matter either; it solely exists for GameEx to have something to look at, and a name to pass to MuDiGUI so it can do its thing.

edit 3: I fixed your "disk" issue in the version posted above.

hah! my bad. should have figured it'd be something simple.

Launches just fine now. unfortunately i'm having a new error when attempting to switch disks.

the first game launches just fine, but when i 'shift-R' into the menu and switch the disks, the rom fails to load. pSX shows an error window saying that no rom was present in

'C:\GameEx\Roms\Sony Playstation\oms\XenoGears (patched)'

notice that the capital 'R' is missing from the word roms.

i've double checked the .cfg file (i swear) and the file paths are correct. in fact, it has no trouble launching 'disk 2' as long as i load it up first. both roms load fine, but for some reason switching disks (or discs...sorry) confuses the file path. weird. i'll do some digging tomorrow and see if i can get a better idea of what's going on.

fantastic program though. i'm glad there's a solution to the multi-disc issue.

Link to comment
Share on other sites

version 0.92 is up. Package includes PointerGen.exe, which will take care of the nasty pointer file generation. It will simply read the names of your folders in your ISO directory and create pointers based off of them. You don't have to rename your folders, just make sure they conform to the correct directory structure (root\game.iso for single disc, root\disc\game.iso for multidisc). (Thanks to Tempest for the suggestion)

Link to comment
Share on other sites

  • 1 month later...

Hey. I'm getting an error saying:

"The disc for the game specified could not be found. Make sure that your ISO path is set correctly."

All the paths are set correctly. I've double and triple checked them all. Here's what's in the log file:

LOG BEGIN

INI: Default Emulator: 1

INI: ePSXe Path: C:\Emulators\ePSXe\

INI: pSX Path: PATH\GOES\HERE\

INI: ISO Path: C:\Emulators\ePSXe\ROMs\

INI: ePSXe Defaults: -nogui[-VIRTUALDRIVE-]

INI: pSX Defaults:

The ePSXe path is properly formed and requires no modification.

The pSX path is properly formed and requires no modification.

The ISO path is properly formed and requires no modification.

Version of Windows detected: WIN_XP

Working Directory: C:\Emulators\MuDiGUI 0.92\

EXCEPTIONS: 2

No game exception found on this line. Moving on...

No game exception found on this line. Moving on...

Path to ISOs + game folder: C:\Emulators\ePSXe\ROMs\FF7 CD1

ERROR: $Search returned -1. Search failed. Halting scan.

Now attempting to call the GUI into existance, provided this is a multi-disc game.

Since no disc folders were detected, we assume this is a single-disc game. Skipping the initial Choose a Disc GUI.

Status of $ismulti is: 0

ERROR: The disc for the game specified could not be found. Make sure that your ISO path is set correctly.

It's trying to scan a directory called C:\Emulators\ePSXe\ROMs\FF7 CD1 which doesn't actually exist. I have my Roms as such:

C:\Emulators\ePSXe\ROMs\Final Fantasy VII\Final Fantasy VII [Disc 1]\Final Fantasy VII [Disc 1].iso\.bin

\Final Fantasy VII [Disc 2]\Final Fantasy VII [Disc 1].iso\.bin

\Final Fantasy VII [Disc 3]\Final Fantasy VII [Disc 1].iso\.bin

Thanks in advance for any help you can provide.

Link to comment
Share on other sites

This doesn't support CDZ files does it? I used pSX to compress all my ISOs to that format.

Link to comment
Share on other sites

I apologize for the long silence. I've been positively hammered with stuff lately (working full time and going to school full time is not fun!)

This doesn't support CDZ files does it? I used pSX to compress all my ISOs to that format.

No, but I can easily add that in as long as pSX understands CBZ files in a command line argument (which it should).

It's trying to scan a directory called C:\Emulators\ePSXe\ROMs\FF7 CD1 which doesn't actually exist.

It had to learn it somewhere; sounds like a problem with the name of the pointer you're trying to launch. Are you trying to launch (inside GameEx) "FF7 CD1" or "Final Fantasy VII"? The latter would be correct. Also, the trailing slashes at the end of your .bin file names might be problematic.

I'm going to give this another push next weekend and try to fix some nagging problems brought up here, as well as possibly try to incorporate Sega CD support (for the whole 2 or 3 games that have more than one disc XD )

Link to comment
Share on other sites

It does actually support CDZ from the command line (I run it from GameEx that way already). If you would add that to your script, I would thank you.

If you're up for a suggestion, you could add the box art to the page with the disc selection on it... The user can put the boxart in the CD folder and you could ask AutoIt to look for and display it when the menu comes up. Cool, no? :)

The CDZ thing is all that's holding me back from using this great app... I hate having like 16 Final Fantasy games when it could be way more simplified. :)

Link to comment
Share on other sites

I've been thinking a lot about allowing the loader to display artwork for each disc. That way you can take a look at your disc scans when loading your game.

I've run into a snag using my current implementation of the UI that I don't have the coding kung-fu to fix. (if someone has some Auto-It knowledge, please let me know!) Currently, there are a set of off-screen Windows buttons, one for every element on the UI. When these buttons gain and lose focus, it changes what's highlighted on the UI. For some reason my code isn't catching the loss or gain of focus on certain elements now that I've added new main menu options (such as for switching to a different emulator, loading savestates, etc).

I'm trying to figure out a different way to navigate around the menu system. That's been the primary hangup in terms of finishing this. Memorial Day weekend is coming up, which should make for some prime coding time.

Link to comment
Share on other sites

  • 2 weeks later...

Is there a way to get this to work with ePSXeCutor to allow different configuratations for different games?

EDIT: I finally got it working... sort of. But when i bring the main menu up in game, everything is all jumbled up. and i get this screen:

post-6956-127579534168_thumb.jpg

So the way i see it, is that i cannot switch discs ingame while using ePSXe? Is there any way to get it to work with ePSXe?

Link to comment
Share on other sites

  • 5 months later...
  • 1 month later...

Very interesting project! It's a shame the download links don't work anymore :(

Does someone have the original file? We have added sections for FE support files and applications to the downloads section at emumovies. Things like this would be a great addition. I have spoken to Tom and he is all for it. We offer direct hosting of the files which negates the need for rapidshare type file hosting.

Link to comment
Share on other sites

Does someone have the original file? We have added sections for FE support files and applications to the downloads section at emumovies. Things like this would be a great addition. I have spoken to Tom and he is all for it. We offer direct hosting of the files which negates the need for rapidshare type file hosting.

Thank you for the generous offer! I will reupload the original tomorrow and post here when I do.

I want to make it clear that this app does have some bugs that I did not have time to resolve when I stopped working on this project (navigation sometimes breaks, etc). If I had to do it all over again, I would probably implement this in a different language, like C# or WPF. That being said if there's interest in the project, I will at the very least put together a list of known bugs so that everyone is aware of the limitations.

I will attempt to look at it over this week (i'm on vacation), but I'll be honest, I probably will never have the time to maintain this, and would love if someone(s) could contribute to the project. I will include the source with the upload tomorrow. Chances are, if you can read a scripting language like Tcl or Python, you can read AutoIt.

Link to comment
Share on other sites

Thanks for responding Chesko! I am an autoit scriptor and am willing to help in anyway I can. I'm just not much for using someone elses code and adding to it. So I'll be willing to help you but not willing to take the project over. It's one of those things where I like to start from scratch. LOL. I was very impressed with the project itself however. I never did get a chance to look at your code. Thanks for offering to upload again for those users that are interested in the project.

Link to comment
Share on other sites

  • 1 year later...

I've been trying to get MuDIGUI set up. I downloaded the Autoit app, and conpiled the autoit script into an x64 exe. It does work, but fails to launch the game. It says, "The disc for the game could not be found. Make sure your ISO path is set correctly." That is easier said than done, considering the ISO's are ePSXecutor files. It might not be recognizing them as ISO's when it goes to load them, since they are *.lnk shortcuts.

I was trying to make another program (Switchdisc) work with ePSXecutor, but we are having trouble with the launch after not running at the right time in the order of operations: http://www.gameex.info/forums/topic/11902-release-switchdisc-103/page__st__60

It's been like a year since the last post here, but I'll give it a try.

I do like the way MuDiGUI consoladates the multi disc ISO's so GameEx only displays one entery. Also, I like that it only prompts you to choose a disc when you start a game with multple discs. I would like to change the default disc artwork and background based on the game that is selected. It is open source, so it could be added if someone wanted to take on a project. I'd do it, but I'm inept.

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