Jump to content
LaunchBox Community Forums

Recommended Posts

BezelLauncher

View File

What is it?
Use this plugin to display bezels for emulators that don't natively support them.

What does it do?
It displays a bezel and resizes the emulator window to fit within the bezels transparent area.

What's required to make this plugin work?
LaunchBox v13.3 (or newer), the plugin file, bezel images and some minor setup.  No more. No less. (See Setting up)

Do I need to provide my own bezel images?
Yes. (See Setting up for where to place them)

Will it work with game specific bezels?
Yes.

Will this work with all emulators?
Yes, with exception. RetroArch and MAME emulators will not show in the list of emulators and cannot be used with this plugin. 

The emulators that have been tested so far all work. Some adjustments may be necessary. (see Emulator Settings)

Will this work with storefront games or Windows games?
No.

Can I use my existing RocketLauncher bezel configuration files?You can use the existing platform.png and platform.ini files from RL.  These existing files should be located under:
   
/RocketLauncher/Media/Bezels/platform_name/_default/something.ini (and something.png) 
(See Setting up [step #3])

What are the .ini files for?
The .ini (configuration) files tell the plugin how to resize and move the emulator window to fit within the bezel.  (See .ini (configuration) Files for more info and Testing for creating and saving them)

Can this plugin add shaders as well?
No.  Yes. See Using Shaders  (new v2.1.0)

 

Disclaimer

This works on my test PC.  I didn’t test it on my cab because I didn’t want to change my emulator settings to not use fullscreen (see Emulator Settings).  Outside of RetroArch and MAME, I don’t use bezels, so didn’t want to mess-up-a-good-thing.

There are no guarantees, express or implied… blah blah blah blah blah blah blah.

There is no risk. This plugin makes no changes to LaunchBox or your emulators.  If you decide this isn’t for you, simply undo any fullscreen changes you made and (with LB/BB not running) delete the BezelLauncher folder.

 

Special Thanks
Special thanks to @MadK9 for the idea, direction and help with testing!  Without him, I would have never contemplated starting this project. :D  Also a big thanks to @Sbaby for testing un-tested emulators with the plugin.

 

Installing

With LaunchBox/BigBox not running...

  1. Download the plugin .zip file
  2. "Unblock" the file
    1. Right-click the file, select Properties, check the box "Unblock", click OK.
    2. Or better yet, just use 7-zip to open the file
  3. Copy the contents (a folder called "BezelLauncher") into your \LaunchBox\Plugins\ folder
  4. Start LaunchBox

 

Setting up

  1. Start BezelLauncher Setup from the LaunchBox Tools menu, then click Close
    • This will create the \Plugins\BezelLauncher\Bezels\platform_name\ subfolders
  2. Copy your bezel images into their respective platform_name subfolders
    • See Bezel Images for more information
  3. (optional) If you have existing RL platform_name.ini files, copy those alongside the image files
    • See .ini (configuration) Files for more information
  4. Restart BezelLauncher Setup
  5. Select a platform
  6. Choose an emulator you wish to use for that platform.
  7. Check Disabled to enable it
    1. Click Test
    2. Adjust (Move/resize) the orange frame to fit within the view area of the bezel (See Testing)
    3. Click Shaders to enable, adjust and change shader (see Using Shaders)  (new v2.1.0)
    4. Click Save [to save the .ini file]
    5. Click Save on the main setup screen to add the emulator to the list of Enabled platform emulators
  8. Repeat for other platforms and emulators you wish to add
  9. You must click "Save" for each emulator you've enabled, separately.

image.thumb.png.c97c031560f6d11d832627f112c7d1b2.png

 

Maintenance
After adding/removing platforms or emulators

  1. Run BezelLauncher Setup
  2. Click Refresh
  3. Continue with Setting up, step #5

 

Testing
To configure the placement of the emulator window within the bezel (Requires an existing bezel image):

  1. Run BezelLauncher Setup
  2. Select a platform and an emulator
  3. Enable it (if it's not already)
  4. Click Test

image.thumb.png.ceb55f1ed0005e34f820e0d6caf0e08f.png

Move and resize the frame

  • Click [and hold] the left or right side of the frame to move it around
  • Click [and hold] the bottom right corner to resize image.png.c72de1ad9780af93759750bd7818c070.png
  • Use the on-screen buttons to fine-tune the adjustments

The on-screen display will show information about the emulator window.
(You can click and drag the OSD to move it around as needed)

  • x, y = upper left monitor-coordinates of the emulator window
  • w, h = width and height of the emulator window
  • x, y = lower right monitor-coordinates of the emulator window

image.thumb.png.df3e2713204f043555ce2afd9ba6f25a.png

  • If any of the values are red, they are off the screen
  • The OUTSIDE edge of the frame is the emulator window extents

After adjusting, click Save.  This will overwrite any existing configuration file.
 

Using Shaders  (new v2.1.0)

  • First you need some shaders.  Place the .png images in the /Bezels/Shaders/ folder
  •     (Scanline.png 'shader' is included)
  • Start BezelLauncher Setup
  • Select your platform and emulator and click Test
  • Click Shaders
  • Check the box to turn shader on
  • Use the slider to adjust the shader
  • Adjust the opacity down to lighten the shader
  • Use the drop-down box to select a different shader
  • Click Save to save your settings

 

Parameters
Depending on the emulator and the bezel, you may need to check 1 or more of the following parameters:

(h) hideStuff

Check this if you see the desktop behind bezel while the game is loading.  This adds a black background during the startup process.

(s) startupSleeper

“Hide stuff” for a little longer during startup (3 seconds)

(l) longerSleep

Same as above (4 seconds)

(g) hideGameStartup

Check this if LB Game Startup screen is showing behind the bezel at game startup

When selecting a platform, if the plugin detects an emulator that has been tested, “suggested” parameters will be shown.  Your mileage may vary.

 

Emulator Settings

For the plugin to move/resize the emulators’ window, you will need to disable fullscreen in the emulator(s).  This may be as easy as removing "-f" or "-fullscreen" from the Default Command-line Parameters (depending on the emulator).

Beyond that, of the emulators I've tested, the only one that needs to have its Default Command-line Parameters altered is SuperModel.  You will need to manually set the resolution.

  1. Start BezelLauncher Setup
  2. Select your Super Model 3 platform and Enable it
  3. Click Test and after adjusting the frame to where you want it, make note of the W(idth) and H(eight) #'s shown in the OSD.
  4. Save and Close.  (Be sure to click Save on the main Setup screen to save Enabled as well.)
  5. Edit your SuperModel emulator (in LaunchBox) and set the Default Command-line Parameters to "-res=W,H"  (no quotes, no spaces and replacing W & H with the #'s noted above)
    1. Example:       -res=1420,1076

 

Bezel Images

When you run BezelLauncher Setup for the 1st time, the plugin creates subfolders for each of your eligible platforms. They are created in:
                \LaunchBox\Plugins\BezelLauncher\Bezels\[platform_name]\

The platform image file needs to be in the [platform_name] folder and must be named the exact same as the platform.
                \BezelLauncher\Bezels\Sony PSP\Sony PSP.png

 

Game-specific bezel files

Game-specific bezel folders (or files) can be named after the games ROM filename or the games Title.

Using the games Title:
If the Title has 'invalid file name characters', those characters will need to be replaced with _ (underscore).  The exact same way LaunchBox does with its image files (but without the -01 suffix).
      Example:  Title = Disney-Pixar's Toy Story 2: Buzz Lightyear to the Rescue!
                      Bezel = Disney-Pixar_s Toy Story 2_ Buzz Lightyear to the Rescue!.png

NOTE: Additional Apps game Titles are (i.e.) "Play USA Version...".  So the bezel would be "Play USA Version....png".  Same rules apply with 'invalid file name characters'.

Invalid characters are:  

<  (less than)
>  (greater than)
:  (colon)
"  (double quote)
/  (forward slash)
\  (backslash)
|  (vertical bar or pipe)
?  (question mark)
*  (asterisk)
'  (single quote) Not technically invalid (post-DOS), but consistent with LaunchBox character replacement


 

Storing game-specific bezels:

 Option 1:

  • Place your game bezel images directly inside their respective \[platform_name]\ folder.

Game-specific image files must be named the exact same as the games ROM file or the games Title (accounting for invalid characters).

example:

  • \BezelLauncher\Bezels\Sony PSP\After Burner - Black Falcon (USA) (En,Fr,Es,It,Nl) (PSP) (PSN).png

 

Option 2:

  • Place your game-specific bezel image folders under the \[platform_name]\ folder.
  • The subfolder must be named the exact same as the games ROM file or Title (barring invalid characters).
  • The .png and .ini files in the subfolder can be any filename.

 example:    

  • \BezelLauncher\Bezels\Sony PSP\After Burner - Black Falcon (USA) (En,Fr,Es,It,Nl) (PSP) (PSN)\thisIsAnyFileName.png

 See Launching different game versions for information about bezel requirements for games that are combined as Additional Apps.

 

ScummVM

Setting up ScummVM for use with this plugin:
In LaunchBox, Edit games using ScummVM.  In the ScummVM section, have both checkboxes un-checked.  (Fullscreen and Aspect Correction).  This cannot be done using the Bulk Edit Wizard, so will need to be done on a per-game basis. One-at-a-time.

If it's not displaying correctly with just the above, try the (optional) following:

  • Navigate to /LaunchBox/Third Party/SummVM/ and start ScummVM.exe.
  • On the Graphics tab, set Graphics Mode to opengl.  Leave the other 2 as default and the check box's un-checked.  Click OK and Exit.

ScummVM Bezel Files:
To use bezels with games using LB's integrated ScummVM, you will need to set them up manually.  It will not appear in BezelLauncher Setup.

  1. Navigate to the plugins Bezels subfolder and add your platform folder.
    • i.e.    \LaunchBox\Plugins\BezelLauncher\Bezels\ScummVM\
  2. Add your platform default png and ini files to this folder.
    • i.e.    ScummVM.png   ScummVM.ini

Game specific bezels for ScummVM must be named the same as the Game Data Folder.
    i.e.    D:\LaunchBox\Games\ScummVM\King's Quest 1 - Quest for the Crown\[game files]
             use:     "King's Quest 1 - Quest for the Crown.png"
 

DOSBox
The integrated version of DOSBox is NOT supported by this plugin.  I couldn’t get it to cooperate 100% of the time.  So going with plan “B”.

To use DOSBox with this plugin, you will need to install and set up DOSBox-X.

Setting up DOSBox for use with this plugin:
Note: BezelLauncher Setup will NOT show your DOSBox platform ('MS-DOS') as an available platform.  So don't bother looking for it.

Download DOSBox-X
DOSBox-X releases can be found here:  https://github.com/joncampbell123/dosbox-x/releases

  1. Download the vsbuild-win64 version. (direct link for the download file)
  2. Create a new folder under \LaunchBox\ThirdParty\ and name it DOSBox-X
  3. Extract the contents of the downloads "\bin\x64\Release\" folder into the new folder
    • Be sure to unblock the zip file before extracting (unless you’re using 7-Zip)

Configuring DOSBox-X

  1. In Windows Explorer, navigate to \LaunchBox\ThirdParty\DOSBox-X\.  
  2. Make a copy of dosbox-x.conf.  
  3. Rename the copy to [something like] "BL-dosbox-x.conf"
  4. Right-click the new 'BL-dosbox-x.conf' file and select edit (Notepad++ works great for this. But any text editor (Notepad) will work)
  5. Look for the following keys and change their Values as shown:

(starting on approximately line 78)
fullresolution          = 1400x1080
windowresolution  = 1400x1080
windowposition      = 260,0
output                      = ttf
showmenu              = false

"1400x1080" (2 locations) is the dimension of the transparent area of your bezel.  Adjust as necessary.
    From your MS-DOS.ini file, use [Right X]-[Left X] for the 1st value (1400) and [Right Y]-[Left Y] for the 2nd (1080)

"260,0" is the upper-left coordinate of the transparent area.  Use the Left-X value for the 1st number and Left-Y for the 2nd.

Save the changes and close the editor.


Configure games to use DOSBox-X
The following assumes your MS-DOS platform games are already setup to use the integrated version of DOSBox.

  1. In LaunchBox, select all your DOSBox games and press Ctrl+E to start the Bulk Edit Wizard.
    • (Select 1 game in the MS-DOS platform, then press Ctrl+A to select all)
  2. On the 2nd screen
    1. select the Field Custom DOSBox Version EXE Path
    2. for Value, Browse to and select dosbox-x.exe
  3. Click Next, Next
  4. Click “Yes, I would like to make more changes
  5. select the Field DOSBox Configuration File 
    1. for Value, Browse to and select the new file you created (BL-dosbox-x.conf)
    2. Click Next. Next (again). 
    3. Click "No, I would not like to make more changes"

 

MS-DOS Bezel Files:
This assumes your DOSBox platform is called "MS-DOS".

  • In the Bezels subfolder under the plugin folder, create a new folder called 'MS-DOS'.  
  • In \LaunchBox\Plugins\BezelLauncher\Bezels\MS-DOS\, add your bezel files (MS-DOS.png and MS-DOS.ini).

Game specific bezels for DOSBox need to be named the same as the Game Data Folder
    i.e.    D:\LaunchBox\Games\MS-DOS\Cosmos Cosmic Adventure\COSMO1.EXE
            use     "Cosmos Cosmic Adventure.png"    
 

 

.ini (configuration) Files

The .ini files contain the monitors' coordinates for placing the emulator window.
The Upper Left x,y coordinate and the Lower Right x,y coordinate

Example:
Upper Left X Coordinate=240
Upper Left Y Coordinate=100
Lower Right X Coordinate=1680
Lower Right Y Coordinate=1080

The platform ini file must be named the exact same as the platform.  If copied from RocketLauncher, you may need to rename it (removing any under_scores).

i.e.   \BezelLauncher\Bezels\Sony PSP\Sony PSP.ini  

For game-specific ini files, if they are located in a subfolder below /[platform_name]/ (see Bezel Images, Option 2, above), they can have any filename.  If they are inside the /[platform_name]/ folder (Option 1), then they must be named the exact same as the games ROM file or Title.

If a game-specific .ini file doesn’t exist, the plugin will use the games platform.ini file.

 

 

Launching different game versions

Also known as Additional Apps, when right-clicking a game and selecting Play Version, the Additional App is not required to have its own bezel files.  If the Additional App doesn't have its own bezel, the plugin will look for the Default Games' bezel.  If neither of those exist, it will use the platforms’ bezel.

This eliminates the need to have a separate set of bezel files for each version of the game. Useful since they most likely all use the same image.  This only works for games that are Additional Apps.

 

 

Plugin Folder Structure

Spoiler

Main plugin files

 D:\LaunchBox\Plugins\BezelLauncher\
            BezelLauncher.dll
            BLSetup.xml

 

(default) Platform Bezel

D:\LaunchBox\Plugins\BezelLauncher\Bezels\platform_name\
            platform_name.ini
            platform_name.png

 

Game-specific Bezels

Option 1:

D:\LaunchBox\Plugins\BezelLauncher\Bezels\platform_name\
            game-1-ROM_name.png / game-1-ROM_name.ini
            game-2-ROM_name.png / game-2-ROM_name.ini
            game-3-ROM_name.png / game-3-ROM_name.ini

 

Option 2:

D:\LaunchBox\Plugins\BezelLauncher\Bezels\platform_name\ game-1-ROM_name_name\
            anyNameYouWant.png  /  anyOtherOrSameNameYouWant.ini
D:\LaunchBox\Plugins\BezelLauncher\Bezels\platform_name\ game-2-ROM_name_name\
            anyNameYouWant.png  /  anyOtherOrSameNameYouWant.ini
D:\LaunchBox\Plugins\BezelLauncher\Bezels\platform_name\ game-3-ROM_name_name\
            anyNameYouWant.png  /  anyOtherOrSameNameYouWant.ini

 

Log files

D:\LaunchBox\Plugins\BezelLauncher\Logs\
            log [date/time].txt        (Up to 5 files max)
            SetupLog [date/time].txt    (Up to 5 files max)

 

As always, any thoughts, views, opinions, [constructive] criticism, comments and suggestions are welcome.


 

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
3 hours ago, Krakerman said:

Only thing missing is RetroArch and MAME support and this will make this plugin complete!! I know RA and MAME have there own bezels but some of us old school RL users may and do prefer using our RL bezels for those systems.

Much appreciate your work @JoeViking245 as always!

Thanks for the appreciation!  It [still] seems to me like a duplicative effort to add systems that have the built-in feature that does the same thing.  (and probably better than I could)  It'd be like creating a plugin to reset your games' Play Count to zero when LaunchBox can natively do that.  Oh wait. I did that.  Or creating a plugin that shows badges on games that have RetroAchievements when LaunchBox does that too. Oh ya, I also did that. ;)   Anyway, in the works is adding bezel support for games using LaunchBox's DOSBox and ScummVM.  It's a little tricky because of how they're launched, but should be coming soon to a download near you.

  • Like 1
Link to comment
Share on other sites

For one it may seem like a duplicate if you never used RL before and have 1000's of bezels already. I suppose for these systems then I will have to continue to use my own custom AHK code to use RL bezels in LB/BB. Would just be nice to have everything all in one plugin. 

More options is always a good thing. Hopefully you will reconsider and look at implementing it at some point which will add even more possibilities to the plugin. If someone wants to just use the RA or MAME bezels then they can or else use the plugin (RL) bezels would just be a nice feature to have with the plugin. 

Anyways that's my sales pitch hahaha 

Happy holidays!

Edited by Krakerman
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...

Hi JoeViking245

First of all, thank you for this amazing plugin! I think it´s a must have for launchbox users that like Bezels

I just want to comment that i have a problem with this:

Fix: Bezel Window Width & Height not properly fitting the screen

Because the png doesn´t fit the whole screen.  I´m using the Model 2 Emulator, with the suggested parameters and fullscreen disabled

 

This is how it looks in test mode:

image.thumb.png.0287974dc766481d40745b79d12c229b.png

And here is how it looks with the game running:

image.thumb.png.d8869b9139af94eb0ff8d3b4d9d95078.png

I´m using a random image just for testing. Note that in test mode, even with the red square being "offset", when the game runs, it fits in the bezel image.  The png is 1920*1080 wich is the max resolution of my monitor 

I´m saying this because i´ve tried with a 3840*2160 image but the result is the same

I appreciate that you could help me solve this problem and I apologize for my English since it is not my natural language.

 

Edited by espidie79
Link to comment
Share on other sites

21 hours ago, JoeViking245 said:

In your Windows Display Settings, do you have the Scale set to something other 100%?  If you change it back down to 100%, does it still look all wonky?

Hello JoeViking245,

Sorry for the delay. Yes. i had the scale set to 150%. When i change it to 100% it works ok. Thank you so much for your guidance.
Just to know. is there any plan to add support for shaders like in early versions? 

Thanks again

Link to comment
Share on other sites

13 hours ago, espidie79 said:

Hello JoeViking245,

Sorry for the delay. Yes. i had the scale set to 150%. When i change it to 100% it works ok. Thank you so much for your guidance.
Just to know. is there any plan to add support for shaders like in early versions? 

Thanks again

No worries on the 'delay'.  It's a hobby. We get to it when life allows. 😎

Regarding scaling, I was contemplating looking into accommodating different scales.  Though to get that to work effectively (have only delve into it a little), it's probably easier to just tell "you" to set it to 100%. haha   In all seriousness, I have it on my 'maybe look into to it someday' list.  But with the limited number of users of the plugin and only 1 person bringing this up in the last year-and-a-half, it's not a very high priority.

 

There is currently no plan to add shader support.  In early production, I had a "shader" setting in the Test feature of BezelLauncher Setup.  Based on your inquiry, guess I forgot to remove it.  Personally, I don't intentionally use them (MAME and RA may have thrown them in there for me).  So not really sure what'd all be involved.  Shaders? Textures? A bazillion choices?  Are the png files open source (tiny, as they may be)?  Sounds like a can-of worms.  I recall that in RA you can also 'layer' multiple ones.  I think the worms just multiplied and the can got bigger. ;)  

It'd seem like this would be a popular request, but you're the only one of the 4-ish users of the plugin that has asked about it.  In the beta thread, one other user did mention the word "shaders".  But never requested it.  If we count that, then we have close to 50% of the active users wanting it. :D  I do have it on 'the list' (mentioned above) and to be clear, I don't make these plugins for "me".   Well, at least not beyond for-the-fun-of-it.  I don't create Polls, but do always state: "any thoughts, views, opinions, [constructive] criticism, comments and suggestions are welcome."  Given enough [similar] suggestions (requests), they typically get added.  (Barring reasonableness, feasibility, is in-line with the intent of the plugin and life's time-allotment.)

Link to comment
Share on other sites

Hello JoeViking 245 Thanks a lot for your answer and to update your plugin by adding shaders and the "scale factor" (By the way, thank you very much for that) i will try it as soon as possible. I really think that this plugin is the solution to have a "unified" look to the systems emulated in launchbox.

Thank you very much and once again, sorry for the delay in my answer (and my english) 

  • Like 1
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...