(REQUEST/IDEA) Dynamic marquess .. or interprocess comms...
-
@janderclander14 can you run emulation station from another terminal and see if you see an output on the terminal when you change systems?
-
@kiro I booted into a terminal and, then, from another remote terminal, I run your emulationstation as follows:
python /home/pi/emu.py
Then, your emulationstation showed in the main screen but, unfortunately, nothing appears in the remote terminal when I browse or go into the systems.
-
@janderclander14 Hi I meant to run the new build of emulation station...not emu.py.... how this works is that the custom build of emulationstation will send to the ouptut the name of the images to be displayed, and emu.py will capture these names and launch "fim" to display them.
Here's an example on my own setup:
pi@retropie:~ $ ./EmulationStation/emulationstation /etc/emulationstation/themes/ComicBook_SE-Wheelart/3do/art/marquee.png#/etc/emulationstation/themes/ComicBook_SE-Wheelart/arcadeacclaim/art/marquee.png#/etc/emulationstation/themes/ComicBook_SE-Wheelart/arcadeacclaim/art/marquee.png#/etc/emulationstation/themes/ComicBook_SE-Wheelart/arcadealphadenshico/art/marquee.png#/etc/emulationstation/themes/ComicBook_SE-Wheelart/arcadealphadenshico/art/marquee.png#/etc/emulationstation/themes/ComicBook_SE-Wheelart/arcade/art/marquee.png#/etc/emulationstation/themes/ComicBook_SE-Wheelart/arcade/art/marquee.png#
And just to confirm, this is how I have the marquees in the theme.xml of each system:
<theme> <formatVersion>3</formatVersion> <include>./../comic_book.xml</include> <view name="system"> <image name="marquee"> <path>./art/marquee.png</path> </image> </view> --> I've omitted non relevant tags
So what I would like to try is if you can see the name of the images in the remote terminal when emulationstation is running and you change systems, just as the example I showed you.
Thanks!.
-
@kiro I tried exactly that.
pi@retropie:~ $ ./EmulationStation/emulationstation
But I get no output when navigating through the systems. My theme.xml files in each system folder into the carbon theme are like yours
<theme> <formatVersion>3</formatVersion> <include>./../carbon.xml</include> <view name="system"> <image name="marquee"> <path>./art/system.jpg</path> </image> </view>
The owner of both EmulationStation at /home/pi and the files into the carbon theme in /etc/EmulationStation are set to 'pi'
-
@janderclander14 Seems that the version you're not running is not the proper one, you should see the output..I presume you compiled the version from my repository?? If you did compile it let me know and I'll find a way to get you my binary.
-
@kiro Yes, I cloned your repository and compiled emulationstation by following the indications in the readme. Compilation was fine and I was able to execute the resulting binary in /home/pi/EmulationStation. I have no clue what could be happening...
-
@janderclander14 Very strange, I'll upload the compiled binary into github today, so you can download it an try it. It is compiled on a RPI4, so hopefully you have a similar setup.
-
@kiro Great! the binary worked, thanks! I didn't know what happened with the compiled version, but it seems to compile ok with the options you state in the git.
By the way, do you know if it is possible to rotate the images with 'fim'? My marquee monitor is vertical by default, so I need to rotate them 90º. If it is not possible, an alternative would be to use 'omxiv' instead.
And finally, a suggestion, do you think it could be possible to provide outputs for the games shown in the screensaver, so that the marquee matches the game's screenshot/video?
-
@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...
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.