(REQUEST/IDEA) Dynamic marquess .. or interprocess comms...
-
@janderclander14 Happy to hear that...
The 'nice' thing is that you can modify emu.py to do whatver you want. My compiled version of emustation outputs the 'marquee' value found either in theme.xml or in the gamelist.xml (one marquee per game), so from there you can do whatver you want by simply modifying the emu.py script, which basically captures the output from elulationstation and does something (currently, just use fim to display the marquees on 2nd screen), but you can do anything you can imagine with it, just change fim by other command. Some ideas I have:
- If you have led buttons, turn on or off depending on the system you're playing (or even RGB buttons)
- Illuminate an RGB strip in the arcade machine depending on the dominant colour of the marquee..
- Launch a video in the marquee (hdmi1)
- Play sounds per system
- Notify some external system, or another RPI or whatever...
....
I mean, possibilities are infinite as long as you can capture what emulationstation is outputting... and emu.py simplifies changing the behaviour greatly.
For your screen saver question, I'm not sure I understand what you mean, which theme are you using and how do you configure/set up the screensaver? (I do not use that option personally).
-
@kiro I ment the screensaver built into emulationstation, which randomly cycles through the games in the system and shows the associated screenshots and/or videos. Then, by pushing the start button, you can load the game. The idea was that, the secondary display would show the game's marquee while the main window shows the game's screenshot, if this is possible.
I understand that, so far, the outputs are associated to the system being browsed and the game being ran, don't they?
Finally, just small issue: when using the python script to run emulationstation, the image shown in the secondary display is also shown in the main display during the loading of a game, instead of the runcommand menu. Is this the expected behaviour?
Thanks!
-
@janderclander14 Hi, I'll have a look at the screensaver feature, shouldn't be an issue, will come back to you shortly.
Regarding the marquee present during the loading, well, I have that issue and I do not know how to fix it to be honest, rmemeber it is fim that is asked to display the image on the seconday display, so I'm not sure why it is showing it there too. Will try to have a look at one point if I have the time (to be honest I'm ok with that "feature" :-) )
Thanks!
-
@janderclander14 Hi, so I added the screensaver functionality, you need to update the precompiled binary and the emu.py.
I'be tried and it seems to work, althought there is a big catch:
I base the marquee selection on the image that is being sent to the scrren by emulation station, and I replace every occurence of 'image' by 'marquee', because in my setup:
- Images are under /home/pi/RetroPie/roms/{system}/images/{SHA}-image.png
- Marquees are under /home/pi/RetroPie/roms/{system}/marquees/{SHA}-marquee.png
So as you can see, replacing image by marquee it goes to the right image to display.
If your images/marquees do not follow this convention, it may not work, or you might need to update emu.py to make the proper switch.
If you can test it, let me know how it goes.
Thx
P.s.: I've done the same name replacement for videos (if your slideshow is videos) and it will show the default one if the marquee is not present.
-
@kiro Thanks! That was fast! I will try it this weekend and let you know.
-
@kiro Hey sorry to resurrect this but trying to get this way of displaying the marquee on the second screen of the pi4 as well, and can't seem to get it to go after successfully installing your ES build.
The marquees and piemarquee2 work great after booting the game, but it doesn't show the marquee in the game selector screen any more and it won't work with the screensaver, it just stays on the maintitle.png image in my piemarquee/marquee/systems folder.
I do have my marquees set up a little different than yours - mine are all in the roms/[system]/marquee folder, named as gamefilename.png matching the .zip rom.
Do I need to rename all of the marquee image files to add the '-marquee' at the end, or is there something else I might be doing wrong?
-
@del1verance I would have to look into the python code, but I believe it expects the marquees to have a specific name and be in a specific directory, I think it is fairly easy to change the python code to make it translate the input into the filenames you use, have a look at the code and if you do not find how to do it let's take it from there.
-
@kiro I have to admit I'm a complete noob to python, so I can tell that it's outputting default.jpg when it's not getting the right value, and I can see in the first subprocess.popen it grabs where to get that image... but that's about it. :/
-
@del1verance hi, let me have a look later today and will try to help you out.
-
@del1verance Hi, so I had a look at the Python code (sorry I just didn't reember by heart what I have done)... my setup is like this:
/rompath/system/images
/rompath/system/videos
/rompath/system/marqueeso basically what happens is that the emu.py file will receive as input either the image or video for a game, let's say (/rompath/genesis/images/sonic.png) and will replace '/images/' by '/marquee/' so it would load
/rompath/genesis/marquee/sonic.png
So in principle if the image name is the same as your marquee (but under the marquee directory) it should work.
Rememer also to update /opt/retropie/configs/all/autostart.sh file as described in the readme (https://github.com/zayamatias/EmulationStation/blob/master/README.md)
Hope this helps.
Key points:
- You must have an image per game under a directory pathx/images/image_name_you_want.png
- You must have the marquee under a directort pathx/marquee/image_name_you_want.png
- You must update autostart so it launches the emu.py file and not directly enulationstation
Let me know how it goes.
-
@kiro First, thank you so much for trying to assist with this. I made a copy of my images folder (was previously /roms/system/media/images) and videos (same location), and double checked my autostart.sh, and unfortunately still no dice. Marquee images were already in the right spot.
It's definitely using your build of ES because it shows the default.jpg on the main terminal now (and I'd had to give emu.py permission with chmod 755).
I still get the marquees when launching the game, but still not on the game select screen or screensaver.
Now one other thing is that my gamelist.xml is still pointing to the old locations in the /media/images/ folder and not just /system/images/. Do I need to update each one of the games in there for each system?
-
@del1verance no worries. Yes I believe you will have to update the gamelist.xml ....try with one game and see how it works...
-
@kiro Hm.. still not working after changing gamelist.xml. I might try to use your scraper if I can get it to work and see if that helps.
-
@del1verance hmmm would it be possible for you to post and extract of the game in the gamelist, and the directory where the images and marquees are? Just to validate everything is ok...
-
@kiro Sure thing. I tried with about 4-5 games just to see if any worked, but here's the first one:
</game>
<game id="39870" source="ScreenScraper.fr">
<path>./10yard.zip</path>
<name>10-yard Fight (World, set 1)</name>
<desc>The game is viewed in a top-down perspective and is vertical scrolling. The player does not select plays for either offense or defense. On offense, the player simply receives the ball upon the snap and either attempt to run with the quarterback, toss the ball to a running back, or throw the ball to the one long distance receiver - basically the option offense. On defense, the player chooses one of two players to control, and the computer manipulates the others. The ball can also be punted or a field goal can be attempted.
10-Yard Fight has five levels of difficulty; from easiest to most difficult: high school, college, professional, playoff, and Super Bowl. If the player wins both halves of an "accelerated real time" 30-minute half at an easier level, the player advanced to the next level of difficulty, like a career mode.</desc>
<rating>0.5</rating>
<releasedate>19840101T000000</releasedate>
<developer>Irem</developer>
<publisher>Irem</publisher>
<genre>Sports / Football-Sports</genre>
<players>1-2</players>
<image>./images/10yard.png</image>
<marquee>./marquee/10yard.png</marquee>
<video>./media/videos/10yard.mp4</video>
<genreid>1538</genreid>
</game>My directories currently look like this, using that game as an example:
/home/pi/RetroPie/roms/arcade/10yard.zip
/home/pi/RetroPie/roms/arcade/images/10yard.png (image file)
/home/pi/RetroPie/roms/arcade/marquee/10yard.png (marquee file)
/home/pi/RetroPie/roms/arcade/media/images/10yard.png (duplicate)
/home/pi/PieMarquee2/marquee/arcade/10yard.png (duplicate marquee file that PieMarquee2 was pulling from before installing your version of emulationstation).I'm not sure if when the game launches, the marquee that's displayed is from your version of ES or PieMarquee2, but I'm only seeing them in the game select screen in my old/original version of ES.
-
@del1verance Hi! looking quickly to your setup I see there's nothing wrong.. quick qustion, do you get any output at all on your second screen?
Other issue I could see is that your gamelist.xml contains relative paths to the images, and this might cause a problem depending from where the image is grabbed... can you try putting absolute paths? such as:
<image>/home/pi/RetroPie/roms/arcade/images/10yard.png</image>
<marquee>/home/pi/RetroPie/roms/arcade/marquee/10yard.png</marquee>Thx
-
@kiro The second display is always outputting. If 'maintitle.png' is in my /home/pi/PieMarquee2/marquee/system/ directory then it displays that. I get a weird error if I use an .mp4 video though.
If maintitle.png is not in that folder, then I see the default.jpg (though it's small and doesn't fit the screen). While browsing games it stays on that image until I select a game and the game loads, then it shows the marquee as intended. Exiting it keeps the game marquee up and never goes back to default.jpg.
No change with using the absolute paths. Just to be sure we're talking about gamelist.xml in /home/pi/RetroPie/roms/arcade/gamelist.xml right?
-
@del1verance Hi, thanks for the info, yes we're talking about the gamelist.xml in your system's folder (so yes /home/pi/RetroPie/roms/arcade/gamelist.xml) ... let's try something else, would it be possible for you to exit emulationstation, then run it as
emulationstation &> log.txt
, go through a couple of games (no need to play them :-) ), exit emulationstation once more and paste the contents of log.txt here?You should see something like (this is an output from my system), and do not worry about the weird naming of the files, that's just me ;-)
/etc/emulationstation/themes/nostalgia-pure/3do/../_assets/marquees/3do.png#/etc/emulationstation/themes/nostalgia-pure/3do/../_assets/marquees/3do.png#/home/pi/RetroPie/roms/3do/marquees/99E47FCF4B89884D153F2522A69859027F6E9082-marquee.png#/home/pi/RetroPie/roms/3do/marquees/863E882F770C57A40C8BE84AE0F8F7CE20D7CF82-marquee.png#/home/pi/RetroPie/roms/3do/marquees/863E882F770C57A40C8BE84AE0F8F7CE20D7CF82-marquee.png#/home/pi/RetroPie/roms/3do/marquees/863E882F770C57A40C8BE84AE0F8F7CE20D7CF82-marquee.png#/home/pi/RetroPie/roms/3do/marquees/6F15CD748A931575539834586DB9631E07AB839E-marquee.png#/home/pi/RetroPie/roms/3do/marquees/6F15CD748A931575539834586DB9631E07AB839E-marquee.png#/home/pi/RetroPie/roms/3do/marquees/6F15CD748A931575539834586DB9631E07AB839E-marquee.png#/home/pi/RetroPie/roms/3do/marquees/A205744E37F437D49FF94113002EA3DE006B131A-marquee.png#/home/pi/RetroPie/roms/3do/marquees/A205744E37F437D49FF94113002EA3DE006B131A-marquee.png#/home/pi/RetroPie/roms/3do/marquees/A205744E37F437D49FF94113002EA3DE006B131A-marquee.png#/home/pi/RetroPie/roms/3do/marquees/65F7061DAA262FEF6969FD0FA8436E8D9E076B6D-marquee.png#/home/pi/RetroPie/roms/3do/marquees/65F7061DAA262FEF6969FD0FA8436E8D9E076B6D-marquee.png#/home/pi/RetroPie/roms/3do/marquees/65F7061DAA262FEF6969FD0FA8436E8D9E076B6D-marquee.png#/home/pi/RetroPie/roms/3do/marquees/3D00445762E1AF1C5FDA052353D714849722D638-marquee.png#/home/pi/RetroPie/roms/3do/marquees/3D00445762E1AF1C5FDA052353D714849722D638-marquee.png#/home/pi/RetroPie/roms/3do/marquees/3D00445762E1AF1C5FDA052353D714849722D638-marquee
Thx!
-
@kiro I actually get a really strange string of characters in the log.txt file that creates. Tried it twice just to make sure, same thing both times. This is the paste:
[H[J[3J[?25l[?1c[?25l[?1c[H[J[3J[H[J[3J[?25l[?1c[H[J[3J[H[J[3J[?25h[?0c
-
@del1verance Well, that's really strange, are you sure you're running the EmulationStation build from my GitHub? https://github.com/zayamatias/EmulationStation , Otherwise you will not see the image names appearing. Could you double-check? Thx!
Maybe I should be more precise, have you actually built emulationstation from my repository? Maybe the build I made is not 100% compatible with your setup.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.