Jump to content
LaunchBox Community Forums

Secondary Artwork Display Software and Hooks


erkrystof

Recommended Posts

Greetings, all. I tried Marquee Magician and CpWizBiz and the former kept breaking down on me while the latter seemed more than I wanted to bargain for. I'm a fan of Launchbox and decided to prototype my own secondary display launcher since I'm having a difficult time finding something that suits my needs. (I don't know if there's something else that does this or not, I'm a bit new on the retro side of things and have only really tried EmulationStation and Launchbox) My high level idea was to have a client/server solution that could be hooked into with simple targets for launching marquee artwork and other media samples on a secondary display while playing on the primary display. An example launch hook could be Arcade:PacMan, or Commoodore-64:Pacman, DOS:Scored Earth, etc. Something simple along the lines of Platform/Game name. The idea is that I might want platform based layouts and have the defined game name drive the determination of the actual media to load (with platform designation defaulting some pieces possibly, like a intro movie, logo, etc). The server, then, must have a database of sorts that it can use to provide media and layout instructions for the client process to render. I think that piece is straight forward enough, and I was even thinking of taking my launchbox configuration and importing pieces into the server component datastore, like artwork location, and marry those together when launching. However, I was wondering how I could best integrate this in launchbox. So far I think the easiest would be to wrap each emulator configuration with a batch file to wrap the marquee client/server handshake/media display, launch emulator, then teardown secondary display on emulator exit. Barring any flaws in my logic there, I'm trying to figure out a decent way to 'identify' the game being launched. I could use the batch file, for example, a mame batch file knows it's mame, a commodore 64 emulator wrapping batch file knows it's commodore 64, etc, but I was wondering if it's only the ROM name that's ever passed or if we could get any other information as well, as an argument or environment variable? Like platform, maybe even the GUID from the launchbox XML, etc. Maybe I'm barking up the wrong tree here, just kind of musing while I prototype. I just love the idea of a second monitor mounted above what eventually becomes a full cabinet display showing control panel photo, marquee, etc. I have not done any tablet/phone development but I guess I could see using one of those as well for s***s and giggles someday since it's all client/server. On a side note, great job, Jason. I really like how Launchbox has developed, especially BigBox.
Link to comment
Share on other sites

Why over complicate things? Over a network game performance will degrade for more demanding games, but LaunchBox does know how to handle and launch games over it. This doesn't solve having flowing artwork but instead maybe have a screen saver type solution or a software solution that reads images from the LB Image folder in a nice artistic way? LaunchBox is set up on the host computer with the roms on another computer or network drive. You import games like normal with the file path looking towards the networked drive. From there import like normal and have all of the artwork downloaded to the host machine. Use LaunchBox or BigBox depending on the mood or need as a top layer GUI. If it is a separate machine users have even had LaunchBox load first inside their machine and stopped Explorer from launching its GUI essentially making their PC machine more like an arcade cabinet. From there have a piece of software read the images folder and display flowing images if the machine doesn't have any input after x amount of time. Sorry if this is completely off from what you are trying to achieve.
Link to comment
Share on other sites

I understood it that LaunchBox would still be local the client server thing was just to launch the artwork on the secondary monitor now I may have misunderstood it somewhere though. As to launching the game you would need a variable setup that would represent the game in CADScoot's Daphne tutorial he is using %Games% or something similar and that is launching the different games in LaunchBox using that. I'm interested in seeing if he can run anywhere with this idea as I have a secondary monitor and would be willing to help test it out.
Link to comment
Share on other sites

Hi Brad, I apologize if I wasn't make it clear, let me give it a shot. :) The plan is to have a mini PC inside a game cabinet. The PC will have one display for the main game and one display for a dynamic marquee as my PC supports multiple outputs (the networking only came into play as a means for my friend who would only have one display card output but could easily get a tablet mounted). All the roms and image media will be on the same machine in this example. Use Launchbox to launch a game. Secondary display displays various media, such as the marquee or control panel layout / instructions piece. Once the game is exited, the marquee goes back to blank or some default layout. That's why i was thinking I needed some hooks to know when a game is launched and when it exits, as well as what exact game is being played so I can lookup the appropriate media to display. So i see where you're saying 'have a piece of software read the images folder and display flowing images", but I'm still wondering how I could best map the game currently being played to the marquee/steam banner/whatever image to display. Given that my only 'hook' is the rom being launched, I was wondering if any other command line parameters or something else could be provided, as I fear the rom name alone may not be sufficient, but perhaps it is if I preloaded my display software with a database import of the launchbox config (so it would know that launching the Commodore 64 version of pacman means the marquee is in 'systems/images/commodore64/marquees/pacman_2.jpg' as an example) Does that make sense? Thanks for your time.
Link to comment
Share on other sites

DOS76 said I understood it that LaunchBox would still be local the client server thing was just to launch the artwork on the secondary monitor now I may have misunderstood it somewhere though. As to launching the game you would need a variable setup that would represent the game in CADScoot's Daphne tutorial he is using %Games% or something similar and that is launching the different games in LaunchBox using that. I'm interested in seeing if he can run anywhere with this idea as I have a secondary monitor and would be willing to help test it out.
Yup, that's more in line with what I was horribly representing in my ramble. I can probably rig up a simple diagram that better explains it going forward (and if this thing worked well enough to actually release somewhere I'd have to anyway). I did some more searching and it looks like I've unknowingly started prototyping something very similar to GameEx Extender, but I'm not sure since I've never used it.
Link to comment
Share on other sites

If the solution is only Images then there is software that can easily do this. Edit: I missed your response, ok I get it now. When launching a game you want it to send instructions to display the art for that game on the second screen. We can certainly try and add something like that to the Feature Request page, I don't know how easy this would be to achieve though.
Link to comment
Share on other sites

Exactly. As a super rough 2 minute diagram, I was prototyping this: Maruee Server/Client Setup This was the initial thought. I'm not so much looking for launchbox to handle the marquee art myself (though if you guys did it I wouldn't necessarily write my stuff :) ), just the hooks to identify it are enough for me. That being said if I preload the marquee server database with a Launchbox import (yeah, have to handle refreshes as well), I feel the rom name being passed to the emulator batch file would probably be enough, but that's why I posted to see if any hooks like this already exist to begin with. (It really smells of a plugin framework integration point, doesn't it?) If I ever get anything up and running I'll post back here. Thanks!
Link to comment
Share on other sites

I am still a noob on LB and its technicalities but here is a brainstorm idea. I cannot say this would work but just a thought to throw out there (pseudocode). Setup would consist of having two LaunchBox applications installed; one as the client and one as the server. Client would run artwork and such for one display, server would run games (or the opposite) Within the game details of each game, have the details setup to call the server application to run that specific title. For example, within LaunchBox run Pac-Man, once Pac-Man is called, a second LaunchBox is opened with that title. That being said, outside of a client/server setup you could have the game details just call that game's specific manuel and/or artwork through a PDF viewer/Image Viewer. I do know that LB, through game details, has the ability to launch other things when the game is called. One section even allows you to specify in which order the run process takes place. Edit: Look into the 'Additional Applications' tab in the Edit Game window. May also be in the 'Other' tab as well.
Link to comment
Share on other sites

Great Idea and I don't mean this insultingly but that's still over complicated. There really wouldn't need to be another application installed. A Plugin system could work in the future, given a lot of work and security scrutiny, but why not just create an attract mode? It could work on several different layers. You can have it show images after a time of no input for all systems or selected systems (more or less a window or screen saver style). Then when you launch a game a window can pop up and do the same thing as the attract mode except only for the game or series you've launched. I do see this as being a specifically Premium Feature though.
Link to comment
Share on other sites

SentaiBrad said Great Idea and I don't mean this insultingly but that's still over complicated. There really wouldn't need to be another application installed. A Plugin system could work in the future, given a lot of work and security scrutiny, but why not just create an attract mode?
No offense taken whatsoever. I think it would be cool if it was built into Launchbox. The complication I'm still prototyping, though, is meant to be semi-front-end agnostic. Not to say Launchbox isn't my front end of choice, but I'm a tinkerer by nature and would like to practice a design and this most flexible for integration with numerous front ends if desired. I could easily see me halting the prototype work if this makes it into Launchbox someday, I'll be too busy ooohing and ahhhhing :)
Link to comment
Share on other sites

OP needs the client server model because he is using a tablet and a PC in tandem because his PC only has one display adapter. If he has any free USB ports he could always get a USB display adapter and if it is an arcade machine with a marquee just run the USB up to a secondary screen I use five USB display adapters on my six screen desktop and they work very well they even have newer USB 3.0 versions but my 2.0 versions work great as long as they are plugged directly into the PC they suffer if using a hub. Actually that is what the OP's friend needs the OP would be fine without the server/client model.
Link to comment
Share on other sites

From the outside in then as of right now, unless you had access to source code and built a more open / plugin based version of LaunchBox I don't think it would work. Unless you built a program specifically around just using command line parameters. I don't know if the XML store Command line parameters, but you can edit it with Notepad++ to some success so getting a program to batch add certain command line arguments could be possible. Edit a game and on the first page the command line parameters: You could write the command line to run X bat file or Y program. From there it just reads what game you started (or if you could do it in the batch editing have a marker in the command line that tells the program it's game name), then from there you could have the program then scan your LB Images folder for that exact game name then display images in certain orders etc.
Link to comment
Share on other sites

No insult was perceived if you were referring to my reply either lol, and I agree my idea was still complicated. It would definitely hinder the performance of the machine having two applications run like that especially one running off a server. I must say that this idea is pretty cool having a setup of displaying the game on one screen and another/others display art and the game manual. A big payoff for this feature would be those games which have maps or game platforms such as the Nintendo DS.
Link to comment
Share on other sites

DOS76 said OP needs the client server model because he is using a tablet and a PC in tandem because his PC only has one display adapter. If he has any free USB ports he could always get a USB display adapter and if it is an arcade machine with a marquee just run the USB up to a secondary screen I use five USB display adapters on my six screen desktop and they work very well they even have newer USB 3.0 versions but my 2.0 versions work great as long as they are plugged directly into the PC they suffer if using a hub. Actually that is what the OP's friend needs the OP would be fine without the server/client model.
Good idea, I'll have to keep that in mind.
Link to comment
Share on other sites

  • 1 year later...

What, attract mode and second screen stuff? Yes and yes. Attract Mode kicks in after a certain amount of time of inactivity (with it enabled), and the Marquee stuff does exist, and it can be used on more than just dynamic marquees for arcade cab's. The thing with the Marquee stuff though, is no ones taking full advantage of it with a theme. Big Box does enough with it from a basic point of view, and it is certainly sufficient for most things, but the best UI related stuff is coming from the community.

Edit: I should point out that these are for Big Box only.

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