Compilando o Mame no Ubuntu, faça vc mesmo!!!Compilando;Ha sempre a opção de compilar a partir dos fontes em
http://mamedev.org (site oficial) recomendo trabalhar com fontes estáveis "liberados" em vez de "updates" que são versões de desenvolvimento.
Devemos obter o link do arquivo ZIP a partir da página
http://mamedev.org/release.htmlCrie uma pasta na sua home com o nome de
fontes e mova o arquivo baixado mame0145s.zip para essa pasta e extraia, depois de extraindo o arquivo baixado teremos outro arquivo compactado, com o nome de mame.zip, novamente use o descompactador de arquivos e finalmente tera a pasta mame como na imagem;
Vamos ate o terminal;
cd fontes/mame
A o rodar o
make inicia-se a compilação, se vc ja tentou compilar anteriormente e melhor remover vestigios da compilação anterior com um
make clean.
*
Dê preferencia ao Ubuntu 10.04 em maquina virtual para a compilação.**Em vez de um único comando make, você pode usar o make -j3 para tirar proveito do seu processador multi-core.
Pacotes Necessarios;
sudo aptitude install build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev libsdl-ttf2.0-dev libsdl-ttf2.0
Caso desejar, aproveite para dar uma olhada na documentação;
-
http://mamedev.org/devwiki/index.php?title=Frequently_Asked_Questions -
http://mamedev.org/devwiki/index.php/FAQ:Performance-
http://mamedev.org/devwiki/index.php/FAQ:General_Games-
http://mamedev.org/devwiki/index.php/FAQ:GamesE tera o executavel Mame funcionando, agora e so gerar o XML dessa forma;
./mame -listxml > mameinfo.xml
*Vc pode deixar o Wha!cade gerar esse arquivo.
Para gerar o mame.ini nessa versao compilada;
./mame -createconfig
Para editar o mame.ini criado vc pode usar o vim,pico ou o gedit;
gedit mame.ini
Customizando a sua compilação do Mame;Modo 1 - Removendo somente a tela de "Warning";Va ate;
/src/emu/machine.c
Clique na lupa no canto superior direito na sua janela e no campo de busca procure por;
STATERR_NONE
Agora tera que apagar o conteudo ate a proxima entrada dessa forma;
Remova o conteudo, ficando assim;
case STATERR_NONE:
break;
Deixe exatamente como na foto, compilando com somente esse ajuste tudo ira permanecer como no Mame original porem a mensagem de "Warning" aparecera somente no primeiro carregamento da rom, ao carregar a mesma rom novamente nao sera mais exibido essa tela, os outros avisos vao permanecer inalterados.
Modo 2 - Removendo a tela de "Warning" e tbm todas as outras telas de aviso;Se vc quer seguir adiante e remover definitivamente a tela de Warning
menos as bordas brancas das janelas e a mensagem de carregamento da rom e todas as outras telas proceda como no Modo 1 e adicione mais essa parte;
Localize o arquivo
ui.c, no diretorio "
/src/emu clique na "lupa" na sua janela no canto superior direito, abra e digite para localizar a linha "
ui_display_startup_screens" veja que logo a baixo os "
case" é ali que vc deve alterar;
case 0:
...
case 1:
...
case 2:
...
e só alterar o numero para;
case
4:
...
case
5:
...
case
6:
...
Fazendo esses procedimentos os "warnings" nao aparecerao mais nem mesmo se a rom estiver errada ou com problema, ainda vao apareçer as bordas das janelas brancas e o carregamento da rom, ou seja, a tela de "loading".
Modo 3 - Removendo tudo, nesse caso nao e necessario proceder com o modo 1 e o Modo 2.
Somente as configurações abaixo ja vao fazer todo o processo, nao havera nada, somente uma tela preta e posteriormente o game aparecendo;
Va ate;
\src\emu\ui.c
Clique na lupa e procure por;
int ui_display_startup_screens:Chegando nessa linha;
int ui_display_startup_screens(running_machine &machine, int first_time, int show_disclaimer)
{
const int maxstate = 3;
int str = machine.options().seconds_to_run();
int show_gameinfo = !machine.options().skip_gameinfo();
int show_warnings = TRUE;
int state;
/* disable everything if we are using -str for 300 or fewer seconds, or if we're the empty driver,
or if we are debugging */
Adicione essa linha em negrito depois de
int state;
int ui_display_startup_screens(running_machine &machine, int first_time, int show_disclaimer)
{
const int maxstate = 3;
int str = machine.options().seconds_to_run();
int show_gameinfo = !machine.options().skip_gameinfo();
int show_warnings = TRUE;
int state;
show_gameinfo = show_warnings = show_disclaimer = FALSE; /* disable everything if we are using -str for 300 or fewer seconds, or if we're the empty driver,
or if we are debugging */
Adicionado a linha
show_gameinfo = show_warnings = show_disclaimer = FALSE;Procure nesse mesmo arquivo por;
/* display any popup messages */Chegando nessa linha;
if (osd_ticks() < popup_text_end)
ui_draw_text_box(astring_c(messagebox_text), JUSTIFY_CENTER, 0.5f, 0.9f, messagebox_backcolor);
else
popup_text_end = 0;
/* cancel takes us back to the ingame handler */
if (ui_handler_param == UI_HANDLER_CANCEL)
ui_set_handler(handler_ingame, 0);
}
Altere para;
/* display any popup messages */
/* if (osd_ticks() < popup_text_end)
ui_draw_text_box(astring_c(messagebox_text), JUSTIFY_CENTER, 0.5f, 0.9f, messagebox_backcolor);
else
popup_text_end = 0;
*//* cancel takes us back to the ingame handler */
if (ui_handler_param == UI_HANDLER_CANCEL)
ui_set_handler(handler_ingame, 0);
}
Os caracteres
/* e tbm
*/ desabilitam essa parte do codigo.
Procure agora por;
static UINT32 handler_messagebox(running_machine *machine, UINT32 state)
{
ui_draw_text_box(astring_c(messagebox_text), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
return 0;
}
e troque por;
static UINT32 handler_messagebox(running_machine *machine, UINT32 state)
{
//ui_draw_text_box(astring_c(messagebox_text), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
return 0;
}
Adicionando "
//ui_draw.." desabilita essa linha do codigo.
Removendo a borda branca da janela de carregamento;
Va ate \src\emu\render.c
Procure por;
render_primitive *primVa ate;
else
{
render_primitive *prim = list.alloc(render_primitive::QUAD);
set_render_bounds_xy(&prim->bounds, 0.0f, 0.0f, (float)m_width, (float)m_height);
set_render_color(&prim->color, 1.0f, 1.0f, 1.0f, 1.0f);
prim->texture.base = NULL;
prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
list.append(*prim);
if (m_width > 1 && m_height > 1)
{
prim = list.alloc(render_primitive::QUAD);
set_render_bounds_xy(&prim->bounds, 1.0f, 1.0f, (float)(m_width - 1), (float)(m_height - 1));
set_render_color(&prim->color, 1.0f, 0.0f, 0.0f, 0.0f);
prim->texture.base = NULL;
prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
list.append(*prim);
}
}
e troque por;
else
{
/* render_primitive *prim = list.alloc(render_primitive::QUAD);
set_render_bounds_xy(&prim->bounds, 0.0f, 0.0f, (float)m_width, (float)m_height);
set_render_color(&prim->color, 1.0f, 1.0f, 1.0f, 1.0f);
prim->texture.base = NULL;
prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
list.append(*prim);
if (m_width > 1 && m_height > 1)
{
prim = list.alloc(render_primitive::QUAD);
set_render_bounds_xy(&prim->bounds, 1.0f, 1.0f, (float)(m_width - 1), (float)(m_height - 1));
set_render_color(&prim->color, 1.0f, 0.0f, 0.0f, 0.0f);
prim->texture.base = NULL;
prim->flags = PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA);
list.append(*prim);
}
*/ }
/* e
*/ foi adicionado desabilitando essa parte do codigo.
Terminado!!! Lembrando que tudo o que foi feito aqui pode ser aplicado tudo de uma so vez em uma compilação ou por partes, naturalmente isso ira habilitar/desabilitar somente o funcionamento da parte do codigo modificada o resto permanece inalterado, entao tentei agrupar em "Modos" as modificações que achei mais interessantes no emulador.
Enjoy!!!
Platao