Autor Tópico: Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits  (Lida 141854 vezes)

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re: Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #210 Online: 31 de Janeiro de 2015, 19:33 »
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:

Código: [Selecionar]
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):

Código: [Selecionar]
./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.
« Última modificação: 31 de Janeiro de 2015, 19:53 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re: Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #211 Online: 31 de Janeiro de 2015, 20:54 »
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




« Última modificação: 03 de Fevereiro de 2015, 21:31 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline seatle_94

  • Usuário Ubuntu
  • *
  • Mensagens: 28
    • Ver perfil
Re: Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #212 Online: 07 de Fevereiro de 2015, 17:49 »
E aí amigo Platao.

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



Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re: Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #213 Online: 08 de Fevereiro de 2015, 09:39 »
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

Offline seatle_94

  • Usuário Ubuntu
  • *
  • Mensagens: 28
    • Ver perfil
Re: Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #214 Online: 08 de Fevereiro de 2015, 11:32 »
Aqui no Debian Jessie nem sei o que é esse tal de pip, eu baixei e compilei :v

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re: Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #215 Online: 21 de Fevereiro de 2015, 14:13 »
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
« Última modificação: 22 de Fevereiro de 2015, 15:37 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re:Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #216 Online: 18 de Agosto de 2015, 19:12 »
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
« Última modificação: 18 de Agosto de 2015, 19:18 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re:Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #217 Online: 03 de Setembro de 2015, 12:02 »
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



« Última modificação: 03 de Setembro de 2015, 15:24 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re:Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #218 Online: 18 de Novembro de 2015, 15:10 »
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
« Última modificação: 18 de Novembro de 2015, 15:14 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re:Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #219 Online: 17 de Agosto de 2016, 16:22 »
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

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re:Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #220 Online: 07 de Maio de 2017, 02:14 »
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.

Código: [Selecionar]
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!!!
« Última modificação: 07 de Maio de 2017, 23:12 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.930
    • Ver perfil
Re:Wah!cade - Configurando Mame+Wah!cade no Ubuntu 11.04 11.10 12.04LTS 64bits
« Resposta #221 Online: 07 de Maio de 2017, 13:15 »
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!
« Última modificação: 07 de Maio de 2017, 23:12 por platao »
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997