Manual retroFE
Manual retroFE
Getting Started
For Windows users, and some Linux users, getting started with RetroFE is as simple as
following these steps:
Installation
(Note for linux users: Since Linux comes in many shapes and sizes, RetroFE users need to
compile and install their own RetroFE setup using bitbucket. The instructions for this can be
found here.)
After copying the RetroFE system to the directory of your choice, you're set to give your
installation a first test by running the retrofe executable in that directory. RetroFE comes
with a pre-installed Sega Genesis system with one game so you can check if the
installation went according to plan.
Configuration
The first configuration step is editing the RetroFE system configuration file
RetroFE/settings.conf. In here you configure the screen settings, global theme, base paths,
etc.
The second configuration step is editing the RetroFE controls file RetroFE/controls.conf. In
here you configure the keys used to control the RetroFE front-end. Note that the default
select key is space, and not enter as some people expected.
Adding Collections
RetroFE starts with two (almost empty) collections, but more can be added easily. As an
example, let's set up the Nintendo Entertainment System collection. First, enter the
RetroFE/collections directory, and create an empty collection using the following command:
../retrofe -createcollection “Nintendo Entertainment System”
Download a NES romset from your favourite source, and place the roms in the
RetroFE/collections/Nintendo Entertainment System/roms directory. Download a device
image, logo, and video for the system, and place the device.png, logo.png, and video.mp4
files in the RetroFE/collections/Nintendo Entertainment System/system_artwork directory.
Download games artwork (artwork_front, logo's, screenshots, titleshots, videos, etc.) from
your favourite art source, and place them in the RetroFE/collections/Nintendo
Entertainment System/medium_artwork directory.
launcher = NES
The first line defines the ROM file extention as .nes; this should match the file extentions in
your RetroFE/collections/Nintendo Entertainment System/roms directory. The second line
defines the name of the launcher used for this collection. Before the collection can be used,
this launcher needs to be configured:
executable = mame
As an example: if RetroFE starts the game Willow (USA).nes, this launcher will execute the
command:
The last step is to add the newly created collection to the main menu by editing
RetroFE/collections/Main/menu.txt, and add the following line:
When this is done, your newly added collection is ready for testing by running the retrofe
executable RetroFE/retrofe.
Global settings.conf
The global settings.conf file, located in your RetroFE directory, defines how your overall
system operates. See below for a list of configuration parameters that can be specified for
your global settings.conf.
Controls
The controls.conf file, located in your RetroFE directory, contains the controls for your
RetroFE front-end. Multiple keys can be assigned to a single action, separated by a ,.
Example:
Up = Keypad 8, Up
This will assign both the Keypad 8 (up arrow on your keypad) and the up arrow to
RetroFE's Up control.
Control Description
up Scrolls menu up (for vertical menus)
down Scrolls menu up (for vertical menus)
left Scrolls menu left (for horizontal menus)
right Scrolls menu right (for horizontal menus)
pageUp Scrolls menu back by a page
pageDown Scrolls menu forward by a page
letterUp Scrolls to the previous item in the alphabet
letterDown Scrolls menu next item in the alphabet
Control Description
collectionUp Scrolls to the previous collection. Will enter that collection based
on enterOnCollection.
collectionDown Scrolls menu next collection. Will enter that collection based on
enterOnCollection.
addPlaylist Adds a game to the favorites playlist
removePlaylist Removes a game from the favorites playlist
nextPlaylist Switches to the next playlist.
prevPlaylist Switches to the previous playlist.
cyclePlaylist Switches to the next playlist in the cyclePlaylist set. Still functional,
but has been replaced by nextCyclePlaylist.
nextCyclePlaylist Switches to the next playlist in the cyclePlaylist set.
prevCyclePlaylist Switches to the previous playlist in the cyclePlaylist set.
random Selects a random game
select Selects the active menu item
back Leaves current menu
quit Exits the frontend
deadZone Defines the dead zone for analog inputs
Controllers/joysticks are supported in versions 0.6.x and later.
Gamepad/Joystick codes
Keycode Description
joyXButtonY Gamepad button (X=joypad number, Y=button number)
joyXHatYLeftUp Gamepad hat direction (X=joypad number, Y=hat number)
joyXHatYLeft Gamepad hat direction (X=joypad number, Y=hat number)
joyXHatYLeftDown Gamepad hat direction (X=joypad number, Y=hat number)
joyXHatYUp Gamepad hat direction (X=joypad number, Y=hat number)
joyXHatYDown Gamepad hat direction (X=joypad number, Y=hat number)
joyXHatYRightUp Gamepad hat direction (X=joypad number, Y=hat number)
joyXHatYRight Gamepad hat direction (X=joypad number, Y=hat number)
joyXHatYRightDown Gamepad hat direction (X=joypad number, Y=hat number)
joyXAxis0+ First POV stick, first axis positive direction (X=joypad
number)
joyXAxis0- First POV stick, first axis negative direction (X=joypad
Keycode Description
number)
joyXAxis1+ First POV stick, second axis positive direction (X=joypad
number)
joyXAxis1- First POV stick, second axis negative direction (X=joypad
number)
joyXAxis2+ Second POV stick, first axis positive direction (X=joypad
number)
joyXAxis2- Second POV stick, first axis negative direction (X=joypad
number)
joyXAxis3+ Second POV stick, second axis positive direction (X=joypad
number)
joyXAxis3- Second POV stick, second axis negative direction (X=joypad
number)
If X is omitted, RetroFE will accept input from all controllers. (version 0.8.13+)
Mouse Codes
Keycode Description
mouseButtonleft the left mouse button
mouseButtonMiddle the middle mouse button
mouseButtonRight the right mouse button
mouseButtonX1 the X1 mouse button
mouseButtonX2 the X2 mouse button
Keyboard Codes
Keycode Description
0
1
2
3
4
5
6
7
Keycode Description
8
9
A
AC Back the Back key (application control keypad)
AC Bookmarks the Bookmarks key (application control keypad)
AC Forward the Forward key (application control keypad)
AC Home the Home key (application control keypad)
AC Refresh the Refresh key (application control keypad)
AC Search the Search key (application control keypad)
AC Stop the Stop key (application control keypad)
Again the Again key (Redo)
AltErase Erase-Eaze
'
Application the Application / Compose / Context Menu (Windows) key
AudioMute the Mute volume key
AudioNext the Next Track media key
AudioPlay the Play media key
AudioPrev the Previous Track media key
AudioStop the Stop media key)
B
\ Located at the lower left of the return key on ISO keyboards and
at the right end of the QWERTY row on ANSI keyboards.
Produces REVERSE SOLIDUS (backslash) and VERTICAL
LINE in a US layout, REVERSE SOLIDUS and VERTICAL
LINE in a UK Mac layout, NUMBER SIGN and TILDE in a
UK Windows layout, DOLLAR SIGN and POUND SIGN in a
Swiss German layout, NUMBER SIGN and APOSTROPHE in
a German layout, GRAVE ACCENT and POUND SIGN in a
French Mac layout, and ASTERISK and MICRO SIGN in a
French Windows layout.
Backspace
BrightnessDown the Brightness Down key
BrightnessUp the Brightness Up key
C
Keycode Description
Calculator the Calculator key
Cancel
CapsLock
Clear
Clear / Again
,
Computer the My Computer key
Copy
CrSel
CurrencySubUnit the Currency Subunit key
CurrencyUnit the Currency Unit key
Cut
D
DecimalSeparator the Decimal Separator key
Delete
DisplaySwitch display mirroring/dual display switch, video mode switch
Down the Down arrow key (navigation keypad)
E
Eject the Eject key
End
=
Escape the Esc key
Execute
ExSel
F
F1
F10
F11
F12
F13
F14
Keycode Description
F15
F16
F17
F18
F19
F2
F20
F21
F22
F23
F24
F3
F4
F5
F6
F7
F8
F9
Find
G
` Located in the top left corner (on both ANSI and ISO
keyboards). Produces GRAVE ACCENT and TILDE in a US
Windows layout and in US and UK Mac layouts on ANSI
keyboards, GRAVE ACCENT and NOT SIGN in a UK
Windows layout, SECTION SIGN and PLUS-MINUS SIGN in
US and UK Mac layouts on ISO keyboards, SECTION SIGN
and DEGREE SIGN in a Swiss German layout (Mac: only on
ISO keyboards), CIRCUMFLEX ACCENT and DEGREE
SIGN in a German layout (Mac: only on ISO keyboards),
SUPERSCRIPT TWO and TILDE in a French Windows layout,
COMMERCIAL AT and NUMBER SIGN in a French Mac
layout on ISO keyboards, and LESS-THAN SIGN and
GREATER-THAN SIGN in a Swiss German, German, or
French Mac layout on ANSI keyboards.
H
Keycode Description
Help
Home
I
Insert insert on PC, help on some Mac keyboards (but does send code
73, not 117)
J
K
KBDIllumDown the Keyboard Illumination Down key
KBDIllumToggle the Keyboard Illumination Toggle key
KBDIllumUp the Keyboard Illumination Up key
Keypad 0 the 0 key (numeric keypad)
Keypad 00 the 00 key (numeric keypad)
Keypad 000 the 000 key (numeric keypad)
Keypad 1 the 1 key (numeric keypad)
Keypad 2 the 2 key (numeric keypad)
Keypad 3 the 3 key (numeric keypad)
Keypad 4 the 4 key (numeric keypad)
Keypad 5 the 5 key (numeric keypad)
Keypad 6 the 6 key (numeric keypad)
Keypad 7 the 7 key (numeric keypad)
Keypad 8 the 8 key (numeric keypad)
Keypad 9 the 9 key (numeric keypad)
Keypad A the A key (numeric keypad)
Keypad & the & key (numeric keypad)
Keypad @ the @ key (numeric keypad)
Keypad B the B key (numeric keypad)
Keypad Backspace the Backspace key (numeric keypad)
Keypad Binary the Binary key (numeric keypad)
Keypad C the C key (numeric keypad)
Keypad Clear the Clear key (numeric keypad)
Keypad ClearEntry the Clear Entry key (numeric keypad)
Keycode Description
Keypad : the : key (numeric keypad)
Keypad , the Comma key (numeric keypad)
Keypad D the D key (numeric keypad)
Keypad && the && key (numeric keypad)
\| \| key (numeric keypad)
Keypad Decimal the Decimal key (numeric keypad)
Keypad / the / key (numeric keypad)
Keypad E the E key (numeric keypad)
Keypad Enter the Enter key (numeric keypad)
Keypad = the = key (numeric keypad)
Keypad = (AS400) the Equals AS400 key (numeric keypad)
Keypad ! the ! key (numeric keypad)
Keypad F the F key (numeric keypad)
Keypad > the Greater key (numeric keypad)
Keypad # the # key (numeric keypad)
Keypad the Hexadecimal key (numeric keypad)
Hexadecimal
Keypad { the Left Brace key (numeric keypad)
Keypad ( the Left Parenthesis key (numeric keypad)
Keypad < the Less key (numeric keypad)
Keypad MemAdd the Mem Add key (numeric keypad)
Keypad MemClear the Mem Clear key (numeric keypad)
Keypad MemDivide the Mem Divide key (numeric keypad)
Keypad the Mem Multiply key (numeric keypad)
MemMultiply
Keypad MemRecall the Mem Recall key (numeric keypad)
Keypad MemStore the Mem Store key (numeric keypad)
Keypad the Mem Subtract key (numeric keypad)
MemSubtract
Keypad - the - key (numeric keypad)
Keypad \* the \* key (numeric keypad)
Keypad Octal the Octal key (numeric keypad)
Keycode Description
Keypad % the Percent key (numeric keypad)
Keypad . the . key (numeric keypad)
Keypad + the + key (numeric keypad)
Keypad +/- the +/- key (numeric keypad)
Keypad ^ the Power key (numeric keypad)
Keypad } the Right Brace key (numeric keypad)
Keypad ) the Right Parenthesis key (numeric keypad)
Keypad Space the Space key (numeric keypad)
Keypad Tab the Tab key (numeric keypad)
key (numeric
keypad)
Keypad XOR the XOR key (numeric keypad)
L
Left Alt alt, option
Left Ctrl
Left the Left arrow key (navigation keypad)
[
Left GUI windows, command (apple), meta
Left Shift
M
Mail the Mail/eMail key
MediaSelect the Media Select key
Menu
-
ModeSwitch I'm not sure if this is really not covered by any of the above, but
since there's a special KMOD_MODE for it I'm adding it here
Mute
N
Numlock the Num Lock key (PC) / the Clear key (Mac)
O
Oper
Keycode Description
Out
P
PageDown
PageUp
Paste
Pause the Pause /
Break key
.
Power The USB document says this is a status flag, not a physical key -
but some Mac keyboards do have a power key.
PrintScreen
Prior
Q
R
Right Alt alt gr, option
Right Ctrl
Return the Enter key (main keyboard)
Return
Right GUI windows, command (apple), meta
Right the Right arrow key (navigation keypad)
]
Right Shift
S
ScrollLock
Select
;
Separator
/
Sleep the Sleep key
Space the Space Bar key(s)
Stop
Keycode Description
SysReq the SysReq key
T
Tab the Tab key
ThousandsSeparator the Thousands Separator key
U
Undo
Up the Up arrow key (navigation keypad)
V
VolumeDown
VolumeUp
W
WWW the WWW/World Wide Web key
X
Y
Z
# ISO USB keyboards actually use this code instead of 49 for the
same key, but all OSes I've seen treat the two codes identically.
So, as an implementor, unless your keyboard generates both of
those codes and your OS treats them differently, you should
generate SDL_SCANCODE_BACKSLASH instead of this
code. As a user, you should not rely on this code because SDL
will never generate it with most (all?) keyboards.
&
*
@
^
:
$
!
>
#
(
<
Keycode Description
%
+
?
)
_
About collections
A collection defines a set of games or menu level that generally have a common purpose,
e.g. “Nintendo Entertainment System” or “Consoles”. RetroFE generally supports 3 types of
collections:
1. (Sub-)Menu collections
2. ItemGame collections
3. ItemSub/Merged collections
These types can be combined in one collection though, by simply having the required
elements of more types in one collection.
Default collections
The basic RetroFE installation leaves you with 2 main folders but you will be able to add
many other as you wish later on :
Folder Description
_common Shared icons and other artworks used for the categories, manufacturers, etc
Folder Description
Main Default collection used for the main menu to work properly and containing the
key file to be edited once you have created extra collections so they can be
enabled on your screen (menu.txt)
PS: In the installation you downloaded, some pre configured sets may have been added for
your convenience, they will not contain the roms of course, this is something you need to
sort out on your own.
Replace “Nintendo Entertainment System” with the collection name of your choosing.
This will create a “Nintendo Entertainment System Folder”, create the rom folder, artwork
folders and default configuration files. More details on the other steps in the detailed setup
section
PS: To enable your new collection in the interface menu, you will need to add the name of
the collection in the menu.txt file stored in the Main folder
include.txt If not empty, include only those files to show on the list, if
empty, all files in ROM folder will be included. This file
must contain one game per line (without the file
extension).
exclude_all.txt List of ROMs to exclude from the all playlist. This file must
contain one game per line (without the file extension).
medium_artwork/artwork_back Default location to search for flyer, box and case backs
medium_artwork/artwork_front Default location to search for flyer, box and case fronts
File / Folder Description
(Sub)menu
A menu contains a list of other collections, and can be defined via the menu.txt file. When
you select that item in the frontend, it will load that collection in a submenu. RetroFE allows
you to combine games and collections in a single menu, by using both a menu.txt file and a
games collection. A (sub-)menu collection is used to create a hierarchical level within your
menu structure, e.g. Main→Consoles→Nintendo Entertainment System.
Atari 2600
Atari 5200
Atari 7800
MAME
Note that for each item specified, a directory with an identical name (case sensitive) must
exist in your collections folder, so e.g. /collections/Super Nintendo Entertainment System/.
Older versions of RetroFE used a menu.xml file in stead of a menu.txt file. For legacy
support, such files are still supported. Below is an example for a basic
collections/<collection name>/menu.xml file:
<menu>
</menu>
As you can see: using the menu.txt file requires far less typing. :)
Games collection
Games collections are collections consisting of a list of games, e.g. for a certain system like
“Nintendo Entertainment System”. It uses the contents of the rom directory in combination
with the include.txt and exclude.txt file in the following manner:
Sub/Merged collection
Sub collections contain a subset of other collections, e.g. Capcom Play System I can be set
up as a sub-set of Arcade. The sub-collection is defined by a <collection>.sub file, e.g.
“Capcom Play System I.sub”.
Also, by using multiple .sub files you can also create a merged collection, e.g. all Contra
games from different systems. You could have a “Nintendo Entertainment System.sub” file
containing all the Contra games from the NES, and a “Super Nintendo Entertainment
System.sub” file containing all the Contra games from the SNES. RetroFE will merge these
collections into one.
A .sub file is simply a text file containing a list of game names, similar to the include.txt file,
but rom file, art files, etc. will be pulled from the collection it refers to.
Example: You have a MAME or Arcade collection, and wish to add a “Capcom Play System
III” sub-collection.
jojoba
redearth
sfiii
sfiii2
sfiii3
5. Add the “Capcom Play System III” to your Main's menu.txt like you would with any
other collection. Enjoy your new sub collection. :)
PS: If a .sub file is empty, it will use merge that entire collection according to the rules
defined above for Games collections.
Playlists
RetroFE supports playlists, a sort of sub collection within a collection. You can step through
them using the previous/next playlist keys defined in your controls.conf file. You can use
this feature to e.g. show a list of all games from a certain manufacturer or a certain genre.
Playlists are defined via txt files in the playlists directory of your collection, and like
include.txt files simply contain a list of the games you want in that playlist. If a game is
pulled from another collection via a sub/merged collection (.sub file), use _<collection
name>:<game name>. The asterisk (*) can be used in stead of the game name to include
an entire collection.
Example: playlists/example.txt
Super Turrican
This defines a playlist called example, containing the Super Mario World game from the
Super Nintendo Entertainment System collection, Super Mario Bros from the Nintendo
Entertainment System collection, and Super Turrican from this collection (available in the
roms section and/or defined via the include.txt file).
Property Description
executable Path of where the executable exists
arguments Arguments to pass when executing the launcher (i.e. ROM name)
executable = D:/Emulators/Nestopia/nestopia.exe
arguments = "%ITEM_FILEPATH%"
%ITEM_FILEPATH% is a reserved variable name. See the variables table below for other
variables that may be used. Also note the quotes around “%ITEM_FILEPATH%” to help not
confuse the executable from thinking that an item with spaces as multiple arguments.
Assuming that “Super Mario Bros” was the selected item, the frontend will attempt to
execute:
PS: You can also use relative paths (relative to the root folder of RetroFE)
executable = ../Emulators/Nestopia/nestopia.exe
arguments = "%ITEM_FILEPATH%"
Launcher variables
# Have fceux load a save state automatically for the ROM when started
executable = D:/Emulators/fceux/fceux.exe
arguments = "%ITEM_FILEPATH%" -loadstate
"%ITEM_DIRECTORY%/%ITEM_NAME%.fcs"
Directory Structure
Path Description
/layouts/<layout name>/ Folder to store all image files for a particular asset. i.e.
<layout name> = “Default 16×9“
/layouts/<layout Splash screen to show at startup
name>/splash.xml
/layouts/<layout Main layout file to show when frontend is loaded
name>/layout.xml
An example of a layout An example of a layout.xml
The global settings.conf file contains the default layout used by RetroFE. It is however
possible to give a collection a completely different layout by adding the layout.xml and
layout artwork to the /layouts/<layout name>/collections/<collection name>/layout/
directory. A splash.xml is not required/used for a collection's layout. This way you can give
each collection a completely different look and feel.
RetroFE will first search for a layout XML file that matches the screen ratio, so e.g. layout
16×9.xml or layout 4×3.xml. If that file is not found, it will default to layout.xml.
<layout>
<sound/>
<menu/>
<video/>
<image/>
<text/>
<reloadableAudio/>
<reloadableVideo/>
<reloadableImage/>
<reloadableText/>
<reloadableScrollingText/>
</layout>
<layout> Parameters
The <layout> tag can use the following parameters:
width The virtual width to use for this layout. This will be scaled
automatically by the frontend if the screen resolution is different.
height The virtual height to use for this layout. This will be scaled
automatically by the frontend if the screen resolution is different.
loadFontSize The size (quality) of the font to load. Lower font sizes is more blurred,
Higher font sizes are a little more pixelated. It is best to set this to the
same value as fontSize most used in the layout.
font Location of the font (relative to the layout folder).
fontColor Default RGB color of the font (in hex, i.e. “6699AA”).
fontSize Default font size of to display if not specified by a component.
minShowTime Minimum amount of time (in seconds) to show the current layout
(only applicable in splash.xml).
Example:
<sound> Parameters
The <sound> tag can use the following parameters:
<sound>tag parameters
Tag Description
type triggers on the following events: "load" (page load), "unload" (page exit),
"highlight" (scroll), "select" (entering game/sub-menu).
src Location of the sound file (relative to the layout folder).
Example:
<menu> Parameters
The <menu> tag is used to define a menu structure, and uses the following structure:
<menu>
<itemDefaults/>
<item/>
</menu>
<video> Parameters
The <video> tag supports the following parameter:
<image> tag parameters
src The location of the video to display (relative to the location of the active
layout folder)
volume Audio volume of the video: 0 = mute, 1=100% volume
Example:
<image> Parameters
The <image> tag supports the following parameter:
<text> Parameters
The <text> tag supports the following parameters:
<reloadableText> Parameters
The <reloadableText> tag can be used to display textual information about the selected
item, and supports the following parameters:
The type=“time” allows for an additional parameter: timeFormat, which follows the
C++ strftime abilities.
<reloadableScrollingText> Parameters
The <reloadableScrollingText> tag can be used to display textual information about the
selected item, loaded from a text file, and supports the following parameters:
Example:
General Parameters
The other tags all support a general set of parameters:
Tag Description
x X coordinate of where to place the component
y Y coordinate of where to place the component
xOffset Relative X offset of how many pixels to shift the object from x (x
+ xOffset)
yOffset Relative Y offset of how many pixels to shift the object from y (y
+ yOffset)
xOrigin X offset on image to use as the pin point for placement. Supports
the special settings “left”, “center”, and “right”.
yOrigin Y offset on image to use as the pin point for placement. Supports
the special settings “top”, “center”, and “bottom”.
alpha 0 = 0% visible, 0.5=50% visible, 1=100% visible
angle Angle to rotate image, in degrees
width Width of the component. Image will be scaled appropriately if not
specified. Supports the special settings “stretch”.
height Height of the component. Image will be scaled appropriately if not
specified. Supports the special settings “stretch”.
minWidth Minimum width to allow the image to be (if scaling is needed)
minHeight Minimum height to allow the image to be (if scaling is needed)
maxWidth Maximum width to allow the image to be (if scaling is needed)
Tag Description
maxHeight Maximum height to allow the image to be (if scaling is needed)
backgroundColor Fill the component with a background color
backgroundAlpha Background color transparency: 0 = 0% visible, 0.5=50% visible,
1=100% visible
reflection Location of the reflection compared to the original image: top,
bottom, left, right. Can be combined to show multiple reflections,
e.g. topleft, leftright, topbottomright.
reflectionDistance Distance between the reflection and the original image in pixels.
reflectionScale Scale in vertical (reflection top/bottom) or horizontal (reflection
left/right) direction of the reflection compared to the original
image.
reflectionAlpha Transparency of the reflection compared to the original image: 0 =
0% visible, 0.5=50% visible, 1=100% visible
containerX X coordinate of the cropping container.
containerY Y coordinate of the cropping container.
containerWidth Width of the cropping container.
containerHeight Height of the cropping container.
layer Layer on which the item should be displayed: 0 = back, 19 = front
monitor Monitor number on which the element should be displayed,
starting from monitor 0.
menuScrollReload Reload the art while the menu is scrolling when set to yes/true
RetroFE supports 20 layers of images (0-19) to allow items to overlap in a controlled
fashion.
All these paremeters can also be used in animations to create an even more beautiful
layout experience. These animations use the following syntax:
<action type>
</set>
</on<action_type>
It is possible to put multiple animates in the same set; these animations will happen at the
same time. It is possible to put multiple sets in the same action type: these animations will
happen in sequence. It is possible to omit the from attribute; this will animate from the
current value. It is possible to use type=“nop” (no operation), without any other attributes
(<animate type=“nop”/>. This can e.g. be used to delay an animation by preceding it with a
set containing just a “nop” animation.
action types
action types
onEnter Action happens on entering RetroFE.
onExit Action happens on exiting RetroFE.
onIdle Action happens continuously while no other animations are active
for that object.
onMenuIdle Action happens continuously while the menu isn't scrolling and no
other animations are active for that object.
onMenuScroll Action happens when the menu starts scrolling.
onHighlightEnter Action happens when the item is being selected.
onHighlightExit Action happens when item is no longer selected.
onMenuEnter Action happens on entering a menu.
onMenuExit Action happens on exiting a menu.
onGameEnter Action happens on starting a game.
onGameExit Action happens on quitting a game.
onPlaylistEnter Action happens on entering a playlist.
onPlaylistExit Action happens on exiting a playlist.
onMenuJumpEnter Action happens on entering a jump in the menu (next/previous
letter/page, random).
onMenuJumpExit Action happens on exiting a jump in the menu (next/previous
letter/page, random).
onAttractEnter Action happens on entering attract mode.
onAttract Action happens continuously while in attract mode.
onAttractExit Action happens on exiting attract mode.
The action type can be combined with a menuIndex attribute. This will force RetroFE to
only activate the animation for the specified menu index, with 0 being the main menu.
Some examples:
menuIndex Activated on
menuIndex=“0” Activate the animation on the main menu.
menuIndex=“1” Activate the animation on first submenu.
menuIndex=”!0” Activate the animation on every index except for the main menu.
menuIndex=“>1” Activate the animation on menu index 2, 3, 4, …
menuIndex=“<2” Activate the animation on menu index 0 and 1.
menuIndex=“i” Activate the animation when the index of the menu corresponds
with the current menu index. This can only be used for animations
menuIndex Activated on
for menu items.
RetroFE supports the following algorithms:
action algorithms
easeInquadrati easeOutquadrati easeInoutquadrati easeIncubic easeOutcubic
c c c
easeInoutcubic easeInquartic easeOutquartic easeInoutquar easeInquintic
tic
easeOutquintic easeInoutquintic easeInsine easeOutsine easeInoutsin
e
easeInexponent easeOutexponen easeInoutexponen easeIncircular easeOutcircu
ial tial tial lar
easeInoutcircul linear
ar
Example:
<onIdle>
<set duration="2">
</set>
<set duration="1">
</set>
</onIdle>
</image>
Mode Attribute
Several parameters allow for a mode attribute: system, common, layout, systemlayout, and
commonlayout. This attribute can be omitted. This attribute has the following effects:
Mode system and systemlayout use the information from the collection you're in rather than
the selected item.
Mode layout, systemlayout, and commonlayout use the art in the layouts/<layout
name>/collections/<collection name>/ directory rather than collections/<collection name>/
directory.
The item path also depends on whether the selected item is a collection or a game; it will
select the first found file.
Example:
You're in the Main collection, have the SNES collection selected, and are displaying a
reloadableImage of type “logo”:
No mode used:
collections/Main/medium_artwork/logo/SNES.png
collections/SNES/system_artwork/logo.png
collections/Main/medium_artwork/logo/default.png
Mode layout:
layouts/<layout name>/collections/Main/medium_artwork/logo/SNES.png
layouts/<layout name>/collections/SNES/system_artwork/logo.png
layouts/<layout
name>/collections/Main/medium_artwork/logo/default.png
collections/Main/medium_artwork/logo/Main.png
collections/Main/system_artwork/logo.png
collections/Main/medium_artwork/logo/default.png
layouts/<layout name>/collections/Main/medium_artwork/logo/Main.png
layouts/<layout name>/collections/Main/system_artwork/logo.png
layouts/<layout name>/collections/Main/system_artwork/default.png
collections/_common/medium_artwork/logo/SNES.png
collections/_common/medium_artwork/logo/default.png
layouts/<layout
name>/collections/_common/medium_artwork/logo/SNES.png
layouts/<layout
name>/collections/_common/medium_artwork/logo/default.png
Example:
You're in the SNES collection, have the 1942 game selected, and are displaying a
reloadableImage of type “logo”:
No mode used:
collections/SNES/medium_artwork/logo/1942.png
collections/SNES/medium_artwork/logo/default.png
Mode layout:
layouts/<layout name>/collections/SNES/medium_artwork/logo/1942.png
layouts/<layout
name>/collections/SNES/medium_artwork/logo/default.png
Mode system:
collections/SNES/system_artwork/logo.png
Mode systemlayout:
layouts/<layout name>/collections/SNES/system_artwork/logo.png
collections/_common/medium_artwork/logo/1942.png
collections/_common/medium_artwork/logo/default.png
layouts/<layout
name>/collections/_common/medium_artwork/logo/1942.png
layouts/<layout
name>/collections/_common/medium_artwork/logo/default.png
Example:
You're in the SNES collection by Nintendo, have the 1942 game by Capcom selected, and
are displaying a reloadableImage of type “manufacturer”:
No mode used:
collections/SNES/medium_artwork/manufacturer/Capcom.png
collections/SNES/medium_artwork/manufacturer/default.png
Mode layout:
layouts/<layout
name>/collections/SNES/medium_artwork/manufacturer/Capcom.png
layouts/<layout
name>/collections/SNES/medium_artwork/manufacturer/default.png
Mode system:
collections/SNES/system_artwork/Nintendo.png
Mode systemlayout:
layouts/<layout name>/collections/SNES/system_artwork/Nintendo.png
Mode common:
collections/_common/medium_artwork/manufacturer/Capcom.png
collections/_common/medium_artwork/manufacturer/default.png
Mode commonlayout:
layouts/<layout
name>/collections/_common/medium_artwork/manufacturer/Capcom.png
layouts/<layout
name>/collections/_common/medium_artwork/manufacturer/default.png
menu.txt
Files in the roms directory
include.txt
exclude.txt
<collection name>.sub
More information about this can be found in the collections section of this documentation.
As can be seen though: RetroFE does not use the meta xml files to create these lists!
The files in the meta directory are used for one thing only: to fill the meta.db database. This
meta.db in turn is used to fill in the extra information such as full title, genre, rating, score,
etc. in the created menu item list for games. Extra information for collections is pulled from
the settings.conf and/or info.conf file of the collection.
manufacturer = Konami
Information in these files will supersede information from the meta database when the
overwriteXML parameter in the global settings.conf file is set.
<name>
<description>
<cloneof>
<manufacturer>
<developer>
<year>
<genre>
<rating>
<score>
<players>
<ctrltype>
<buttons>
<joyways>
emuArc (super)dat files
emuArc (super)dat files are xml files as supported by the emuArc group. RetroFE supports
the following tags (, and will ignore the rest):
<rootdir> This subtag of the header tag defines the collection name used for the meta
database.
<game>
<description>
<publisher>
<developer>
<year>
<genre>
<ratings>
<score>
<players>
<cloneof>
MAME xml files
MAME xml files are the output of the -listxml output of MAME.