Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits

Iniciado por platao, 24 de Setembro de 2011, 20:30

tópico anterior - próximo tópico

platao

Citação de: Sergio Benjamim online 10 de Junho de 2014, 18:56
Citação de: platao online 09 de Outubro de 2012, 20:27
Ola alguem esta interessado no GmameUI? O pacote deb do Precise versao .12 dos repositorios esta com problemas de dependencias e bugs nas listagem das roms.

Se alguem se interessar vou preparar um pacote deb baseado na versao CVS onde esse bug e outros ja estao acertados, esse pacote é baseado na versao RPM do fedora que pode ser encontrada aqui para quem quiser;

http://fr2.rpmfind.net/linux/rpm2html/search.php?query=gmameui&submit=Search+...

E com alguns "tweaks" basicos se der certo :)....

   

Alguém importou o código do gmameui do cvs do sourceforge para o github, eu criei um fork à partir disso, inclui a pasta debian/ e apliquei um dos 3 patch do fedora (os outros 2, um não se aplica, e o gmemeui-fix4.patch deixei como comentário no código). O meu fork: https://github.com/sergiobenrocha2/gmameui

Instale as dependências necessárias:

sudo apt-get install autotools-dev zlib1g-dev libexpat1-dev libgtk2.0-dev libglade2-dev intltool libarchive-dev libvte-dev libzip-dev libgtkimageview-dev gnome-doc-utils

Daí para baixar o código fonte e compilar:

git clone https://github.com/sergiobenrocha2/gmameui.git gmameui
cd gmameui/
sh autogen.sh
./configure
make

E sudo make install para instalar.

Mas nem tudo é perfeito... tem uma falha no ./configure (últimas duas linhas):

./configure
[...]
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'


Não sei o que fazer à partir daqui.

É uma pena ver um programa abandonado assim :(

Minha intenção é conseguir compilar o Gmameui, ver se não dá bug grave no 14.04, e tentar fazer um pacote debian para ele. É mais pelo valor histórico mesmo.

Estava dando uma olhada por ai e vi isso....http://manualinux.exofire.net/mame.html aqui o gmameui da falha de segmentação direto.
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Alguem quer o Mame? eu compilei aqui na minha maquina para testar o core i3 muito bacana ; )

O que tem nesse mame;


Mame64;

- Mame 0.157 64 bits(oficial) compilado especialmente para o Ubuntu x64
- Fonte Ubuntu-Familiy Sans Bold
- Nao exibe a tela de "warning","loading","rom error", e nenhum outro aviso
- Todas as pastas extras ja criadas e setadas no mame.ini
- Acrescentadas varias artworks(efeitos de suavização)
- Adicionado uma nova rom de teste
- Adicionado todos os samples
- Adicionado todas as bios
- Adicionado Cheats
- Adicionado Qsound.bin para CPS2
- Adicionado novas cores para mira (crosshair)
- Interface Web para games online


<<<<< link >>>>>  https://mega.co.nz/#!YggRzIqK!CL_5cGpGWyIRodqEmpcDnqOu2uc4tnHAJLulfz6UGoY



Mame64Mkc - (Mortal Kombat Champ patch);


- Mame 0.157 64 bits(oficial) compilado especialmente para o Ubuntu x64
- Fonte Ubuntu-Familiy Sans Bold
- Todas as pastas extras ja criadas e setadas no mame.ini
- Acrescentadas varias artworks(efeitos de suavização)
- Adicionado uma nova rom de teste
- Adicionado todos os samples
- Adicionado todas as bios
- Adicionado Cheats
- Adicionado pasta "hi"(hiscores)
- Adicionado hiscore.dat
- Adicionado Qsound.bin para CPS2
- Adicionado novas cores para mira (crosshair)
- Interface Web para games online
- Adicionado Patch hiscores do MKChamp - (grava pontuação mais alta)
- Opção de desabilitar/habilitar o hiscores patch no mame.ini
- Opção de desabilitar/habilitar avisos de "warning","rom error", no mame.ini
- Opção de desabilitar/habilitar "white board", rom "loading", no mame.ini

<<<<< upando ainda >>>>>


Mame cortesia do Boça




\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

seatle_94

E aí amigo Platao.

Eu uso o lightningmf conhece ele? É uma interface bonita, simples e de fácil uso.



platao

Pensei que o lightningmf estava morto. Inclusive ja citei ele aqui nesse topico bem vagamente, so que na versao antiga ainda. Fui ver agora e tem uma versao semi-fresca"" de 2014 ja esta instalado aqui eheheh.

O legal e que ele e bem leve, nao engasga quando tem uma lista de roms grande. Funcionou mesmo depouis de alguns erros reportados, precisava ver depois o que sao esses erros par deixar a compilação mais completa, achei legal esse tal de PIP do comando nunca tinha ouvido falar;

sudo apt-get install python-pyside python-pip

sudo pip install lightningmf
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

seatle_94

Aqui no Debian Jessie nem sei o que é esse tal de pip, eu baixei e compilei :v

platao

Como compilar o MAME no ubuntu 14.04 modo facil para iniciantes;

- instalar as dependencias mostradas no video antes de compilar para que nao haja problemas na compilação como foi mostrado no video.
- se ocorrer algum erro na compilação, apague tudo e começe novamente e de um make clean.

Nesse topico tem informaçoes detalhadas de como remover as telas de loading etc....esse video mostra o basico para compilar o mame, sem alteraçoes, mas vc pode ir alem,  verificar o makefile para opçoes de ajustes e tbm aplicar patchs no mame.


Link do video - > https://www.youtube.com/watch?v=WGT37a97_aM

Musica remix para relaxar;

https://www.youtube.com/channel/UCBqFnVAhdwoN-tW_zOMAoHA/videos

https://soundcloud.com/arcade-music-tribute
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Video simples que ensina a compilar o mame no ubuntu 14.04 com o patch que desabilita os avisos do mame e adiciona o recurso de gravação de recordes nos games suportados;


=====> https://www.youtube.com/watch?v=AgPqyhMyxpg&feature=youtu.be <=====


O que vc precisa para compilar o mame com suporte a saves de pontuação?

O mame e claro, la do mamedev ao qual passei o link no post anterior ou aqui (mamedev.org) http://mamedev.org/release.html

O patch do MKChamp para rolar o suporte a saves de pontuação que esta nesse post lendário em arcadecontrols.com. http://forum.arcadecontrols.com/index.php?topic=64298.0

Um arquivo hiscore.dat para a versao mais recente possivel para saber quais endereços de memória contêm as pontuações mais altas para os jogos suportados. http://mameworld.info/highscore/ aqui http://www.mameworld.info/highscore/hiscoredat.zip

** Para aplicar o patch e so seguir o video, o arquivo hi_164.txt deve ser colocado fora da pasta /src para que nao haja erros na ora de aplicar o patch.
***Coloque o arquivo dat baixado na sua pasta mame junto com o mame ini.
****Crie uma pasta chamada hi  (em minuscula)

make

E pronto o seu mame agora, salva na pasta hi os maiores scores dos jogadores!!! e que sao exibidos toda vez que a rom for lida.  : )

Platao
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Novo video  :D

        ---------->      https://www.youtube.com/watch?v=1lMxcDLUZUE         <----


VIdeo simples que mostra como alterar diretamente no codigo fonte do Mame e remover as telas de aviso de rom incorreta, tela de loading, remover moldura branca ao carregar uma rom e todos os avisos. Ideal para bartops e sistemas customizados. Depois de editado o codigo, como no video nao sera mostrado nada, somente uma tela preta e em seguida a rom carregada.

Basicamente vc tera o mesmo efeito do patch do MKChamp, mostrado no video anterior.

O Arquivo sexy!mame usado nesse tutorial pode ser baixado e compartilhado nesse link;

https://www.dropbox.com/s/x38xc14kmevgnwa/sexy%21mame.txt?dl=0

Visite o forum ubuntu!

http://ubuntuforum-br.org/index.php/topic,87662.0.html

musica para relaxar;

https://www.youtube.com/watch?v=atuF4fjz728

Enjoy!

Platao


cortesia do Boça



\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Rapidinha para deixar aqui algumas configuraçoes do Mame para monitores LCD;

Alguns arcades como MK(mortal Kombat) e mais antigos tem monitores que originalmente trabalham na frequencia de 54.700Hz ou inferiores, ao rodar esses games em monitores tradicionais, que quase em sua maioria sao 60.000Hz ou superiores acontece alguns "frames drop", ou seja, "travadinhas" como por exemplo no MK quando o Mame tenta sincronizar automaticamente para que o game trabalhe na frequencia original do arcade.

Vamos entao configurar no mame.ini para que todos os games ignorem a frequencia de atualização original do arcade e todos fiquem travados em 60hz, garantindo fluidez  nos games em telas de LCD.

throttle 0                                        <----- mude de 1 (habilitado) para0
refreshspeed 1                             <----- mude para 1
syncrefresh 1                                 <---- mude para 1

Dessa forma a sincronização dos games com o monitor de 60hz vai ficar boa. Outro detalhe;

multithreading            0                <---- desabilite o multitreading

*Podem acontecer problemas com esse recurso habilitado nos mame's mais recentes.

Como verificar minhas roms pela linha de comando?

./mame64 -verifyroms

Como verificar uma unica rom?

./mame64 -verifyroms 1944

Como inicio um game pela linha de coamndo?

./mame64 mk4

Como acelerar a compilação do mame no meu PC?

make -j5

Como compilo o mame somente para exibir os games arcades? sem as roms de Super-nes ou outros? Ou seja, quero somente os games de fliperama!

make -j5 'SUBTARGET=arcade'

Como compilo para somente exibir os games do Mess? Sem os arcades?

make -j5 'SUBTARGET=mess'

Como eu aplico o patch do MKChamp no mame 167 e posteriores?

Na pasta do mame(nao mais em src) abra pelo terminal;

patch --binary -p0 < hi_167.txt

*necessario criar a pasta hi
*necessario colocar o hi_167.txt na pasta raiz do mame(pasta principal)
*necessario baixar o hiscore.dat

Ajuste fino no gamma;

Aqui eu gosto das telas um pouco mais "escuras" mais sem cor, entao eu reduzo o gamma da maioria dos games, mas e complicado ter que fazer esse ajuste todas as vezes, entao eu deixo definido no mame.ini;

# CORE SCREEN OPTIONS
#
brightness                    1.0
contrast                        1.0
gamma                          0.7           <------------------ assim todos os games vao fiocar com 0.7 de gamma
pause_brightness      0.65
effect                             scanlines_ag.png

è isso!!


Platao
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Novo Video!! ; )

Compilando MAME no Ubuntu 16.04 Xenial - Mame 0.176 - Do 0 ao Infinito!!!



    https://www.youtube.com/watch?v=jA8itDrgsqw   



Um pen-drive e uma Imagem do Ubuntu 16.04 Xenial...

Acompanhamos quase sem cortes, do 0 o processo de preparação,configuração e compilação do Mame 0.176 no Ubuntu Xenial.

VIdeo simples que mostra como alterar diretamente no codigo fonte do Mame e remover as telas de aviso de rom incorreta, tela de loading, remover moldura branca ao carregar uma rom e todos os avisos. Ideal para bartops e sistemas customizados. Depois de editado o codigo, como no video nao sera mostrado nada, somente uma tela preta e em seguida a rom carregada.

didatic purpose only!!!

O Arquivo sexy!mame_returns usado nesse tutorial pode ser baixado e compartilhado nesse link;

https://www.dropbox.com/s/3vyia2qzl98u977/sexy%21mame_returns.txt?dl=0


Enjoy!



Platao
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Novo Video!!!

Link para o video;

https://www.youtube.com/watch?v=cOHmGVPqhU0

Visite o forum ubuntu!

http://ubuntuforum-br.org/index.php/topic,87662.0.html

Link para o Tutorial com todos os arquivos;

https://www.dropbox.com/s/1dpo6t6k8vsau1j/Final_Fight_Arcade_CD.zip?dl=0


A - Final Fight Arcade + trilha sonora do Sega CD: Por que nao termos o melhor das duas verões?


- Os graficos do classico Final Fight do Arcade, graficos bem detalhados, com sua paleta de cores e varios inimigos na tela ao mesmo tempo com sprites grandes e coloridos.

- A trilha sonora de primeira do Sega CD fantastica, remixada da original.


B - O usuario Big Blue, mantenedor do Big Blue Frontend https://sites.google.com/site/bigbluefrontend/ fez esse Hack, unindo as duas versoes para Windows. Entrei em contato com o Big e pedi os fontes para poder compilar para o nosso Linux.

1 - THE SEXY! MODE;

C - Baixe o source do mame185s em http://mamedev.org/release.html ou direto aqui https://github.com/mamedev/mame/releases/download/mame0185/mame0185s.zip e extraia na sua pasta home.


D - O primeiro arquivo a ser modificado e o driver da placa CPS1, o arquivo cps1.cpp em /src/mame/drivers/cps1.cpp


E - De um control+f e coloque na busca #include "emu.h" e veja;

#include "emu.h"
#include "includes/cps1.h"

#include "cpu/z80/z80.h"
#include "cpu/pic16c5x/pic16c5x.h"
#include "cpu/m68000/m68000.h"
#include "machine/eepromser.h"
#include "sound/ym2151.h"
#include "sound/okim6295.h"
#include "sound/qsound.h"
#include "machine/kabuki.h"
#include "speaker.h"

De um espaço simples e adicione na linha de baixo o conteudo abaixo;

const char *const ffight_sample_names[] =
{
"*ffight",
"track02-01",
"track02-02",
"track03-01",
"track03-02",
"track04-01",
"track04-02",
"track05-01",
"track05-02",
"track06-01",
"track06-02",
"track07-01",
"track07-02",
"track08-01",
"track08-02",
"track09-01",
"track09-02",
"track10-01",
"track10-02",
"track11-01",
"track11-02",
"track12-01",
"track12-02",
"track13-01",
"track13-02",
"track14-01",
"track14-02",
"track15-01",
"track15-02",
"track16-01",
"track16-02",
"track17-01",
"track17-02",
"track18-01",
"track18-02",
"track19-01",
"track19-02",
"track20-01",
"track20-02",
"track21-01",
"track21-02",
"track22-01",
"track22-02",
"track23-01",
"track23-02",
"track24-01",
"track24-02",
"track25-01",
"track25-02",
"track26-01",
"track26-02",
0
};

Ficando dessa forma;

-------------------------------------------------------------------------

#include "emu.h"
#include "includes/cps1.h"

#include "cpu/z80/z80.h"
#include "cpu/pic16c5x/pic16c5x.h"
#include "cpu/m68000/m68000.h"
#include "machine/eepromser.h"
#include "sound/ym2151.h"
#include "sound/okim6295.h"
#include "sound/qsound.h"
#include "machine/kabuki.h"
#include "speaker.h"


const char *const ffight_sample_names[] =
{
"*ffight",
"track02-01",
"track02-02",
"track03-01",
"track03-02",
"track04-01",
"track04-02",
"track05-01",
"track05-02",
"track06-01",
"track06-02",
"track07-01",
"track07-02",
"track08-01",
"track08-02",
"track09-01",
"track09-02",
"track10-01",
"track10-02",
"track11-01",
"track11-02",
"track12-01",
"track12-02",
"track13-01",
"track13-02",
"track14-01",
"track14-02",
"track15-01",
"track15-02",
"track16-01",
"track16-02",
"track17-01",
"track17-02",
"track18-01",
"track18-02",
"track19-01",
"track19-02",
"track20-01",
"track20-02",
"track21-01",
"track21-02",
"track22-01",
"track22-02",
"track23-01",
"track23-02",
"track24-01",
"track24-02",
"track25-01",
"track25-02",
"track26-01",
"track26-02",
0
};

-----------------------------------------------------------------------------


F - Procure agora por WRITE16_MEMBER(cps_state::cps1_soundlatch_w) e veja;


WRITE16_MEMBER(cps_state::cps1_soundlatch_w)          -----> apague as linhas abaixo
{                                                                        *
if (ACCESSING_BITS_0_7)                                          *
m_soundlatch->write(space, 0, data & 0xff);              *
else                                                             *
m_soundlatch->write(space, 0, data >> 8);                *
}                                                                        *


G - Edite e deixe dessa forma;


WRITE16_MEMBER(cps_state::cps1_soundlatch_w)
{
switch (data)
{
// stage 1 upper level music
case 0x40:
m_samples1->start(0, 0, 1);
m_samples2->start(0, 1, 1);
break;
// stage #1: basement
case 0x41:
m_samples1->start(0, 2, 1);
m_samples2->start(0, 3, 1);
break;
// stage #2: subway intro
case 0x42:
// play the normal version of the song unless playAlternateSong is true
if (playAlternateSong == false)
{
m_samples1->start(0, 4, 1);
m_samples2->start(0, 5, 1);
}
else
{
m_samples1->start(0, 40, 1);
m_samples2->start(0, 41, 1);
}
break;
// stage #2 exiting subway/alley
case 0x43:
m_samples1->start(0, 6, 1);
m_samples2->start(0, 7, 1);
break;
// double andore cage fight music
case 0x44:
m_samples1->start(0, 8, 1);
m_samples2->start(0, 9, 1);
break;
// bay area sea side theme
case 0x45:
m_samples1->start(0, 10, 1);
m_samples2->start(0, 11, 1);

// we'll provision the alternate songs if they're not already
if (provisionAltSong == false)
{
provisionAltSong = true;
}
break;
// bathroom music for bay area
case 0x46:
m_samples1->start(0, 12, 1);
m_samples2->start(0, 13, 1);
break;
// bay area post-bathroom ending/boss / final boss room entrance
case 0x47:
// play the normal version of the song unless playAlternateSong is true
if (playAlternateSong == false)
{
m_samples1->start(0, 14, 1);
m_samples2->start(0, 15, 1);
}
else
{
m_samples1->start(0, 36, 1);
m_samples2->start(0, 37, 1);
}
break;
// bonus stage music
case 0x4c:
m_samples1->start(0, 20, 1);
m_samples2->start(0, 21, 1);
break;
// industrial music theme
case 0x48:
m_samples1->start(0, 16, 1);
m_samples2->start(0, 17, 1);
break;
// industrial zone elevator ride music
case 0x49:
m_samples1->start(0, 18, 1);
m_samples2->start(0, 19, 1);
break;
// game start ditty
case 0x50:
m_samples1->start(0, 22, 0);
m_samples2->start(0, 23, 0);
// when the game starts, we'll reset all the alternate songs
provisionAltSong = false;
playAlternateSong = false;
break;
// post explosion ditty
case 0x51:
m_samples1->start(0, 24, 0);
m_samples2->start(0, 25, 0);
break;
// opening cinematic song
case 0x52:
m_samples1->start(0, 46, 0);
m_samples2->start(0, 47, 0);
break;
// continue/dynamite song
case 0x53:
m_samples1->start(0, 32, 1);
m_samples2->start(0, 33, 1);
break;
// homosexual cheesy ending music
case 0x54:
m_samples1->start(0, 48, 1);
m_samples2->start(0, 49, 1);
break;
// player select song
case 0x55:
m_samples1->start(0, 30, 0);
m_samples2->start(0, 31, 0);
break;
// stage end/victory song
case 0x57:
m_samples1->start(0, 28, 0);
m_samples2->start(0, 29, 0);

// when we beat a stage after the alternate songs are provisioned, we know that we should be playing the alternate songs
if (provisionAltSong == true)
{
playAlternateSong = true;
}
break;
// final stage clear ditty
case 0x58:
m_samples1->start(0, 26, 0);
m_samples2->start(0, 27, 0);
provisionAltSong = false;
playAlternateSong = false;
break;
default:
if (ACCESSING_BITS_0_7)
m_soundlatch->write(space, 0, data & 0xff);
else
m_soundlatch->write(space, 0, data >> 8);

if (data == 0xf0 || data == 0xf2 || data == 0xf7)
{
m_samples1->stop_all();
m_samples2->stop_all();
}
break;
}
}


H - Agora procure por MACHINE_START_MEMBER(cps_state,qsound) e veja;

MACHINE_START_MEMBER(cps_state,qsound)
{
MACHINE_START_CALL_MEMBER(common);
membank("bank1")->configure_entries(0, 6, memregion("audiocpu")->base() + 0x10000, 0x4000);
}

De um espaço na outra linha adicione;

static MACHINE_CONFIG_START( ffight_hack, cps_state)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz )    /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)

MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)  /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sub_map)

MCFG_MACHINE_START_OVERRIDE(cps_state,cps1)

/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
MCFG_SCREEN_PALETTE("palette")

MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
MCFG_PALETTE_ADD("palette", 0xc00)

MCFG_VIDEO_START_OVERRIDE(cps_state, cps1)

/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")

MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")

MCFG_YM2151_ADD("2151", XTAL_3_579545MHz)  /* verified on pcb */
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)

/* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)

MCFG_SOUND_ADD("samples1", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(1)
MCFG_SAMPLES_NAMES(ffight_sample_names)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)

MCFG_SOUND_ADD("samples2", SAMPLES, 0)
MCFG_SAMPLES_CHANNELS(1)
MCFG_SAMPLES_NAMES(ffight_sample_names)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MACHINE_CONFIG_END


I - Agora para finalizar procure por;

GAME( 1989, ffight,      0,        cps1_10MHz, ffight,

E veja;

GAME( 1989, ffight,      0,        cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (World, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffighta,     ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (World, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightu,     ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightu1,    ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightua,    ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA 900112)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightub,    ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA 900424)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightuc,    ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA 900613)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj,     ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj1,    ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan 900112)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj2,    ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan 900305)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj3,    ffight,   cps1_10MHz, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan 900613)", MACHINE_SUPPORTS_SAVE )

Faça um pequena alteração e altere dessa forma;

GAME( 1989, ffight,      0,        ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (World, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffighta,     ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (World, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightu,     ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightu1,    ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightua,    ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA 900112)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightub,    ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA 900424)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightuc,    ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (USA 900613)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj,     ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj1,    ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan 900112)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj2,    ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan 900305)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, ffightj3,    ffight,   ffight_hack, ffight,   cps_state,   cps1,     ROT0,   "Capcom", "Final Fight (Japan 900613)", MACHINE_SUPPORTS_SAVE )

Observe que foi substituido cps1_10MHz por ffight_hack, terminamos esse arquivo, proximo!


J - Proximo arquivo a ser modificado e o cps1.h que esta em /mame/src/mame/includes/cps1.h e veja;

Procure por;

#include "cpu/m68000/m68000.h"

e veja;

#ifndef _CPS1_H_
#define _CPS1_H_

#include "sound/msm5205.h"
#include "sound/qsound.h"
#include "sound/okim6295.h"
#include "machine/gen_latch.h"
#include "machine/timekpr.h"
#include "cpu/m68000/m68000.h"
#include "screen.h"

Depois de #include "screen.h" de um espaço na linha de baixo adicione;

#include "sound/samples.h"

Ficando dessa forma;

#ifndef _CPS1_H_
#define _CPS1_H_

#include "sound/msm5205.h"
#include "sound/qsound.h"
#include "sound/okim6295.h"
#include "machine/gen_latch.h"
#include "machine/timekpr.h"
#include "cpu/m68000/m68000.h"
#include "screen.h"
#include "sound/samples.h"    //-------> adicionado sound/samples.h

K - Agora procure por;

m_maincpu(*this, "maincpu"),

de um espaço na outra linha e adicione;

m_samples1(*this, "samples1"),
m_samples2(*this, "samples2"),

Ficando dessa forma;

class cps_state : public driver_device
{
public:
cps_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_mainram(*this, "mainram"),
m_gfxram(*this, "gfxram"),
m_cps_a_regs(*this, "cps_a_regs"),
m_cps_b_regs(*this, "cps_b_regs"),
m_qsound_sharedram1(*this, "qsound_ram1"),
m_qsound_sharedram2(*this, "qsound_ram2"),
m_objram1(*this, "objram1"),
m_objram2(*this, "objram2"),
m_output(*this, "output"),
m_io_in0(*this, "IN0"),
m_io_in1(*this, "IN1"),
m_cps2_dial_type(0),
m_ecofghtr_dial_direction0(0),
m_ecofghtr_dial_direction1(0),
m_ecofghtr_dial_last0(0),
m_ecofghtr_dial_last1(0),
m_maincpu(*this, "maincpu"),             
m_samples1(*this, "samples1"),     //--->adicionado msamples1 e msamples2
m_samples2(*this, "samples2"),
m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki"),
m_m48t35(*this,"m48t35"),
m_msm_1(*this, "msm1"),
m_msm_2(*this, "msm2"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_soundlatch(*this, "soundlatch"),
m_soundlatch2(*this, "soundlatch2"),
m_decrypted_opcodes(*this, "decrypted_opcodes"),
m_region_key(*this, "key"),
m_region_stars(*this, "stars")
{ }


L - Agora procure por;

std::unique_ptr<uint16_t[]> m_bootleg_work_ram;

de um espaço, na outra linha adicione;

bool provisionAltSong;
bool playAlternateSong;


M - Agora procure por;

required_device<m68000_base_device> m_maincpu;

de um espaço, na outra linha adicione;

optional_device<samples_device> m_samples1;
optional_device<samples_device> m_samples2;


N - Terminado!!! Agora e so compilar com make -j5 e aguardar!!!

** Copie a rom ffight.zip (incluso no pacote Final Fight Arcade CD) para a pasta roms.
***Copie o samples ffight.zip (incluso no pacote Final Fight Arcade CD) para a pasta samples.

Se vc fez tudo certo, ao rodar o Mame e iniciar a rom final fight(ffight) as musicas vao ser as do Sega CD, mas com os graficos do Arcade!!!


-------------------------------------------------------------------------------------------


***didactic and conceitual purpose only!!!
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Continuação;

O - THE NORMAL MODE!

Ha um modo mais facil de fazer as alteraçoes no codigo fonte do Mame, sem ter que editar diretamente o arquivo, como fizemos no começo, que e com a ajuda do Meld.

O Meld e um programa bastante util quando se tem diferenças de arquivo a serem comparadas, ele esta presente nos repositorios, bastando dar um sudo apt-get install meld.

Ele aponta as diferenças analizando lado a lado os dois arquivos, muito interessante para o nosso caso, em que vamos colocar um arquivo ja com as alteraçoes do codigo fonte ao lado de um arquivo original a ser modificado.

O meld vai comparar os dois e nos mostrar as diferenças e dar a opçao de com um simples "clique" passar todas as alteraçoes de um arquivo para o outro e salvar!!!

1 - Baixe o sources do mame 0.185 em http://mamedev.org/release.html (o Mame 0.185 original ja vai estar incluso no pacote Final Fight Arcade CD).

2 - Extrair o Mame 0.185s na sua pasta Home(como mostra o video).

3 - Extrair o Final Fight Arcade CD na sua area de trabalho.

4 - Inicie o Meld e clique em "comparação de arquivos" abaixo, navegue ate a sua pasta home onde deixamos o mame e va ate /mame/src/mame/drivers/cps1.cpp clique em "abrir" e depois em "comparar"

5 - No canto esquerdo vai estar o arquivo cps1.cpp original, agora no canto direito, clique e navegue ate a area de trabalho, e va ate hack/src/mame/drivers/cps1.cpp que e o arquivo modificado do pacote Final Fight Arcade CD, e clique em abrir.

6 - O Meld vai mostrar a esquerda o arquivo original, sem modificação, e a direita o arquivo modificado.

7 - Observe que o Meld vai marcar em "verde" ou uma cor destacada, a diferença entre os dois arquivos.

8 - Agora e so clicar na "seta" para o Meld copiar toda aquela area da direita para a area esqueda, deixando os arquivos iguais.

9 - Role o arquivo cps1.cpp e deixe os dois iguais, tanto o da direita que esta na home quanto o da esquerda que esta na area de trabalho, nao esqueça de clicar no icone de "salvar" no canto esquerdo.

10- Repetir o mesmo processo com o arquivo cps1.h.

11- Pronto!! Voce aplicou as alterações, agora e so compilar!!!

12- make -j5

**Voce vai precisar da rom final fight(que esta no pacote Final Fight Arcade CD)
***Voce vai precisar dos samples do Sega CD(que esta no pacote Final Fight Arcade CD)

P - THE GAME-OVER MODE!

Um modo mais facil ainda, indicado para quem nao quer aprender nada...

1 - Baixe o sources do mame 0.185 em http://mamedev.org/release.html (o Mame 0.185 original, ja vai estar incluso no pacote Final Fight Arcade CD)

2 - Extrair o Mame 0.185s.zip na sua pasta Home(como mostra o video)

3 - Entre na pasta "hack"(incluso no pacote Final Fight Arcade CD) copie o arquivo cps1.cpp para o Mame na sua home em /mame/src/mame/drivers/cps1.cpp e subistitua o original pelo hack.

4 - Entre na pasta "hack"(incluso no pacote Final Fight Arcade CD) copie o arquivo cps1.h para o Mame na sua home em /mame/src/mame/includes/cps1.h e subistitua o original pelo hack.

5 - Copie a rom ffight.zip (incluso no pacote Final Fight Arcade CD) para a pasta roms.

6 - Copie o samples ffight.zip (incluso no pacote Final Fight Arcade CD) para a pasta samples.

7 - Compile!!!

8 - make -j5

   
-------------------------------------------------------------------------------------------

IMPORTANTE;

1. E necessario ter na pasta samples do mame as musicas do Sega CD, é necessario extrair as versões WAV ou FLAC das músicas do Sega CD, mas ja isso ja vai estar pronto.

2. Depois de extrair as faixas, você terá que usar um programa como o Audacity para dividir as faixas estéreo em arquivos individuais "esquerdo" e "direito", isso ja vai estar pronto.

3. Nomeie os arquivos usando a convenção mostrada abaixo;

Os nomes dos arquivos são mapeados para as faixas do disco CD da Sega. Todas as faixas "left" têm o sufixo -01, e todas as faixas "right" têm o sufixo -02.

4. Depois de criar esses arquivos, basta adicioná-los ao ffight.zip.

5. Coloque ffight.zip na pasta de amostras do Mame, tudo isso ja vai estar feito, e so adicionar o arquivo ffight.zip na pasta samples do Mame!!!

-------------------------------------------------------------------------------------------

É isso! Caso vc nao queira compilar todo o Mame, vc pode compilar somente os games CPS1, como e o caso do Final Fight, assim vc vai ter um Mame que so "roda" games de CPS1 da Capcom, dessa forma;

Ao invez de dar o comando tradicional;

make -j5

trocamos por;

make SOURCES=src/mame/drivers/cps1.cpp REGENIE=1

e pronto, ele so compila games CPS1!!!

-------------------------------------------------------------------------------------------


Obrigado ao Big Blue pelo hack!!!

Thank's Big Blue!!!
https://sites.google.com/site/bigbluefrontend/

***didactic and conceitual purpose only!!!



Platao!
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

Estou fazendo uma modificação na rom de Street Fighter Champion Edition um "hack", a principio vai ser uma coisa bem simples, alguem se interessa em trocar informaçoes ou tem algum interesse nisso ; ) ?
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao


https://www.youtube.com/watch?v=zMfRyVRGUUo


Ola pessoal!!!

Estou fazendo um hack de Street Fighter Champion Edition.

Um famoso game arcade de 1992. A principio, tem somente 4 personagens "prontos" portanto vai demorar bastante ate modificar todos e deixar balanceados e com boa jogabilidade.

Esse video e so uma "brincadeira" mostrando o que pode ser feito, desde alterar os parametros dos personagens, como alcance dos golpes, força, altura dos pulos, velocidade e paleta de cores e muito mais.

Mas ja vou avisando ; )  vai ser um hack bastante proximo do original,  nao vai ter ninguem "sumindo" como a Chun-Li dando uma de Reptile de mortal Kombat  ; ) nem personagem subindo tela, vai ser uma rom bastante proxima do original e bastante jogavel!!!

Assim que eu terminar vou deixar anexado na rom um tutorial simples e os endereços de memoria a serem alterados, esse "hack" vai ser baseado nas anotações do Drakon, do forum Canadense http://16bitgamer.canadian-forum.com/t78-my-custom-street-fighter-2-sheng-long-arcade-hack


  Enjoy!!!

\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

platao

https://www.dropbox.com/s/gckjk2l6uioe71a/Street_Fighter_Champion_Edition_Brasil%2BTutorial.zip?dl=0


https://www.youtube.com/watch?v=jZtaCZqjm-o&spfreload=10

Introdução:

1 - Como adicionar um novo game de CPS1 ou CPS2 ou outro no MAME?

2 - Porque o MAME nao inclui versoes "hacks" de alguns games?

A resposta e ate simples, porque essas placas nao existem!!!

O proposito do MAME e preservar essas primeiras décadas da historia dos jogos de arcade para que quando o hardware original dessas maquinas pare de funcionar, todo o trabalho artistico e de programação nao se perca, o MAME impede que esses importantes jogos clássicos sejam esquecidos.

Existe ainda uma política proposta pelo desenvolvedor de que somente jogos com mais de 3 anos de mercado possam ser adicionados à lista de compatibilidade do MAME. Isso, segundo ele, evita que o emulador concorra diretamente com as empresas desenvolvedoras dos jogos.

OK, mas porque o MAME nao inclui aquele hack que eu tanto gosto? Eu so consigo jogar elas no "Kawaks" ou Nebula ou outro ... mas no MAME nao....

O problema e que essas placas nao existem, como por exemplo uma versao de STREET FIGHTER CHAMPION EDITION (Brazil) por exemplo.

Mas vc pode perguntar...mas existem street fighters piratas no MAME sim!!!

Sim existem, inclusive alguns acreditam que foi por causa delas que o game se popularizou tanto e em todos os lugares do mundo.

Essas placas piratas de street fighter existem de fato, fazem parte da historia, portanto sao catalogadas e suas roms estao disponiveis no projeto MAME, inclusive serviram de inspiração para versoes posteriores da franquia como STREET FIGHTER TURBO.

Esses dias estava dando uma olhada na net, vendo alguns game-plays de STREET FIGHTER CHAMPION EDITION no canal https://www.youtube.com/watch?v=rIMQQwFffYY e outros...como vcs sabem, estou fazendo um hack de street fighter e queria algumas dicas para poder alterar nos pesonagens e encontrei esse post ja bastante antigo http://neogeobrteam.romhackers.org/modules/smartsection/item.php?itemid=10 que interessante!!!

Os caras da NEO GEO BR TEAM, Alan Yagami e BisonSAS, fizeram uma tradução completa da rom, ficou muito boa! E ainda disponibilizaram as entradas para adicionar no driver CPS1 da Capcom, ok Fantastico!!! ;) para usar no MAME.

Mãos a obra..mas...nao funcionou...o MAME mudou muito da epoca que foi feito essas entradas de driver pelo time da Neo Geo...e um dos arquivos referenciados nao existe mais e foi incorporado por outros.

Olhando mais de perto o problema, nao complicado, consegui consertar as entradas do driver a serem adicionadas e tbm anexar a lista do MAME tradicional, moderno, 186 em diante.

*faça o download dos patchs IPS da Neo Geo BR
**aplique os patchs IPS na rom Street Fighter Champion Edition World(920213)
***O aplicativo para aplicar o patch na ROm, o Floating IPS, pode ser baixado aqui https://www.smwcentral.net/?p=section&a=details&id=11474 descompacte e veja o arquivo flips-linux, clique com o direito nele e propriedades -: permissoes e marque "executar como programa" e execute.
****Ele vai pedir onde estao a rom e o IPS para aplicar, faça e salve com o mesmo nome encontrado em /sf2cebr/ips/, por exemplo, s92br_10.bin e assim sucessivamente para as outras roms.
*****para nossa comodidade, ja vou deixar a rom pronta no pacote, e so colocar na pasta "roms".

Ok, ja temos a nossa rom "patcheada" pronta para rodar, agora vamos compilar um MAME especial, para poder acolher nossa rom Brasileira traduzida, ja que o MAME padrao nao vai ter esse suporte.

Primeiro, lembre-se que as anotaçoes para compilar um MAME com suporte a essa rom traduzida descrita no tutorial do NEO GEO BR nao funcionam mais por serem antigas, mas muda pouca coisa.


1 - tem 3 arquivos a serem alterados no MAME antes de complilar;

em

--->mame/src/mame/drivers/cps1.cpp nele consta;


ROM_START( sf2cebr )
   ROM_REGION( CODE_SIZE, "maincpu", 0 )      /* 68000 code */
   ROM_LOAD16_WORD_SWAP( "sf2cebr.23",   0x000000, 0x80000, CRC(74e848ee) SHA1(6dce8d0c7d439e6d1d08c8169a3ecdf178e82c16) )
   ROM_LOAD16_WORD_SWAP( "sf2cebr.22",   0x080000, 0x80000, CRC(c3c49626) SHA1(d0fae1d2758360b56e6e583feb4bdf7d4e2e1eba) )
   ROM_LOAD16_WORD_SWAP( "s92_21a.bin",  0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )

   ROM_REGION( 0x600000, "gfx", 0 )
   ROMX_LOAD( "s92_01.bin",   0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
   ROMX_LOAD( "s92_02.bin",   0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) /* sf2.03 */
   ROMX_LOAD( "s92_03.bin",   0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) /* sf2.02 */
   ROMX_LOAD( "s92_04.bin",   0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
   ROMX_LOAD( "s92_05.bin",   0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
   ROMX_LOAD( "s92_06.bin",   0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) /* sf2.07 */
   ROMX_LOAD( "s92_07.bin",   0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) /* sf2.06 */
   ROMX_LOAD( "s92_08.bin",   0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
   ROMX_LOAD( "s92br_10.bin", 0x400000, 0x80000, CRC(b3e1dd5f) SHA1(714bf1519ced85567d3d35fdf4aa9e4268cc9f0f) , ROM_GROUPWORD | ROM_SKIP(6) )
   ROMX_LOAD( "s92br_11.bin", 0x400002, 0x80000, CRC(f13af812) SHA1(e3711cbaa3169d0f48df420953f1afd0ab76ee08) , ROM_GROUPWORD | ROM_SKIP(6) ) /* sf2.11 */
   ROMX_LOAD( "s92br_12.bin", 0x400004, 0x80000, CRC(10ce42af) SHA1(530b2a6e2d13b2694bd611b31b056b7458fd1571) , ROM_GROUPWORD | ROM_SKIP(6) ) /* sf2.12 */
   ROMX_LOAD( "s92br_13.bin", 0x400006, 0x80000, CRC(32cf5af3) SHA1(43972c07f5ccf01b0ce0727541590c3c6b97c300) , ROM_GROUPWORD | ROM_SKIP(6) )

   ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
   ROM_LOAD( "s92_09.bin",    0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
   ROM_CONTINUE(              0x10000, 0x08000 )

   ROM_REGION( 0x40000, "oki", 0 )   /* Samples */
   ROM_LOAD( "s92_18.bin",    0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
   ROM_LOAD( "s92_19.bin",    0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
ROM_END

**coloque ele abaixo de sf2ce
***preste atenção em ROM_START e ROM_END e onde começa e termina a declaração da nossa rom.


Agora mais abaixo no mesmo arquivo adicione;


GAME( 1992, sf2cebr,     sf2ce,    cps1_12MHz, sf2,      cps_state,   cps1,     ROT0,   "Capcom", "Street Fighter II': Champion Edition (Brasil 920313)", MACHINE_SUPPORTS_SAVE )

**coloque ele abaixo de sf2ce
***preste a atenção nos espaçamentos.
****nao esqueça de salvar

Proximo arquivo a ser modificados no MAME e no /mame/src/mame/video/cps1.cpp adicionar;


   {"sf2cebr",     CPS_B_21_DEF, mapper_S9263B, 0x36 },


**coloque ele abaixo de sf2ce
***preste a atenção nos espaçamentos.


Proximo e final e no /src/mame/mame.lst adicionar;


sf2cebr                         // hack BR

**coloque ele abaixo de sf2ce
***preste a atenção nos espaçamentos.


Pronto agora e so compilar!!!!


sudo make -j4

*melhor usar o sudo nesses novos MAME's
**depois de gerado o executavel mame64 vai aparecer com um "cadeado" entre como root( sudo nautilus) e mude as permissoes de root, para o seu usuario e "leitura e escrita" mesma coisa com a outra pasta(build) o cadeado "desaparece".
***baixe o mame em http://mamedev.org/release.html
****nao sabe compilar o mame? no meu canal tem como fazer, procure no tube por sexy!mame


Pronto agora e so colocar a rom sf2cebr na sua pasta roms desse novo MAME e pronto! esta la!!! O seu Street Brasileiro"!!!

Agradeço ao time do Neo Geo BR-TEAM por essa tradução muito bem feita.




Enjoy!!!!



PLATAO
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997