I'm not sure if I am understanding correctly your use of the UserConfig variable, but changing a logo or color based on the list/system/game is possible via code in your layout using transitions:
Per List:
local logo = fe.add_image("default.png", 0, 100, 640, 360);
local text = fe.add_text("[Title]", 0, 25, fe.layout.width, 72);
function transition_callback(ttype, var, ttime)
{
switch ( ttype )
{
case Transition.ToNewList:
switch ( fe.list.name )
{
case "Mame":
logo.file_name = "mame.png";
break;
case "SNES":
logo.file_name = "snes.png";
break;
}
break;
}
}
fe.add_transition_callback("transition_callback" );
Per Game:
local logo = fe.add_image("default.png", 0, 100, 640, 360);
local text = fe.add_text("[Title]", 0, 25, fe.layout.width, 72);
function transition_callback(ttype, var, ttime)
{
switch ( ttype )
{
case Transition.ToNewSelection:
local selected = fe.game_info(Info.Emulator, var);
switch ( selected )
{
case "mame":
logo.file_name = "mame.png";
break;
case "zsnes":
logo.file_name = "snes.png";
break;
}
break;
}
}
fe.add_transition_callback("transition_callback" );
For either as shown above, you could use list info:
name - Get the name of the current display.
filter_index - Get/set the index of the currently selected filter. (see fe.filters for the list of available filters).
index - Get/set the index of the currently selected game.
Or game_info:
Info.Name
Info.Title
Info.Emulator
Info.CloneOf
Info.Year
Info.Manufacturer
Info.Category
Info.Players
Info.Rotation
Info.Control
Info.Status
Info.DisplayCount
Info.DisplayType
Info.AltRomname
Info.AltTitle
Info.Extra
Info.Favourite
Info.Tags
Info.PlayedCount
Info.PlayedTime
Info.FileIsAvailable
Info.System