AttractMode Frontend Plugin

ArcadeBliss

New member
RL Member
That's controlled by the RL plugin not the RLUI one so you'd have to write one for it as well. The RLUI plugin only controls what happens inside RLUI.

I'll have a look at your plugin when I have some time and if it fits the quality standards I'll get it added to RLUI, thanks.
Np. The RL plugin for AM included with RL i guess needs to be changed. Looking at the code i guess it is written in AHK? Can i use the Hyperspin RL Plugin as a guide?. Thanks

Sent from my Nexus 6P using Tapatalk
 

brolly

Administrator
Developer
Yep it's AHK, looking at the AM plugin seems like someone started, but never did much since it's not even reading any info from the databases unsure why this even comes bundled with RL to be honest because it won't do anything as it is. Yeah use the HS plugin as a guide if you know the HS file structure shouldn't be hard to follow.
 

ArcadeBliss

New member
RL Member
Yep it's AHK, looking at the AM plugin seems like someone started, but never did much since it's not even reading any info from the databases unsure why this even comes bundled with RL to be honest because it won't do anything as it is. Yeah use the HS plugin as a guide if you know the HS file structure shouldn't be hard to follow.
Back to the cave...

Sent from my Nexus 6P using Tapatalk
 

ArcadeBliss

New member
RL Member
I am a little stuck at the moment. In AttractMode, you can have multiple paths to have the FE search when looking for one type of media such as wheels.
When programming the RL Plugin, is it possible to have multiple paths for one label? e.g. see below.
Code:
- feMedia["Logos"].feLogo1.Label := "feLogo1"
- feMedia["Logos"].feLogo1.Path1 := "c:\aaa.png" <-- only increment this for multiple paths for a label here?
- feMedia["Logos"].feLogo1.Ext1 := "png"	<-- only increment this for multiple paths for a label here?
- feMedia["Logos"].feLogo1.TotalItems := 1	<-- set total paths here?

If I do this, does this also mean I will be unable to use the function: "BuildAssetsTableOld(list,label,AssetType,extensions="")" ?
 

bleasby

RocketLauncher Developer
Developer
You can use the BuildAssetsTable function for building the media object with multiple paths. Actually, you can see that this is done on most of the plugins that are already created:

Doing that using the function:

1) Simply define two or more alternative paths as the game asset type if they contain logo paths:

Code:
feMedia.Logos := BuildAssetsTable("C:\Media\Logos\gameName.png|C:\Media\Logos\gameName.png","FirstGameLogoPath|SecondGameLogoPath","game|game","png")

Doing that by hand:

1) You need to create a object named feMedia.Logos and inside it if I remenber correctly you need to define an object referring to the label that you want to define to these logos, for example "MyLogos". Besides that you need to define the type of the logo asset (game or system logos):

Code:
feMedia.Logos.MyLogos.Label := "MyLogos"
feMedia.Logos.MyLogos.AssetType = "game"

2) Them you need to define a logo path and ext property for each of the logo locations that you have valid files:

Code:
count := 0
if (FileExist("C:\Media\Logos\gameName.png")){
     count++
     feMedia.Logos.MyLogos["Path" . count] := "C:\Media\Logos\gameName.png"
     feMedia.Logos.MyLogos.["Ext" . count] := "png"
     
}
if (FileExist("C:\Alt\Media\Logos\gameName.png")){
     feMedia.Logos.MyLogos["Path" . count] := "C:\Alt\Media\Logos\gameName.png"
     feMedia.Logos.MyLogos.["Ext" . count] := "png"
}
if (count)
     feMedia.Logos.MyLogos.TotalItems := count

I am not 100% sure that the feMedia object structure is the one that I described above, this is what I could recall without actually having all the code before me, but you could easily check that if you run for example a game through HyperSpin and add the bellow code line to the end of the plugin code:
Code:
Array_List(feMedia)
 

ArcadeBliss

New member
RL Member
Hi Bleasby, thanks that helped a lot. I finished the plugin for RL and then scraped it. It was very complicated to read the config files from AM regarding the db and the artwork. The good part is i found a much much easier way.

AM also has a plugin system. I wrote a plugin for RL integration that writes all information about the current game, system and all associated artwork paths to a file before it runs RL. That of course made the RL plugin just a few lines of code. I am testing it at the moment and will place the entire package here for review.

To ease integration for AM users, the AM plugin will create the two RL and RLUI plugins after activation in AM.

AM ia just so flexible. RL aint too bad either :wavey:


Sent from my Nexus 6P using Tapatalk
 
Last edited:

ArcadeBliss

New member
RL Member
AttractMode / Rocket Launcher Integration Pack

So I returned from my cave with this: The AttractMode & Rocket Launcher Integration Pack

Attachment: View attachment AttractMode & Rocket Launcher Integration Plugins.zip

Purpose:
This Integration Pack will allow AttractMode to use RocketLauncher to manage the launching of emulators and will allow RocketLauncher to read AttractMode’s artwork and rom lists

Package Contents:
  • An AttractMode plugin for RocketLauncher
  • A RocketLauncher plugin for AttractMode
  • A RocketLauncherUI plugin for AttractMode
  • Systemslogos folder
  • An Installation Guide

How Does this Work?:
RocketLaucherUI Plugin
  • Used to read the list of emulators from AttractMode and show them in the systems list within RocketLaucher UI
  • Also reads AttractMode’s romlists ensuring it is possible to configure games if needed

AttractMode plugin
  • Once configured, it will create a file called “rl_integration.txt” every time a game is launched from AttractMode
  • The file contains the romlist entry and all the artwork paths for the currently launched game which is then read by the RocketLaucher plugin

RocketLaucher plugin
  • Is called every time a game is launched from AttractMode
  • Reads the “rl_integration.txt” file and uses the information to display artwork on the RocketLaucher fade and pause screens
 
Last edited:

djvj

Administrator
Staff member
Developer
Great job ArcadeBliss!

Anyone else using this FE that can test setting it up and report on success?

Sent from my SM-N910V using Tapatalk
 

progets

New member
RL Member
I'm glad to see some interest in this! I think RL is great and I use it with a few FE. Attract-Mode is the simplest, most under rated FE IMO.

I'll check it out.
 

progets

New member
RL Member
Thanks for the plugin ArcadeBliss!

I have downloaded and installed it and it appears to function properly. I'm not the best person to fully validate the plugin since I've been using RL with other frontends and have image paths defined in RLUI for HS which seemed to get used on my AM setup too. I've also somewhat hacked my RL install prior to your plugin to get the fade screen info by using the HS databases in RL since they contain the same rom names as my AM databases. I can tell that the load screens are slightly different when launching from AM vs HS because HS passed the "Rating" images to the fade screen and AM doesn't (for obvious reasons). I can also tell that the audit features in RLUI are using the AM database when it's set to be the default FE.

I'm not requesting any changes but a few things to note are that some AM layouts don't allow the system logo to be display if they have spaces. This conflicts with your approach that the "emulator" must match the RL name and causes my logos not to be displayed in layouts like uni_cade. I have also played around with HS themes in AM and that requires the "display" names to match the HS names which make a little more sense because then you can have multiple emulators for a given platform (this is somewhat moot since RL can handle this).

Overall great job! I'm glad to see someone has taken on this task.
 

djvj

Administrator
Staff member
Developer
Thanks for reporting on it progets.

I pushed the relevant files official so they can get some more attention.
 

ArcadeBliss

New member
RL Member
Thanks for the reply and verifing everything works.

Just for clarification, emulator names*do not*need to be the official RL system names. It should work as well. There will just be more config on the RL side if you are coming from using the Hyperspin DB and transitioning to the the AM plugin. (i am a long time hyperspin user wich is why the readme uses the RL system names. I hated maintaining the dbs for my games and the simple built-in filtering in AM won me over)

Regarding using emulator names instead of the display names, the emulator names are sent to RocketLauncher and they are used in the romlist even if the romlist contains multiple emulator games. If i used the display, the situation could arise causing the games not to load.

AM layouts not displaying the logo if it has a space are a quick fix. Let the. Layout developer know or i can have a look at it.

Sent from my Nexus 6P using Tapatalk
 
Last edited:

progets

New member
RL Member
I understand that I don't need to use the official RL names but that's what I have configured for several other frontends. Using something different would require massive changes in my build. I also hear your concerns about issues that may arise from using the "display" names and agree that the "emulator" names are the better approach.

You've done a great job ArcadeBliss, my comment was more of me thinking out loud (well actually in text).

I have posted additional information in the thread on the AM forum that isn't relevant here.

Thanks again to all that helped make this happen! I know ArcadeBliss did the work on this plugin but djvj, bleasby and brolly are the nuts and bolts of RL and provided help.
 

ArcadeBliss

New member
RL Member
Thanks once again for the feedback. I will continue to move AM further to support all the features (e.g. Ratings) that RL offers so we AM users are on parity with other frontends using RL. Cheers.
 
Last edited:

progets

New member
RL Member
AracdeBliss is on the money. He replied to my AM forum post in minutes and fixed my layout/theme issue immediately.

A couple of years ago HS seemed like the only way to go for my cabinet. RL makes it easy to bring AM, RetroFE, LaunchBox/BigBox and others in to the mix as they progress.
 

brolly

Administrator
Developer
You mean the paths or the label names?

Paths are only needed in case you want to add support to create/delete systems from RLUI since when deleting a system RLUI needs to know how to delete everything related to it in case the user wants to delete everything.
Label names are needed so you can customize the display in the Pause screen.
 

progets

New member
RL Member
So I know I can backup and restore the AM plugin but I notice it's listed in the latest update. Did you guys push this or will this revert to the old/default version?

I also noticed there is a LaunchBox plugin update too. I assume these are revised versions. Can anyone confirm?

Thanks

FYI - I didn't see anything in the "news" section about the updates and though the RLUI screen shows what files will be updated it doesn't show any version or create/modified date info.
 
Last edited:

ArcadeBliss

New member
RL Member
So I know I can backup and restore the AM plugin but I notice it's listed in the latest update. Did you guys push this or will this revert to the old/default version?

I also noticed there is a LaunchBox plugin update too. I assume these are revised versions. Can anyone confirm?

Thanks
Sorry i do not know

Sent from my Nexus 6P using Tapatalk
 

progets

New member
RL Member
Sorry i do not know

Sent from my Nexus 6P using Tapatalk

No worries. It will just take me longer to test.

I should and will backup the files being replaced. Sometimes the updates jump to newer a version of an emulator. This is great but sometimes it takes a while for me download and test them so a roll back plan is always good.
 
Last edited:
Top