Continuando porque nao coube, limite de 20000 caracteres aqui do forum ; )
Entendendo o xml do cabrio:XML, do inglês eXtensible Markup Language, é uma linguagem de marcação recomendada pela W3C para a criação de documentos com dados organizados hierarquicamente, tais como textos, banco de dados ou desenhos vetoriais. A linguagem XML é classificada como extensível porque permite definir os elementos de marcação.
Linguagem de Marcação?Linguagem de marcação é um agregado de códigos que podem ser aplicados a dados ou textos para serem lidos por computadores ou pessoas. Por exemplo, o HTML é uma linguagem de marcação para organizar e formatar um website, já o XML tem o mesmo conceito, mas para padronizar uma sequência de dados com o objetivo de organizar, separar o conteúdo e integrá-lo com outras linguagens, O XML tem como característica a portabilidade, por exemplo, um banco de dados pode escrever um arquivo XML para que outro banco consiga lê-lo.
No Cabrio o arquivo xml que ele gera no inicio da aplicação e um arquivo simples e generico, a partir desse arquivo simples vc vai acrescentando as configuraçoes que vc deseja como elementos de cor e formato de fontes e tamanho.
1 - Uma coisa que se tem que prestar a atenção e a hierarquia em que os dados vao aparecer, por exemplo, aprendemos na escola em matematica e algebra(em uma equação) que primeiro se resolve o que esta em parenteses, depois o colchetes e depois por ultimo as chaves ; ) nao é assim?? e aqui e parecido.
2 - Preste a atenção no inicio de uma entrada <entrada de exemplo> e no fim dela </fim da entrada de exemplo> 3 - O valor que vc quer passar para que seja registrado pelo aplicativo exemplo: <frame-rate>60</frame-rate>Ponto 1 - vc deve prestar atenção nessa hierarquia de exemplo;-------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------
<cabrio-config> -------------------------------------> inicio da configuração,observe que ha uma hierarquia aqui e que o campo <interface>
<interface> esta "dentro" de <cabrio-config> e que <full-screen>true</full-screen> esta"dentro"
<full-screen>true</full-screen> do campo <interface>(olhe os espaços a partir da borda da pagina)
<frame-rate>60</frame-rate>
<theme>MyTheme</theme>
<screen> ---------------------------------> inicio de uma configuração que vc quer passar para o campo screen(tela)
<width>640</width> --------------------> inicio de um valor que vc quer atribuir para a largura,altura,rotação e resolução datela
<height>480</height>
<rotation>90</rotation>
</screen> ----------------------------------> fim da configuração que vc quer passar apra o campo screen(tela)
<lookups> -----------------------------------> e assim vc atribui respeitando os seus grupos e subgrupos
...
</lookups>-----------------------------------> grupo lookups
... ---------------------------------------------> parametros do sub-grupo lookups
</interface>-----------------------------------> grupo interface
...-----------------------------------------------> parametros do sub-grupo interface
</cabrio-config> --------------------------------> fim da configuração
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------
Olhando no site do Cabrio, vc ve as sessoes e o que cada uma suporta, por exemplo, vc nao vai passar parametros de resolução e tamanho de tela no campo de screenshots ou videos, vc pode ate fazer isso e algumas ocasiao, mas em outras isso nao sera permitido gerando erro.
Para entender melhor e nao encher linguiça ; ) , vamos pegar um exemplo de uma arquivo simples e final de configuração do Cabrio que eu montei para ilustrar;
<?xml version="1.0" encoding="UTF-8"?> ------->gerado automaticamente
<cabrio-config> ---------------->inicio da configuração repare que esta
<cabrio-config
> <interface> ----------------> inicio da configuração do campo interface
<theme>
default</theme> -----------> entre os simbolos vc coloca o valor, o parametro que vc deseja, tema default
<full-screen>true</full-screen> -----------> opção de "tela cheia" ou "janela" valores que podem ser atribuidos true e false
<frame-rate>60</frame-rate> -----------> refresh rate 60 fps
<video-loop>true</video-loop> ----------> video loop recurso dessa versao do fork que reinicializa a visualização do video demo
<background> ------------> inicio do campo background ou seja a imagem da tela de fundo ou "wallpaper"
<image-file>/home/platao/cabrio/background/gameroom_1280x800.jpg
</image-file> --->localização da imagem
<rotation>0</rotation> -----------> nao queremos rotacionar essa imagem entao é 0
<transparency>18%</transparency> ------> transparencia da imagem de fundo
</background> ------------> fim do campo background e dos valores para background
<menu> -------------> Inicio do menu, aquele menu que aparece escrito "AllGames"
<image-file>/home/platao/cabrio/menu/menu-item.png</image-file> ------> imagem de fundo para ser usado esse menu
<orientation>landscape</orientation> ------->orientação pode ser portrait ou landscape retrato ou paisagem
<items-visible>5</items-visible> --------->item que serao mostrados se vc marcar 0 nao vao aparecer os menus
<font-scale>0.8</font-scale> -----> tamanho da font que vc quer usar, maior ou menor
<border>22%</border> ---> borda,se vc quer que as letras fiquem mais proximas ou mais afastadas das bordas da imagem
</menu> ----------> fim da configuração do item menu
<submenu> -----> aquele menu que quando vc clica no menu principal abre esse submenu para escolher o sistema
<image-file>/home/platao/cabrio/menu/submenu-item.png</image-file> --->mesma coisa da anterior, vc escolhe a imagem
</submenu> ------> fim do campo submenu
<font> ----> inicio do campo font, a fonte que vc vai definir para usar no aplicativo eu uso a ubuntu-sans-bold
<font-file>/home/platao/cabrio/data/fonts/Ubuntu-B.ttf</font-file> ---> definição da fonte que via ser usada
<size>55</size> ----> tamanho da fonte
<color>FFFF00</color> ---> cor que eu quero(amarelo) veja aque as cores->
http://www.oocities.org/tutorialdhtml/a12.htm </font> ----> fim da config para as fontes
<screen> -----> inicio do campo tela, tamnho e resolução
<width>1280</width> --------> resolução
<height>800</height>
<rotation>0</rotation> --------> rotação
<flip-horizontal>0</flip-horizontal>
<flip-vertical>0</flip-vertical>
</screen> ---------------> fim do campo screen
<hints> --------------> hints aqueles botoes arcade "piscando"
<primary-offset>-2.2</primary-offset> ----> posição mais afastado ou mais agrupado medido a partir do centro da tela
<secondary-offset>-1</secondary-offset>
<size>0.8</size> ----> tamanho e espaço entre eles
<spacing>0.2</spacing>
</hints> --------------> fim do campo dos "botoes"
<snap> ------> inicio do campo snaps, aquela snapshot de video que aparece no front end ou imagem estatica
<primary-offset>-2.5</primary-offset>
<secondary-offset>0</secondary-offset> -----> o centro da tela é 0 entao para a esquerda e para direita +1 e -1
<size>1.2</size> ----------> tamanho
<x-angle>-5</x-angle> ----> angulo x y z altura largura e profundidade
<y-angle>20</y-angle>
<z-angle>5</z-angle>
<fix-aspect-ratio>true</fix-aspect-ratio> ---> fixa a proporção de altura e largura
</snap> -----> fim do campo snap
<graphics> --------> inicio do campo graphics, qualidade e tamanho
<quality>high</quality>
<max-image-width>512</max-image-width>
<max-image-height>512</max-image-height>
</graphics> -----> fim do campo graphics
<controls> --------> inicio do campo controles(aquele que vc definiu na inicialização do cabrio, vc pode mudar aqui)
<event>
<name>up</name>
<value>up</value> -----> basicamente cima baixo esquerda e direita, start select e exit da aplicação
<device>
<type>keyboard</type>
<id>0</id>
</device>
</event>
<event>
<name>down</name>
<value>down</value>
<device>
<type>keyboard</type>
<id>0</id>
</device>
</event>
<event>
<name>left</name>
<value>left</value>
<device>
<type>keyboard</type>
<id>0</id>
</device>
</event>
<event>
<name>right</name>
<value>right</value>
<device>
<type>keyboard</type>
<id>0</id>
</device>
</event>
<event>
<name>select</name>
<value>1</value>
<device>
<type>keyboard</type>
<id>0</id>
</device>
</event>
<event>
<name>back</name>
<value>2</value>
<device>
<type>keyboard</type>
<id>0</id>
</device>
</event>
<event>
<name>quit</name>
<value>3</value>
<device>
<type>keyboard</type>
<id>0</id>
</device>
</event>
</controls>- -----> fechamento de todos os campos que foram abertos anteriormente la em cima
</interface> -----> fechamento de todos os parametros que firam abertos anteriormente la em cima
<emulators> ---------> inicio do campo emuladores introduzindo o mame
<emulator>
<name>mame</name> ---------> nome que vai aparecer
<display-name>MAME</display-name>
<executable>/home/platao/cabrio/mame64143/mame64</executable> -----> local do executavel mame64
<directory>/home/platao/cabrio/mame64143</directory> -------> diretorio do mame64
<platform>Arcade</platform> ---------> paltaforma
<params> --> parametros para o emulador funcionar
<param>
<name>-nowindow</name> -----------> nao rodar em janela
</param>
<param>
<name>-skip_gameinfo</name> ------> nao exibir informaçoes do game
</param>
<param>
<name>-switchres</name> -----> ajustar resolução
</param>
<param>
<name>-joystick</name> -------> usar joystick
</param>
</params>
</emulator> ------------> fim dos parametros para o emulador
</emulators>
<game-list> ----------------> inicio da lista de games
<name>Arcadelist</name> -----------------> nome da lista
<games> ---------------------> inicia da configuração dos games
<game> ---------------------->inicio de uma configuração de um game especifico
<name>1942</name> ------> game 1942
<platform>Arcade</platform>
<rom-image>1942.zip</rom-image> ---------> nome da rom que deve ser procurada na pasta roms
<images> -----------------> abriu campo images
<image> ----------------> abriu campo image
<type>logo</type> ------------> parametro "logo"
<image-file>1942b.png</image-file> -->logo que deve ser exibido na "roda" aquela roda 3D que aparece 1942
</image> -------------------> fechou o parametro image
<image> -----------------> abriu o parametro image(vai adicionar mais um item)
<type>screenshot</type> -----------------> adicionou parametro screenshot
<image-file>1942.jpg</image-file> ----------------> imagem screenshot que ele deve procurar
</image> ---------------> fechou image
<image> ----------------> abriu image
<type>background</type> ----------------> parametro background
<image-file></image-file> ---> aqui vc pode definir uma imagem de fundo para cada jogo se quiser
</image>
</images> -------------> fechou image e images
<video>1942.mp4</video> ----------> video de exemplo que aparece na apresentaçao do game
<categories> ----------> abre o campo category
<category>
<name>Genre</name> ---------> aqui o emulador procurar ao selecionar "shooter"
<value>Shooter</value>
</category>
</categories>
</game>
</games>
</game-list> ----------> finalizando tudo que foi aberto anteriormente
<locations> ---------> esse e importante porque indica para a aplicação onde ela vai
<location> procurar os videos,imagens, background. Entao vc nao precisa
<type>platform</type> colocar o caminho completo para cada imagem ou video de cada jogo
<directory>/home/platao/cabrio/platform</directory> e so indicar a pasta aqui e o nome da screenshot ou video no campo de
</location> cada jogo.
<location>
<type>video</type>
<directory>/home/platao/cabrio/video</directory>
</location>
<location>
<type>logo</type>
<directory>/home/platao/cabrio/logo</directory>
</location>
<location>
<type>screenshot</type>
<directory>/home/platao/cabrio/screenshots</directory>
</location>
<location>
<type>background</type>
<directory></directory>
</location>
</locations> -------> fechamos tudo
</cabrio-config> -------> fim da configuração
Resultado final;
https://www.youtube.com/watch?v=nh7J3iR3K_o&feature=youtu.behttp://img839.imageshack.us/img839/871/0s47.pnghttp://www.cabrio-fe.org/support/config.html