Jump to content
LaunchBox Community Forums

Just another Phoenix rom launcher...


Recommended Posts

I don't know if this will be handy for anyone else, but here it is.  Another Phoenix rom launcher.

So, the other week, I came across an impressive emulator for the 3DO & Jaguar called the Phoenix emulator.  After looking for a way to integrate it into LB, I came across @jophran's excellent "ROMLauncherPhoenix" program.  It worked great for injecting the rom path into the Phoenix's config file, then launching and making Phoenix full screen.   In fact, his program is probably a better option for those with uncompressed images or smaller collections.  I decided to go "all-in" with this setup.  But I also decided to update my collection to the entire N. American releases (yeah, I'm a sucker for cheesy 3DO games) and I wanted to compress the images to save space.   

Since Phoenix doesn't work with CHD, I used Phoenix's built-in compression format ".binar" (but I also compressed my bin/cue files to CHD for archiving).   After getting over 170+ compressed 3DO images and 56 Jaguar roms imported into Phoenix, I noticed that Phoenix had an excessive lag time on startup - somewhere between 4 - 5 minutes!  Crap, that's disappointing.... but it got me thinking about how Jophran's script was used to launch Phoenix.  I got the idea that I could cut down on the excessive startup time by replacing all the rom info in Phoenix's config file with only the rom info for the image I was launching.  Wrote it up, tested it, works great, now here it is.  

Here's how it works:

    Setup:
   - First, make sure all 3DO & Jaguar roms have been properly imported into the Phoenix emulator.
         The games don't have to be moved from LB!  But Phoenix has to know where they are (and apparently their fast-md5, md5, & sh1 values).  So import them into Phoenix first.
    - Put this script's executable into the Phoenix emulator directory.
    - Start the "_Phoenix_Rom_Launcher.exe" with no command line options to bring up the Backup Utility window.
    - Use the Backup Utility to create a backup copy of the "full" Phoenix config file.
    - Set Launchbox to use this program as the default emulator for 3DO and/or Jaguar games.  (use the default emulator settings)
 

    Useage:
    - Launch a 3DO/Jaguar game from LaunchBox. (this will cause the Phoenix.config.xml file to be modified!)
    - The program will magically search the backup xml file for that game's info.
    - It will then delete all the previous game info from Phoenix's config file and inject this single game's info.
    - Last, it will launch the Phoenix emulator and make it full screen.

 

As an extra bonus, I included the option to enable a builtin "AutoKey" feature that will close the Phoenix emulator with the [Esc] key (but only as long as Phoenix stays the active window).  This option can be set either in the Backup Utility or in the ini file the program creates on first run.

This program was created with AutoIt, so virus scanners may complain.  I have included the source code for anyone to look over or compile for themselves. 

I've also included a couple of images to explain how to use the program to create the backup file or to restore from it.   It's literally just a copy of the "full" Phoenix config file that gets moved back & forth.   The program comes with no warranties, but I tried to make it as child proof as I can.

Enjoy!  and if you use it, let me know how it goes or if there's any problems.

 

Oh.. as an additional note:  If you want add any new games to your Phoenix 3DO/Jaguar library, you'll need to:
    -  Launch the Backup Utility to restore the original Phoenix.config.xml file using the restore feature.
    -  Import the new games into Phoenix.
    -  Delete the old "_Phoenix_Rom_Launcher.xml" file that's inside the Phoenix program folder.
    -  Launch the Backup Utility to create a new backup file. (This creates the new "_Phoenix_Rom_Launcher.xml" file)
    -  Then use as normal.

 

Backup.png

Restore.png

_Phoenix_Rom_Launcher.au3 _Phoenix_Rom_Launcher.exe

Edited by freeflyer454
added instructions for adding new games to library.
  • Like 4
  • Thanks 2
Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...

Oh.. that part of Phoenix is a bit tricky.  You add them through the top menu:  File -> Add BIOS file to the collection.  

It should show up listed under BIOS. Then you have to double-click the file to select it.  It'll then list the selected file out beside where it says BIOS.    

 

1357133053_BIOSselected.JPG.db2f70e172e08b0d65bdc3fefe5dc2d9.JPG

Link to comment
Share on other sites

Looks like the paths to the cartridges are wrong in LaunchBox.   That image above was from LaunchBox saying it can't find the rom file.  So look at what the rom paths are in LaunchBox. 

Also, once LaunchBox is setup to use the Phoenix_Rom_Launcher.exe, when you launch a game, the rom launcher (once it sees the backup file exists), should delete all the rom entries inside the "phoenix config.xml" file and replace it with only the rom path that LaunchBox passes to it.  The image you posted shows that both files contain their full number of entries - so it wasn't the Rom Launcher that was trying to launch the game.  

Hope that helps

Link to comment
Share on other sites

That helps.

I'm totally dumb... My Jaguar roms were in *.7z format. But now that I use Phoenix, i've decompressed to *.j64 format....and i forgot to refresh my collection in Launchbox (games point always to *.7z format) !

 

Thanks for your replie,

And good job again for your script :)

 

 

 

Link to comment
Share on other sites

  • 1 month later...

Hello! 

I am getting error line 2111 in launchbox. Like the other guy that had that error and fixed it, I deleted everything, reinstalled the emulators, reimported all the roms and the bios, and added all of that in Phoenix. After that I launched your program and it detected my jag games, ticked hotkey and pressed backup. Then I relaunched your program and pressed restore and it worked the same way as shown in your attached images. 

After all that I took a game in LB, and edited so that the emulator is your program (_Phoenix_Rom_Launcher.exe). And I still got the same error message. 

What am I doing wrong? BTW the emulator itself works great.

Thanks for the help and for all of this!!

Link to comment
Share on other sites

9 hours ago, Unholy said:

Hello! 

I am getting error line 2111 in launchbox. Like the other guy that had that error and fixed it, I deleted everything, reinstalled the emulators, reimported all the roms and the bios, and added all of that in Phoenix. After that I launched your program and it detected my jag games, ticked hotkey and pressed backup. Then I relaunched your program and pressed restore and it worked the same way as shown in your attached images. 

After all that I took a game in LB, and edited so that the emulator is your program (_Phoenix_Rom_Launcher.exe). And I still got the same error message. 

What am I doing wrong? BTW the emulator itself works great.

Thanks for the help and for all of this!!

You're right.  Wally86 fixed his problem before I got a chance to look into it.  I just setup a test LaunchBox install and threw some Jag games in there to try and reproduce the error.  So far, the only way I found to reproduce the error is if I check/enable the option "Use file name only without file extension or folder path...".  That tells me that the error happens when LB doesn't send the full path to phoenix_rom_launcher. 

Double check your Emulator settings for Phoenix and make sure that option (highlighted below in yellow) is left unchecked.   

If your setup looks the same as the image below and you're still getting the error, then we'll have to continue looking into it.

image.thumb.png.1e218e3ae678bdf18fa18183cbe77122.png

Hope that helps

Edited by freeflyer454
Link to comment
Share on other sites

On 9/3/2020 at 3:45 PM, Unholy said:

Hey thanks a lot for the reply. Unfortunately my setup is the same and I get that error message... :(

Can you post some pics of your setup... like the emulator page for phoenix and maybe the launching tab from a Jag game so we can see the path that's being used.  I think it's gotta be something with the path that gets sent to the Rom Launcher.  LaunchBox obviously sees the rom or it wouldn't pass it to the Rom Launcher.  But the Rom Launcher isn't liking it for some reason.

Edited by freeflyer454
Link to comment
Share on other sites

  • 2 months later...
On 9/3/2020 at 3:45 PM, Unholy said:

Hey thanks a lot for the reply. Unfortunately my setup is the same and I get that error message... :(

I just happened to be looking back over the script and saw something that might be causing your issue.  The program looks for the words "3DO" or "Jaguar" inside the rom's path to know which platform it's for.  So if either of those particular strings are not in the rom's path, it could cause it to throw that error. 

It's always the little things you miss that trip you up  ?

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 12/2/2020 at 3:25 PM, freeflyer454 said:

I just happened to be looking back over the script and saw something that might be causing your issue.  The program looks for the words "3DO" or "Jaguar" inside the rom's path to know which platform it's for.  So if either of those particular strings are not in the rom's path, it could cause it to throw that error. 

It's always the little things you miss that trip you up  ?

My Jaguar ROMs are compressed, Launchbox unzips them to the default Launchbox/ThirdParty/7-Zip/Temp/ directory, which is also where my Phoenix cartridge path(s) are.

As such, this solution doesn't quite work for me, and I don't wish to rename the name of Temp folder for the sake of one platform.

I did try recompiling the script with changes to make this work, but I kept running into compiler errors on various external references.

 

Would you mind compiling a version of this script without this requirement? Or an alternative that just looks for 'Temp'?

I have jophran's original launcher working correctly, but am struggling to get AutoHotKey to close the emulator on hitting ESC.

His currently suggested solution is to use your script.

Many thanks.

Edited by Darkshade
Link to comment
Share on other sites

3 hours ago, Darkshade said:

My Jaguar ROMs are compressed, Launchbox unzips them to the default Launchbox/ThirdParty/7-Zip/Temp/ directory, which is also where my Phoenix cartridge path(s) are.

As such, this solution doesn't quite work for me, and I don't wish to rename the name of Temp folder for the sake of one platform.

I did try recompiling the script with changes to make this work, but I kept running into compiler errors on various external references.

 

Would you mind compiling a version of this script without this requirement? Or an alternative that just looks for 'Temp'?

I have jophran's original launcher working correctly, but am struggling to get AutoHotKey to close the emulator on hitting ESC.

His currently suggested solution is to use your script.

Many thanks.

Ah... that's good to know.  I didn't realize that's how LaunchBox handled compressed roms.  I think I did it the way I did because that was the easiest way to determine which platform the game was being launched for.  I need to know the platform since the xml nodes are in different node paths between platforms.  I guess a more fool-proof way would be to compare the game's file extension with lists of extensions for each platform.  

I'll look into implementing that and updating the script.  I need to update the script here anyways (got another version that works with ColecoVision roms now).

I'm working offshore at the moment, but I'll try to get it done in a day or two (hopefully).

Edited by freeflyer454
Link to comment
Share on other sites

5 hours ago, freeflyer454 said:

Ah... that's good to know.  I didn't realize that's how LaunchBox handled compressed roms.  I think I did it the way I did because that was the easiest way to determine which platform the game was being launched for.  I need to know the platform since the xml nodes are in different node paths between platforms.  I guess a more fool-proof way would be to compare the game's file extension with lists of extensions for each platform.  

I'll look into implementing that and updating the script.  I need to update the script here anyways (got another version that works with ColecoVision roms now).

I'm working offshore at the moment, but I'll try to get it done in a day or two (hopefully).

Thank you!

Whenever time permits, I greatly appreciate it.

Also, I hope I'm not asking too much, but I wonder if you could incorporate my AHK script for confirming Emulator Quit upon pressing Escape, over the one that is currently being used. (Or at least as an optional addition).

You can find it here (Variation 2):

 

Edited by Darkshade
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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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...