Bueno, voy a empezar analizando el attract.cfg línea por línea y podéis preguntar lo que queráis que yo contestaré
lo que haga falta lo que me de la gana.
Yo prefiero editar el attract.cfg directamente con un editor de texto (Notepad++) porque me resulta más rápido, pero todo se puede configurar desde dentro del Attract-Mode, en el menú de configuración, por defecto se accede con la tecla TAB.
Muy importante:Antes de seguir leyendo este hilo, deberíais leer primero este tutorial de Hechelion, sobre todo para no empezar la casa por el tejado, cosa a la que por aquí somos bastante aficionados: http://arcadespain.info/Foro/index.php?topic=4951.0Además, mi tutorial no va a explicar nada que ya esté explicado en el de Hechelion, así que vosotros mismos.Empezaremos con un attract.cfg de un solo sistema, el MAME, básico y sin complicaciones, y así explicaremos los apartados principales del attract.cfg:
display MAME
layout io pi speed
romlist MAME
in_cycle yes
in_menu no
filter All
filter Favourites
rule Favourite equals 1
param _aspecto si
param _buscar_metodo mostrar resultados
param _buscar_tecla custom1
param _info si
param _scanlines si
sound
sound_volume 100
ambient_volume 100
movie_volume 100
input_map
up Up
down Down
left Left
right Right
prev_letter A
displays_menu M
intro I
screenshot P
edit_game G
down Joy0 Down
left Joy0 Left
right Joy0 Right
up Joy0 Up
screen_saver S
next_letter Z
back Escape
back Joy0 Button2
select Return
select Joy0 Button1
configure Tab
configure Joy0 Button5
random_game X
random_game Joy0 Button9
add_favourite F
add_favourite Joy0 Button8
toggle_layout W
filters_menu Joy0 Button4
filters_menu N
prev_filter Num1
next_filter Num2
custom1 Space
custom2 L
custom3 R
custom4 LAlt
custom5 LShift
custom6 RShift
next_favourite RControl
prev_favourite LControl
toggle_mute Num0
prev_page Joy0 Button0
prev_page PageUp
next_page Joy0 Button3
next_page PageDown
replay_last_game Equal
toggle_movie H
default back exit
default up prev_game
default down next_game
default left prev_filter
default right next_filter
general
language es
exit_command
exit_message
default_font larabiefont
font_path
screen_saver_timeout 0
displays_menu_exit yes
hide_brackets no
startup_mode default
confirm_favourites yes
confirm_exit yes
mouse_threshold 10
joystick_threshold 75
window_mode fullscreen
filter_wrap_mode default
track_usage yes
multiple_monitors yes
smooth_images yes
selection_max_step 128
selection_speed_ms 51
move_mouse_on_launch yes
scrape_snaps no
scrape_marquees no
scrape_flyers no
scrape_wheels no
scrape_fanart no
scrape_videos no
scrape_overview yes
hide_console yes
video_decoder software
menu_prompt
menu_layout
display MAMEEs el sistema que vamos a emular y que nos va a salir directamente al arrancar Attract-Mode.
layout io pi speedTema (layout) que vamos a utilizar para el MAME, la imagen principal. En este caso
io pi speed, que es un sencillito tema en el que estoy trabajando para la pi que aún no he compartido con nadie.
romlist MAMELista de roms MAME.txt que estará situada dentro de /attract/romlists.
in_cycle yesEsta línea es para incluir o no el display actual en la rueda de displays, o sea para poder cambiar de display utilizando las teclas/botones "Previous Display" y "Next Display".
in_menu noEsta línea es para incluir el display en el Menú Principal o no. Cómo hacer un menú principal lo veremos más adelante con otro attract.cfg más complejo.
filter AllEsta es la opción de no filtrar nada, y sacar todos los juegos disponibles. Yo prefiero usarla así:
filter Todosfilter FavouritesEsta es la opción de sacar sólo los juegos que hemos marcado como favoritos. Yo prefiero usarla así:
filter Favoritosrule Favourite equals 1Esta es la regla (condición) que ejecuta la opción de filtros anterior. O sea los que tienen la marca [1] de Favoritos. Por eso es "regla Favoritos igual a 1".
Los nombres de los filtros se pueden poner en español o en esperanto, si se quiere, pero las reglas (rule), no, hay que dejarlas tal cual.
Los filtros se pueden utilizar para dos cosas, para filtrar las roms, evitando clones, etc. o para filtrar los juegos según las reglas que queramos poner nosotros mismos, habitualmente los géneros o categorías de los juegos.
Eso lo veremos más adelante con más detalle.
paramSon los parámetros/opciones que hemos definido en el layout que estamos utilizando.
En este caso, con este código dentro de layout.nut de
io pi speed:
//
// io pi speed
// Tema para el frontend Attract-Mode por iOtero
// Diseñado para todos los sistemas
// Julio de 2019
// Solo para pantallas con una relación de aspecto 4:3.
//
class UserConfig
{
</ label = "Color del texto",
help = "Elegir el color del texto: agua, amarillo, azul, blanco, gris, madera, naranja, negro, rojo, rosa, verde o aleatorio",
options = "agua,amarillo,azul,blanco,gris,madera,naranja,negro,rojo,rosa,verde,aleatorio",
order = 1,
per_display = "yes"
/> _color_texto = "blanco";
</ label = "Color destacado del texto",
help = "Elegir el color destacado del texto: agua, amarillo, azul, blanco, gris, madera, naranja, negro, rojo, rosa, verde o aleatorio",
options = "agua,amarillo,azul,blanco,gris,madera,naranja,negro,rojo,rosa,verde,aleatorio",
order = 2,
per_display = "yes"
/> _color_destacado = "verde";
</ label = "Scanlines",
help = "Utilizar scanlines (para simular el uso de una pantalla CRT) en las pantallas de los vídeos, o no.",
options = "si,no",
order = 3,
per_display = "yes"
/> _scanlines = "si";
</ label = "Tecla de búsqueda",
help = "Elegir la tecla que iniciará las búsquedas.",
options = "custom1,custom2,custom3,custom4,custom5,custom6",
order = 4,
per_display = "yes"
/> _buscar_tecla = "custom1";
</ label = "Resultados de la búsqueda",
help = "Elegir el método de búsqueda.",
options = "mostrar resultados,primera coincidencia",
order = 5,
per_display = "yes"
/> _buscar_metodo = "mostrar resultados";
}
local my_config = fe.get_config();
Las opciones de la class
UserConfig son bastante obvias, además yo las pongo línea a línea para verlas más claritas, pero os voy a explicar una opción que sí la necesita:
per displaySi esta opción no está o su valor está puesto en no, todo lo que se defina en my_config afectará por igual a todos y cada uno de los sistemas que utilicen este layout, pero si lo ponemos a yes, se podrá definir sistema por sistema.
Dicho de otra manera, suponiendo que en todos nuestros sistemas vamos a usar el layout
io pi speed, si ponemos per_display = "yes" podremos tener los textos de color blanco en MAME, de color negro en PSX, etc. Y si ponemos per_display = "no" o simplemente eliminamos la línea, MAME, PSX y todos los demás sistemas, tendran los textos del mismo color.
soundAquí suelen aparecer los niveles de volumen, pero se puede hacer más personalizado, utilizando un mp3 distinto para cada comando.
Por ejemplo, yo suelo definirlos así (Gracias
Bakojo84 por los mp3):
sound_volume 100
ambient_volume 100
movie_volume 100
back Back.mp3
up Up.mp3
down Down.mp3
left Left.mp3
right Right.mp3
select Select.mp3
prev_game Up.mp3
next_game Down.mp3
prev_page PageDown.mp3
next_page PageUp.mp3
prev_filter PrevFilter.mp3
next_filter NextFilter.mp3
exit Exit.mp3
exit_to_desktop ExitAttract.mp3
configure Configure.mp3
add_favourite ToggleFavorite.mp3
prev_favourite ToggleFavorite.mp3
next_favourite ToggleFavorite.mp3
intro Intro.mp3
edit_game EditGame.mp3
input mapAquí se definen las teclas y/o botones para manejar Attract-Mode.
generalAquí se definen las opciones generales de manejo de Attract-Mode.
Creo que Hechelion lo dejó bastante claro en el tutorial que os he linkado al principio de este post. Si tenéis alguna duda, preguntad, y si Hechelion se dejó algo, decírmelo, y os la explico línea por línea también.
Bueno, lo dejo aquí que me tengo que ir al dentista. Cuando regrese si no he vuelto muy jodido, o mañana, seguiré analizando el attract.cfg con un ejemplo algo más complejo.