PDA

Ver Versão Completa : Compilar advmenu



CAPACITOR
26/05/2009, 12:06
Olá galera , estou com um problema q para mim e muito dificil reslover sozinho.Eu queria compilar o ADVMENU para trocar as posições dos botões pois estou usando o controle de snes e com um ADVMENU compilado pelo brbranco os comandos não batem com minha configuação.Lembro paras os amigos que possam me ajudar que eu não sei onde fica no codigo fonte essas funcões e como podem ser modificadas resumindo eu vou tentar fazer isso pela primeira vez se alguem tiver um tutorial eu agradeço.Valeu...

SubZero
26/05/2009, 13:31
É bem mais fácil você usar o JoyToKey do que modificar o código, já que é só essa a alteração que você quer fazer.

CAPACITOR
27/05/2009, 01:40
SubZero, eu ja uso o joytokey mais não sei porq quando aperto o botão jog1-4 eu entra em uma tela "lixeira ou multijogos" e faz a função q eu indiquei ja mexi no advmenu.rc para desabilitar esta função mais ela inssiste.

SubZero
28/05/2009, 00:06
No advmenu.rc você tem que desabilitar o joystick. Aí você configura o JoyToKey para as teclas que você vai utilizar mesmo.


Aqui eu deixo só o direcional e coloco o ENTER no botão START. Assim ninguém mexe nas configuraç?s.

Belini
28/05/2009, 00:26
Completando o que o SubZero disse o advancemenu na versão que vem no pacote só credita no botão7 do joystick enquanto esta na lista de jogos e só passa a creditar por teclas quando o jogo esta carregado sendo assim dessa maneira só dá para usar desbilitando o joystick se for para usar em casa para colocar em máquina nesta compilação não funciona.

CAPACITOR
28/05/2009, 03:21
Ok Belini eu ia fazer este comentario nesmo sobre o credito pois estou usando um script do Brbranco e quando estou sem o joystick não consigo dar credito pelo teclado.Tem como habilitar os dois?E em relção a compilar o advmenu achei melhor mexer na posição dos botões que ficou menos trabalhoso.Valeu..

Belini
28/05/2009, 12:36
Eu também estou usando o do brbranco veja o que fiz deixei todos os botões que já estão pré configurados no joystick e interferem de alguma maneira nas configurações do advancemenu dentro da máquina e aproveitei os que podiam ficar externos para fazerem dupla função por exmplo o botão 8 carrega o jogo coloquei ele para ser o start1, o botão2 troca as listas dos jogos coloquei ele para ser o start2, o botão3 que troca o formato das listas, o botão9 que fecha o advance e botão10 que deixa mexer nas configurações do advance deixei dentro da máquina agora você irá perguntar você usou o botão2 para start2 e o botão3 colocou dentro da máquina então faltou 2 botões no player1 isto resolvi colocando o botão9 e o botão10 do joystick2 no lugar deles pois estes botões estavam sobrando e para cada botão associei uma tecla no joytokey e configurei estas teclas nos emuladores então o emulador vai responder a aquela tecla que foi configurada mesmo que o botão que esta sendo usado não esteja na sequência certa ou não seja do mesmo joystick, faça assim e garanto que dará certo.

CAPACITOR
29/05/2009, 01:41
Beleza entendi o que você falou, com estou usando tambem jogo de pc tive q fazer algumas alterações no jama pois como vc ja mecionou as comfigurações não estão em ordem então no controle 1 os botões 5 e 6 usavam o joystick 3 e quando eu colocava o PES2009 jogo de futebol ele não reconhecia estes dois botões ,pois era do jogador 3 ja que o Pes2009 da para jogar ate 4 playes ,então analizei as ligações do cI4021 e vi que tinha botões sombrando q era start,select e o bt4 se não me engano , fiz as modificações e funcuionou beleza ,so tinha dado este erro no bt4 q no menu aparecia aquela tela para mandar o jogo para lixeira.E o credito esta tambem no controle 3.E o a minha preocupação e se não pode haver problemas futuros quando acrecentar mais jogos de PC.E outra coisa eu coloquei o start para fazer varias funções com 1 so botão,assim preciona um tempo faz isso,preciona um tempo maior faz outra coisa.E assim por diante.Valeu..

Belini
29/05/2009, 12:48
Capacitor se você já esta usando jogo de computador no advancemenu então foi porque acompanhou todo o tópico no brarcade eu na época não estava acompanhando deixei isto para o final e agora que o fórum saiu do ar terei dificuldades para obter essas informações se você tiver o esquema aí posta pra mim pois irá me poupar muito trabalho, até já pensei numa maneira criar um pequeno script indicando o caminho do jogo e abrindo o seu executável e colocarei no advmenu.rc para aceitar a extensão .exe, ainda não sei se dará certo e mesmo que dê dará um certo trabalho pois terei que criar um script para cada jogo se você souber de uma maneira mais fácil irá me ajudar.

mesp_rp
29/05/2009, 17:28
compilar o advmenu, advmame, mame..., tambem não é nenhum bixo de sete cabeças, vc já tem o SRC do advmenu ja configurado? ai te passo as configuraçoes de botões.

CAPACITOR
30/05/2009, 03:16
Não tenho não mesp_rp como eu disse eu nem sei com começar pois nunca fiz.Ok..



Beline eu tenho sim um geito de roda jogo de pc sim mais ainda esta como gambiara pois na epoca eu conseguia roda varios jogos não usava scripts hoje com script so estou conseguindo roda um como fosse um emulador, e so usar o script do snes que e de tempo e direcionar ele ao inves de chamar o emulador de snes chama o jogo de pc.

Antes era assim:


advmenu.rc


emulator "PCsGAMES" generic "PCsGAMES.BAT" "%s"

emulator_roms "PCsGAMES" "C:PCsGAMES\pcsgames"

emulator_altss "PCsGAMES" "C:PCsGAMES\snap


Ai criava um autoexec.bat com o nome de pcsgames q no caso seria o emulador

As rons eram simplesmente um bloco de notas vazio zipado que ficava no local indicado

E no pcsgames.bat tinhas as seguites linhas:


@echo off

if %1 == 1 goto TTL

if %1 == 2 goto Bad Boy II

if %1 == 3 goto Guitar Hero III

if %1 == 4 goto Homem Arranha

goto erro


:TTL

echo Chamando TTL

D:

cd\JOGOS\25 to Life #"Aqui e local onde o jogo esta instalado"

ttl.exe #"Aqui e o executavel do jogo"

goto fim


:Bad Boy II

echo Chamando Bad Boy II

D:

cd\JOGOS\Bad Boys II

bbpc.exe

goto fim


:Guitar Hero III

echo Chamando Guitar Hero III

D:

cd\JOGOS\Guitar Hero III

gh3.exe

goto fim


:Homem Arranha

echo chamando homem Arranha

D:

cd\jogos1\Activision\Spider-Man 2\System

Arranha.exe

goto fim


E no pcsgames.lst


game ( name 1 description "25 to Life" manufacturer " 2008/2009")

game ( name 2 description "Bad Boy II" manufacturer " 2008/2009")

game ( name 3 description "Guitar Hero III"manufacturer " 2008/2009")

game ( name 4 description "Homem Arranha 2"manufacturer " 2008/2009")


Os numeros 1,2,3,4 eram os nomes das rons que eram os blocos de notas vazios e zipados.


Não sei se deu para entender pois e meio complicado e eu não estou achando o site onde eu aprendi assim que eu achar vou postar aqui.Valeu..

Belini
31/05/2009, 16:33
Capacitor obrigado de novo por mais este script, peguei o outro e vou ver qual dos dois será o mais adequado para colocar com os outros scripts que já tenho, valeu.

CAPACITOR
01/06/2009, 00:05
Beline cara tem um problema que eu estou levando um sacode.Quando roda jogo de PC e o jogo estiver carregado o script falha credito a ser armazenado no advmenu.ini nem da o barrulho de coin ja fiz varios testes e nada. Na epoca o Brbranco comentou a respeito deste problema com os jogos de PC e ate deu uma dica para o teclado funcionar quando o jogo estiver aberto:e + ou - isso.


;verifica as janelas pela classe

AutoItSetOption("WinTitleMatchMode", 4)

Const $MASCARA = 0x8000

Const $TECLA4 = 52

Const $TECLA7 = 55

Const $TECLA9 = 57


$estado_tecla = _WinAPI_GetAsyncKeyState($TECLA9)

If BitAND($estado_tecla,$MASCARA) Then

PegaFicha()

EndIf


$estado_tecla = _WinAPI_GetAsyncKeyState($TECLA4)

If BitAND($estado_tecla,$MASCARA) Then

FechaEmulador()

EndIf


$estado_tecla = _WinAPI_GetAsyncKeyState($TECLA7)

If BitAND($estado_tecla,$MASCARA) Then

multifunc()

EndIf


Não sei porque so o "9" que falha e reparei que e de acordo com a tela do jogo.

Ve se vc resolve ou tem alguma dica para este problema.Valeu..

Belini
01/06/2009, 12:13
Se eu conseguir alguma coisa posto o resultado aqui.

evertonlindinho
01/06/2009, 17:05
belini


tenta usar o closemul ele é ideal para emuladores de pc.



capacitor



advmenu.rc


emulator "PCsGAMES" generic "PCsGAMES.BAT" "%s"

emulator_roms "PCsGAMES" "C:PCsGAMES\pcsgames"

emulator_altss "PCsGAMES" "C:PCsGAMES\snap


Ai criava um autoexec.bat com o nome de pcsgames q no caso seria o emulador

As rons eram simplesmente um bloco de notas vazio zipado que ficava no local indicado

E no pcsgames.bat tinhas as seguites linhas:


@echo off

if %1 == 1 goto TTL

if %1 == 2 goto Bad Boy II

if %1 == 3 goto Guitar Hero III

if %1 == 4 goto Homem Arranha

goto erro


:TTL

echo Chamando TTL

D:

cd\JOGOS\25 to Life #"Aqui e local onde o jogo esta instalado"

ttl.exe #"Aqui e o executavel do jogo"

goto fim


:Bad Boy II

echo Chamando Bad Boy II

D:

cd\JOGOS\Bad Boys II

bbpc.exe

goto fim


:Guitar Hero III

echo Chamando Guitar Hero III

D:

cd\JOGOS\Guitar Hero III

gh3.exe

goto fim


:Homem Arranha

echo chamando homem Arranha

D:

cd\jogos1\Activision\Spider-Man 2\System

Arranha.exe

goto fim


E no pcsgames.lst


game ( name 1 description "25 to Life" manufacturer " 2008/2009")

game ( name 2 description "Bad Boy II" manufacturer " 2008/2009")

game ( name 3 description "Guitar Hero III"manufacturer " 2008/2009")

game ( name 4 description "Homem Arranha 2"manufacturer " 2008/2009")


capacitor


esse jeito que vc fez eu tambem fiz e deu serto

só que eu tinha que criar um autoexec.bat para todos os jogos

imagina se eu tivesse uma maquina miljogos.

teria que criar mil autoexec.bat para cada um então usei o autoit ou o closemul.

é muito mais facil.

tenta

Belini
01/06/2009, 22:12
Capacitor deste jeito funcionou pelo menos já abriu o jogo agora vou tentar colocar isto para ser executado com o script aplicando as funções necessárias para o jogo funcionar por tempo se der certo eu posto o resultado.






spock disse:

tenta usar o closemul ele é ideal para emuladores de pc.


O que eu quero não é um emulador de jogos de pc o que eu quero é rodar jogos de pc que não precisam de emulador o jogo quando é instalado funciona sozinho sem precisar de emulador.





Capacitor estou garado no mesmo problema seu consegui fazer o script carregar junto com o emulador mais como você disse ele não esta aceitando o comando das teclas e outro problema eu não estou configurando as funções de joystick em nenhum emulador apenas as funções de teclado e no pro evolution só achei jeito de configurar as teclas para um jogador não abre a opção para configurar as teclas do joystick2 se alguém já passou por estes problemas e puder ajudar ficarei agradeçido.

CAPACITOR
02/06/2009, 03:15
Fala Belini eu falalei com vc que tinha este problema com jogo de PC mais o Brbranco deu uma dica que funciona:



;verifica as janelas pela classe

AutoItSetOption("WinTitleMatchMode", 4)

Const $MASCARA = 0x8000

Const $TECLA8 = 56

Const $TECLA9 = 57


;verifica se a tecla 8 esta presionada

$estado_tecla = _WinAPI_GetAsyncKeyState($TECLA8)

If BitAND($estado_tecla,$MASCARA) Then

Send("{enter}") ;por enquando estou usando isso, mas aqui irei colocar um a função para verificar mugenw.log onde ira passar as informações do andamento do jogo

Sleep(100)

Send("{e}")

Sleep(100)

Send("{e}")

EndIf


;verifica se a tecla esta presionada


$estado_tecla = _WinAPI_GetAsyncKeyState($TECLA9)

If BitAND($estado_tecla,$MASCARA) Then

Send("{ESC}"); tendo as informações necessaria para determinar o vencedor e ira sair do versus mode e entrar o arcade mode

Send("{ESC}")

Sleep(100)

Send("{down}")

Sleep(100)

;send("down")

Send("{e}")

EndIf

Tenta ai e depois me fala o resultado.



Fala Spock, vai ser dificil vc colocar 1000 jogos de PC ,pois a maioria deles usam mouse ou tem mais de 6 botões então não fica tão trabalhoso fazer por autoexec.bat pois são poucos jogos para colocar e o mais jogado e o PES2009 os outros e so para fazer numeros . Beline em relação ao controles aqui eu configurei pele snes "psxgamepd" fico show de bola so fiquei bolado q com script ele falha o credito as vezes.Eu acho que e por causa do grafico do jogo.E quando eu minimizo o jogo o credito não falha um.Se alguem deparar com este problema poste qualquer descoberta pois estou testando varias forma ,mais sem sucesso.Valeu..

bleachgames
03/06/2009, 14:28
to querendo compilar o advmenu aqui. ja pequei o source code e estava precisando das dependencias. pequei as indicadas no site do advmenu mas ta faltando alguma coisa. mesp vc poderia postar a listagem de dependencias que vc usou? (gcc etc....) se puder postar o esquema dos botoes tb agradeço.

Pedro Renato
03/06/2009, 18:05
Pessol Eu tem com algumas dúvidas, queria saber se alguém se habilita pra me ajudar, pode até ser pelo msn. To buscando uma solução melhor para a multijogos que estou montando. Não é um pc muito novo e por isso descartei o maximus. Baixei o tutorial do branco que fantatico, mas eu estou com algums probleminhas. Eu gostaria de emular uma versão do mame que eu etenho em particular que bem rápida e roda todos os jogos de neogeo, coisa que não cinsegui com o advmenu. estou descartando possibilidade de outros emuladores. Só vou usar o mame. Tentei baixar o advmenu e advmame mas não consewgui, ta dando erro nos arquivos e vou usar o do branco mesmo. tab tenho fificuldade de colocar o crediol não achei a tecla ne maneira nenhuma para dar credito...que puder fazer uma caridade e me ajudar adicionar no MSN pedroorenatto@hotmail.com eu dou um brinde. Vlw galera





O problema do emuladore que eu queria adicionar já foi Resolvido.

Pessol estou com algumas dúvidas, queria saber se alguém se habilita a me ajudar, pode até ser pelo msn. To buscando uma solução melhor para a multijogos que estou montando. Não é um pc muito novo e por isso descartei o maximus. Baixei o tutorial do brbranco que é fantastico, mas eu estou com algums probleminhas. Eu gostaria de emular uma versão do mame que eu tenho em particular que bem rápida e roda todos os jogos de neogeo, coisa que não cinsegui com o advmenu. O emulador ja foi substituido e esta funcionando. Estou tendo fificuldade de colocar o crédito não achei a tecla ne maneira nenhuma para dar credito no menu ele só manda crediti quando esta dentro do emulador, aí eu escuto o som do credito na letra "K"...Estou usando joystick lpt no padrão arcade par 2 jogadores, 6 de botoes de ação, um start para cada jogador e apenas um para credito(ficheiro) e um para sair do jogo. Estava usando esse esquema no maximus com o JoyToKey, Uma outra coisa que sta me deixando maluco que quando aperto e "ESC" ele fecha o emulkador...queria ter vuma opção para sair do jogo e voltar para seleção, não queria fechar. Meu arcade tera teclado dentro, não vou utilizar com frequencia, uma vez configurado fai ficar praticamante da mesma maneira sempre. Na verdade queria deixar igual as maquinas multijogos que teem por aí. Queria tirar uma onda com meus amigos. Quem puder fazer uma caridade e me ajudar adicionar no MSN pedroorenatto@hotmail.com eu dou um brinde. Vlw galera

Belini
04/06/2009, 01:08
Pedro renato vá postando as suas dúvidas que na medida do possível a galera vai te ajudando, você primeiro deve baixar o pacote com o advancemenu que o brbranco alterou foi por ele que começei e é com ele que estou até hoje pois ainda não sobrou tempo para tentar compilar da minha maneira e prá falar a verdade já esta bom assim, neste pacote o advancemenu dá crédito no botão7 do joystick1 e carrega o jogo no botão8 do joystick1, para trocar as lista é o botão2 e para mudar o formato da tela de apresntação é o botão3, é uma pena você não ter participado do fórum brarcade quando ele estava ativo pois lá o brbranco ensinava tudo passo a passo até que o membro do fórum conseguisse caminhar sozinho eu ainda não consigo pois participei do fórum apenas 2 meses o e ele saiu do ar quando eu ainda estava engatinhando, agora estou tentando me virar e aprender mais coisas, não querendo te desanimar sem ter uma pessoa que entenda muito de scripts para te orientar fica meio difícil colocar tudo funcionando no advancemenu pois tudo depende de scripts veja o meu caso estou nisto desde o final de dezembro e não são poucas horas por dia pela minha frequência no fórum dá prá você calcular e até hoje ainda tenho muitas dúvidas e muita coisa ainda não sei fazer sozinho, se você tiver determinação apesar das dificuldades que vai passar acho que você acaba conseguindo fazer a sua máquina.

Pedro Renato
04/06/2009, 02:02
Eu já baixei o pacote do BRbranco, só que os botoes nã batem com os que tenho no joystick, pois so tenho 7 botoes(seis de ação e 1 star para cada jogador) o oitavo seria o o ficheiro. Não precisava mudar as funcoes pelo joystick, só precisava carregar, sair do emulador sem fechr o frontend e colocar credito, detalhe, o credito só entra se não tiver na tela do front end...e quando entra se apertar o botão 1 mesmo que não inicie o emulador ele vai gastando...se puder me ajudar nisso agradeço. Me adiciona no MSn ae pedroorenatto@hotmail.com.

Belini
04/06/2009, 15:54
Pedro renato é isto que estou tentando te explicar neste pacote os botões já estão pré configurados assim para mudar isso só compilando o advancemenu de novo e nisso não posso te ajudar pois como disse antes ainda não sobrou tempo para tentar e estou usando o que veio no pacote mesmo, para ter todas as funções você terá que mudar para joystick de playstation pois pelo número de botões que você mencionou deve estar o usando o de super nintendo, aí você puxa os que precisar e deixa os outros sem usar, quanto ao msn por hora não dá pois estou com o tempo meio curto e essas explicações tomam tempo mais aqui no fórum dá prá ir te dando uma ajuda no que eu puder, quanto a dar um brinde eu e acho que mem um dos outros membros irão aceitar pois o que fazemos aqui é tentar ajudar um ao outro sem interesse financeiro.

Aldo
07/06/2009, 16:00
Seguinte pessoal to querendo desenvolver um scrip para arrumar as imagens para minhas roms de nintendo, sao mais de 2000, entao tinha pensado o seguinte:


Eu ia utilizar o advmenu dai o script enviaria um enter aguardava o jogo carregar depois enviaria um f12 (salva screnshots) depois um esc (sairia do jogo) depois um down (proximo jogo ) enter ...... assim sucessivamente o problema é que o advmenu nao aceitou o scrip de controle(dentrodo advmenu o scrip nao funciona) pq eu nao sei alguem tem alguma ideia ??? ( ou outra forma de fazer isso pois ainda falta rom de mega super nintendo e master systen somando umas 15.000)

Belini
07/06/2009, 16:51
Aldo sei que dá trabalho mais para ficar bom tem que ser manual mesmo pois se você fizer um script para isso não saberá qual quadro ele irá caturar, tem jogo que tem que dar start primeiro outros tem que apertar algum botão para chegar na tela que quer capturar de toda maneira você terá de carregar cada jogo para testar e ver quais irá deixar na lista quando for fazer estes testes aproveite e capture as fotos na tela que for mais adequada.





Aldo se as suas fotos tiverem o mesmo nome das suas roms você poderá usar o script que o brbranco fez para renomear jogos e fotos de super nintendo, além de renomear ele ainda cria o list para usar no advancemenu, estou postando o script dele ele está configurado para renomear arquivos .smc, para usar com outras extensões é só mudar no script eu usei ele nas roms de super nintendo e de nintendo64 e ajudou bastante.


Script do renomeador de arquivos:



#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_UseUpx=n

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

;Autoit V3

;Autor brbranco

;Data 06/03/2009

;Objetivo: renomear as roms do snes, fotos e criar um arquivo lst para o advmenu.

AutoItSetOption("WinTitleMatchMode", 4)


#include <GUIConstants.au3>


Local $origem_rom = "", $origem_foto = "", $inicial = "", $nome_lst = ""


#Region ### START Koda GUI section ###

;origem roms

$Form1_1 = GUICreate("Form1", 394, 324, 194, 117)

$Label1 = GUICtrlCreateLabel("Informe o caminho da pasta onde se encontram as roms a serem renomeadas", 8, 8, 369, 17)

$Input1 = GUICtrlCreateInput("D:\ARCADE\JOGOS\Snes", 8, 24, 369, 21)


;origem fotos

$Label3 = GUICtrlCreateLabel("Informe o caminho da pasta onde se encontram as fotos", 8, 56, 269, 17)

$Label4 = GUICtrlCreateLabel("Ou deixe em branco caso não queira renomear as fotos", 8, 72, 265, 17)

$Input2 = GUICtrlCreateInput("D:\ARCADE\snap\SNES", 8, 88, 369, 21)


;inicial

$Label2 = GUICtrlCreateLabel("Informe o nome inicial que os arquivos terão, com isso suas roms", 8, 120, 308, 17)

$Label6 = GUICtrlCreateLabel("serão renomeadas como snes0001 até snes9999", 8, 136, 244, 17)

$Input3 = GUICtrlCreateInput("snes", 8, 152, 369, 21)


;nome LST

$Label7 = GUICtrlCreateLabel("Informe o nome para o arquivo .LST que será gerado, esse arquivo será", 8, 208, 353, 17)

$Label8 = GUICtrlCreateLabel("criado na mesma para onde está esse script.", 8, 224, 214, 17)

$Input4 = GUICtrlCreateInput("SuperNes", 8, 240, 369, 21)


;botoes de ação

$Button1 = GUICtrlCreateButton("Verificar", 16, 280, 89, 33)

$Button2 = GUICtrlCreateButton("Renomear", 152, 280, 89, 33)

$Button3 = GUICtrlCreateButton("Sair", 304, 280, 65, 33)

GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###


While 1

$nMsg = GUIGetMsg()

Switch $nMsg

Case $GUI_EVENT_CLOSE

ExitLoop

Case $Button1

$origem_rom = GUICtrlRead($Input1)

$origem_foto = GUICtrlRead($Input2)

$inicial = GUICtrlRead($Input3)

$nome_lst = GUICtrlRead($Input4)

If Verifica($origem_rom, $origem_foto, $inicial, $nome_lst) == 0 Then

$origem_rom =""

EndIf

Case $Button2

If StringLen($origem_rom) == 0 Then

MsgBox(0,"Atenção","Antes de renomear clique no botão verificar.")

Else

Renomeia($origem_rom, $origem_foto, $inicial, $nome_lst)

EndIf

Case $Button3

ExitLoop

EndSwitch

WEnd


Exit 0 ;================= fim


;================================================= =======================

; funções utilizadas

;================================================= =======================

Func Verifica($rom, $foto, $inicial, $nome_lst)

Local $arquivo, $procura, $contador = 0

If Not FileExists($rom) Then

MsgBox(0,"Erro", "O caminho informado para a localização das roms, não existe")

Return 0

EndIf

If StringLen($foto) > 0 Then

If Not FileExists($foto) Then

MsgBox(0,"Erro", "O caminho informado para a localização das fotos, não existe")

Return 0

EndIf

EndIf

If (StringLen($inicial) > 10) Then

MsgBox(0,"Atenção", "Um bom nome para arquivos seria usar no maximo 8 caracteres.")

Return 0

EndIf

If StringLen($nome_lst) == 0 Then

MsgBox(0,"Erro", "Informe um nome para o arquivo LST que será criado.")

Return 0

EndIf


;verifica as roms

$procura = FileFindFirstFile( $rom & "\*.SMC")

If $procura == -1 Then

MsgBox(0, "Erro", "Não foi encontrado nenhum arquivo SMC na pasta especificada")

Return 0

EndIf


While 1

$arquivo = FileFindNextFile($procura)

If @error Then

ExitLoop

Else

$contador+=1

EndIf

WEnd

FileClose($procura)

MsgBox(0,"Resultado","Foram encontradas: " & String($contador) & ", roms")


;sai sem verificar as fotos, caso o caminho não tenha sido informado

If StringLen($foto) == 0 Then Return 1


;verifica as fotos

$contador=0

$procura = FileFindFirstFile( $foto & "\*.png")


If $procura == -1 Then

MsgBox(0, "Erro", "Não foi encontrado nenhum arquivo .png na pasta especificada")

Return 0

EndIf


While 1

$arquivo = FileFindNextFile($procura)

If @error Then

ExitLoop

Else

$contador+=1

EndIf

WEnd

FileClose($procura)

MsgBox(0,"Resultado","Foram encontradas: " & String($contador) & ", fotos")

Return 1

EndFunc


Func Renomeia($rom, $foto, $inicial, $nome_lst)

Local $novo_dir_rom, $novo_dir_foto, $procura, $arquivo, $file_lst, $linha_lst, $contador =0


$novo_dir_rom = $rom & "\roms_renomeadas"

$novo_dir_foto = $foto & "\fotos_renomeadas"

;cria um novo diretorio para as roms renomeadas

If Not FileExists($novo_dir_rom) Then

If Not DirCreate($novo_dir_rom) Then

MsgBox(0,"Erro","Não foi possivel criar uma nova pasta para as roms renomeadas")

Return

EndIf

EndIf

;cria um novo diretorio para as fotos renomeadas

If StringLen($foto) > 0 Then

If Not FileExists($novo_dir_foto) Then

If Not DirCreate($novo_dir_foto) Then

MsgBox(0,"Erro","Não foi possivel criar uma nova pasta para as fotos renomeadas")

Return

EndIf

EndIf

EndIf


;verifica as roms

$procura = FileFindFirstFile( $rom & "\*.SMC")

If $procura == -1 Then

MsgBox(0, "Erro", "Não foi encontrado nenhum arquivo SMC na pasta especificada")

Return

EndIf


;se o arquivo lst já existir o script não deve continuar

;isso porque irá apagar o conteudo anterior

If FileExists(@ScriptDir & "\" & $nome_lst & ".lst") Then

MsgBox(0,"Atenção","O arquivo " & $nome_lst & ".lst já existe" & @CRLF & _

"Você deve renomear esse arquivo, antes de continuar.")

Return

EndIf


;cria o arquivo .lst vazio

$file_lst = FileOpen(@ScriptDir & "\" & $nome_lst & ".lst", 1)

If $file_lst = -1 Then

MsgBox(0, "Erro", "Não foi possivel abrir ou criar o arquivo [ " & $nome_lst & ".lst ]")

Return

EndIf


SplashTextOn("Renomeando", "Iniciando...", -1, 100, -1, -1, 0, "", 10)

Sleep(2000)


While 1

$arquivo = FileFindNextFile($procura)

If @error Then

ExitLoop

EndIf


;pega somente o nome do arquivo

$arquivo=StringMid($arquivo,1, StringLen($arquivo) -4)


;inicia a copia

If FileCopy($rom & "\" & $arquivo & ".SMC", $novo_dir_rom & "\" & $inicial & String($contador + 1) & ".SMC", 1) == 1 Then

If StringLen($foto) > 0 Then

FileCopy($foto & "\" & $arquivo & ".png", $novo_dir_foto & "\" & $inicial & String($contador + 1) & ".png", 1)

EndIf


$linha_lst = "game ( name " & $inicial & String($contador + 1)

$linha_lst &= " description " & Chr(34) & $arquivo & Chr(34)

$linha_lst &= " drive " & Chr(34) & "jogo" & Chr(34) & " )"


FileWriteLine($file_lst, $linha_lst & @CRLF)

ControlSetText("Renomeando", "", "Static1", $arquivo)

$contador+=1

EndIf

WEnd

FileClose($procura)

FileClose($file_lst)

SplashOff()

EndFunc

Aldo
08/06/2009, 02:08
Belini


Me esplica o que faz esse script parece muito interessante!!!!

como fica alinha de comando para este script

Belini
08/06/2009, 15:58
Aldo ele renomeia as roms de super nintendo e também de outros consoles se você alterar no script a extensão que ele deve renomear, ele funciona assim eu já coloquei nele o endereço onde estão as minhas roms e onde estão as minhas fotos, você pode compilar ou executar sem compilar bastando clicar em run script, irá abrir uma janela com quatro campos todos eles podem ser alterados, o primeiro campo voê copia e cola o endereço das suas "roms", o segundo campo você coloca o endereço das suas "snaps" no terceiro campo você digita o nome que quer que as suas "roms" fiquem e no quarto campo o nome do arquivo "list" que o script irá criar, clique primeiro em verificar e depois em renomear ele irá mostrar quantos jogos e quantas fotos achou e depois começa a renomear vamos supor que você colocou o nome de game ele irá renomear cada jogo e cada foto assim game1,game2, game3...game999 etc, e irá criar um arquivo list para ser usado no advancemenu, não sei se já passou por isto mais muitos jogos de vídeo game não funcionam no advancemenu com o nome que foi baixado gera conflito com acentos, espaços e outros caracteres que se tiver no jogo ele não roda no advancemenu, usando este script renomeia todos os jogos e fotos de forma que o advancemenu roda normalmente, abaixo colocarei a ilustração da janela e as linhas que o script cria no arquivo list, espero que seja útil para você e para outros membros do fórum.


Linhas do arquivo .lst:



game ( name 0snes1 description "Aero The Acro-bat (U)" drive "jogo" )

game ( name snes2 description "Aero The Acro-bat 2 (U)" drive "jogo" )

game ( name snes3 description "Air Cavalry (U)" drive "jogo" )

game ( name snes4 description "Al Unser Jr's Road To The Top (U)" drive "jogo" )

.......

game ( name snes999 description "Alien 3 " drive "jogo" )


[attachment=765,91]

Aldo
09/06/2009, 01:37
Valeu garoto otima esplicação, fiz uns testes aki e achei muito legal!!!!!!

Belini
09/07/2010, 19:59
Tem alguns membros interesados em compilar o seu próprio advancemenu, não sei dizer ao certo mais me parece que ele é feito em c++, se alguém tiver o source e link's onde possa baixar o programa e as ferramentas necessárias para compilar ou outras informações favor postar aqui.

mutleey
09/07/2010, 20:23
no proprio site do advance menu vc encontra tudo o que vc precisa para compilar o advmenu


AdvanceMENU (http://advancemame.sourceforge.net/menu-download.html)

Belini
09/07/2010, 23:43
Valeu mutley, este link será muito útil pois sempre tem alguém me perguntando por "mp" como fazer a compilação do advancemenu e como eu ainda não tentei compilar fico sem ter como dar informações a este respeito, será mesmo muito útil este link.

pedrowarlock
13/12/2011, 19:14
Baixei os arquivos de compilação text.cc e menu.cc editei alguns comando no text.cc no bloca de notas e agora vem a pergunta...Como eu salvo tudo e testo?:confused:
preciso converte-los em exe? Se sim qual programa usar?

Belini
14/12/2011, 09:35
@Pedrowarlock:

1 - Digite primeiro em pesquisar prá ver se já existe um tópico com o assunto que quer, este aqui tem exatamente o mesmo nome do que criou e foi mesclado.
2 - Procure pesquisar sobre o assunto antes de postar, aqui no fórum tem muito material e pesquisando antes terá resposta muito mais rápido para suas dúvidas.
3 - procure se focar apenas em um assunto de cada vez e evite passar para outro antes de resolver o que já começou pois acabará não resolvendo nenhum deles.

pedrowarlock
02/01/2012, 02:02
Falha ao baixar o executável do MinGW. Não estou conseguindo baixar nenhuma versão. Pois todas que eu baixo apresenta o seguinte erro na instalação:
erro ao baixar "mingw-get.exe"
mingw-get.exe: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/libpopt-1.15-2-msys-1.0.13-dll-0.tar.lzma?download: download failed
http://prdownloads.sourceforge.net/mingw/cygutils-dos2unix-1.3.4-4-msys-1.0.13-bin.tar.lzma?download

Se alguém tem o programa no PC e poder upar para agente que está sofrendo. Eu agradeço muito!

https://lh4.googleusercontent.com/-QB57NmenPb8/TwEdbAraZ2I/AAAAAAAAAeY/rWfqN2kr8cI/w938-h527-k/Sem%2Bt%25C3%25ADtulo.jpg

Belini
02/01/2012, 10:30
@pedorwarlock, já procurou saber em qual linguagem o advancemenu foi feito? Tem alguma noção de como fazer as alterações que quer? Se respondeu não a uma destas perguntas ou se quer sua multijogos pronta em pouco tempo não perca tempo tentando fazer alterações do advancemenu e procure se focar primeiro em autoit pois o advancemenu depende de scripts prá funcionar e muitas das alterações você consegue fazer sem mexer no advmenu.

pedrowarlock
08/01/2012, 01:16
@pedorwarlock, já procurou saber em qual linguagem o advancemenu foi feito? Tem alguma noção de como fazer as alterações que quer? Se respondeu não a uma destas perguntas ou se quer sua multijogos pronta em pouco tempo não perca tempo tentando fazer alterações do advancemenu e procure se focar primeiro em autoit pois o advancemenu depende de scripts prá funcionar e muitas das alterações você consegue fazer sem mexer no advmenu.

Vou tentar com alguns editores de c++, mas mesmo assim obrigado pela atenção


no proprio site do advance menu vc encontra tudo o que vc precisa para compilar o advmenu


AdvanceMENU (http://advancemame.sourceforge.net/menu-download.html)

Olá Mutleey beleza!?

Eu fui lá no site do advmenu, mas fiquei confuso de compilar o advmenu. Tem como você dar uma explicada? Eu baixei o mingw mandei os comandos path=..\bin;..\include;..\lib e em seguida mandei "mingw32-make", mas só que deu alguns erros. Estou tentando compilar o advmenu. Eu apenas baixei e queria compilar direto. Eu teria que fazer alguma edição em algum arquivo do source para poder fazer isso?

ronaldo_spinola
26/01/2012, 00:25
pessoal, não teria como alguém disponibilizar o fonte do advmenu, pronto para compilação, eu já instalei o mingw, baixei o source só que só dá erro, alguém disponibiliza ai vai, só assim podemos melhorar este projeto.

ericitaquera
26/01/2012, 00:30
Ronaldo, o advmenu pronto para compilação está em http://advancemame.sf.net.

Gostaria de saber como exatamente vc quer contribuir com melhorias. E qual "projeto" é este?

flw!

amaral
16/11/2012, 01:28
CAPACITOR
cara se precisar compilar o advmenu me avisa que te passo os arquivos e ainda te explico como colocar o nome da sua firma na barra inferior do advmenu

airhead
16/11/2012, 10:55
CAPACITOR
cara se precisar compilar o advmenu me avisa que te passo os arquivos e ainda te explico como colocar o nome da sua firma na barra inferior do advmenu

Ae amaral faça um exercício de altruísmo: compartilhe o que sabe com todos.

CAPACITOR
16/11/2012, 16:14
amaral
beleza então faz um tutorial e posta aqui para todos que precisar fazer isso.Valeu.

michel almeida
16/11/2012, 21:34
e isso ai amaral vc e o cara posta ai um tutorial

amaral
16/11/2012, 23:12
estou fazendo assim que aprontar eu posto

esse aqui é um teste,ele ta completo com 2 roms cada emulador só para teste,veja como ficou,estou procurando os restante dos arquivos para terminar o tutorial

http://www.4shared.com/rar/Vu80iEP2/ARCADE_teste.html?

alexx_arcade
17/11/2012, 02:59
CAPACITOR
cara se precisar compilar o advmenu me avisa que te passo os arquivos e ainda te explico como colocar o nome da sua firma na barra inferior do advmenu

Colocar nome na barra inferior, parece interessante, dá a dica........ qual arquivo e qual linha tem que modificar?

amaral
17/11/2012, 14:09
alexx_arcade

baixa o arquivo que eu postei descompacta e testa como fica,estou separando os arquivos porque eu tinha formatado meu pc e perdi o que eu tinha na partição c: mas tinha salvo no meu pc em outra partição

pedrowarlock
04/12/2012, 03:27
Colocar nome na barra inferior, parece interessante, dá a dica........ qual arquivo e qual linha tem que modificar?


Só você ir em:
case sort_by_name : draw_tag_right(" ", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;

e colocar seu e mail entre aspas:
case sort_by_name : draw_tag_right("seuemail@gmail.com", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;

Lembrando que ficaria bom mudarm o COLOR_MENU_BAR_HIDDEN para COLOR_MENU_BAR

alexx_arcade
04/12/2012, 11:22
@ pedrowarloc, boa dica, vou fazer uns testes aqui....

kleber
15/12/2012, 22:12
alguem sabe se apgaram o topico q continha o pacote pra copilar o advemenu pois eu formatei meu pc e o programa eu perdi pois procurei no topico e nao acho agradeço.

kleber
18/06/2013, 22:16
galera venho pedir a ajuda de vcs pois eu procurei aqui e no site do advancemenu e nao achei os sorces para copilar o advemenu dos pra 98 alguem teria ai eu sei que é ultrapassado mas queria tentar copilar ele se alguem tiver agradeço.

airhead
18/06/2013, 23:11
galera venho pedir a ajuda de vcs pois eu procurei aqui e no site do advancemenu e nao achei os sorces para copilar o advemenu dos pra 98 alguem teria ai eu sei que é ultrapassado mas queria tentar copilar ele se alguem tiver agradeço.
O source é o do site do AdvanceMenu, a forma de compilar é que muda.
Para DOS usa-se o DJGPP.
Baixe esse pacote> http://www.mediafire.com/download/o5vnkasbhbicex5/djgpp-advmenu.zip
Extraia ma raiz do drive C:\ (vai criar o diretório djgpp).
Baixe o source do AdvanceMenu no site oficial e extraia em C:\djgpp\SOURCE (vai ficar mais ou menos assim: C:\djgpp\SOURCE\advancemenu).
Copie o os arquivos compile.bat e Makefile do diretório C:\djgpp\EXTRAS para o diretório C:\djgpp\SOURCE\advancemenu.
Executar o compile.bat.
Se tudo der certo será criado o executável.

kleber
18/06/2013, 23:16
link off mesmo copiando e colando o link poderia corrigir por favor agradeço.

airhead
18/06/2013, 23:18
link off mesmo copiando e colando o link poderia corrigir por favor agradeço.
Lamento dizer que o link está funcionando perfeitamente.
O problema deve ser a sua internet...

Fábio iGames
18/06/2013, 23:34
Acabei de baixar, o media fire é assim mesmo, fica dando erro de repair your download e reiniciando, mas tenta até conseguir que vai.
Comigo sempre fica nessa frescura, mas persite que o download começa.
Eu tô mais interessado em compilar para Windows mesmo,mas em DOS serve para futuras aprendizagens, afinal aprendendo o antigo você assimila o novo mais fácil.
Boa Sorte e posta o resultado.
E mais uma vez o grande airhead nos ajudando... OBRIGADÃO.

kleber
18/06/2013, 23:55
muito obrigado por disponibilizar airhead .Mas deu um erro aqui fiz tudo como foi descrito .
http://imageshack.us/a/img832/9673/6s5.png
Pode ser que esse erro é causado pelo uso do windous 7 ultimate que estou usando.

airhead
19/06/2013, 10:02
Eu acredito que seja por causa do Windows 7 mesmo.
Experimente o seguinte:
- Abra o Regedit
- Va até HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\WOW
- Na janela da Direita, click com o botão direito do mouse e escolha "Novo>Chave" e nomeie de DpmiLimit
- Click duas vezes em DpmiLimit e edite o valor para 0x7A12000 (ou 128000000 em decimal)
- Click no botão OK e feche o Regedit.

O que fizemos foi remover o limite de 32BM quando usamos as janelas do prompt de comando (ou seja, quando usamos o DOS embutido no Windows).

Se não funcionar procure instalar o Win98!!!
-

kleber
20/06/2013, 13:11
Grande airhead muito obrigado up na reputação Desculpe pelo link anterior pois o meu irmao mexeu e deletou ele da minha conta estou postando o link só do advemenu.exe 98 eu copilei mas nao testei aqui pois nao tenho extraia essa pasta na raiz da multijogos 98 e substitua todos os arquivos que pedirem ,gostaria que se alguem testasse tirasse um print e postasse para mim ver .http://www.4shared.com/rar/VlM9_djj/ADVEMENU98.html
um pergunta se alguem copilou esse advemenu poderia me dizer se é no menu.cc pois eu fiz algumas mudanças nele .agradeço.essas foram as mudanças .
case preview_snap: draw_tag_right("VERS:2013", xl, xr, y, in_separator, COLOR_MENU_BAR); break;
}

switch (sort_mode) {
case sort_by_group : draw_tag_right("group", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_name : draw_tag_right("MGMULTIGAMES", xl, xr, y, in_separator, COLOR_MENU_BAR); break;
case sort_by_root_name : draw_tag_right("parent", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_time : draw_tag_right("time", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_session : draw_tag_right("play", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_year : draw_tag_right("year", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_manufacturer : draw_tag_right("manuf", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_type : draw_tag_right("type", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_size : draw_tag_right("size", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_res : draw_tag_right("res", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_info : draw_tag_right("info", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_timepersession : draw_tag_right("timeperplay", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case sort_by_emulator : draw_tag_right("emulator", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
}

switch (difficulty) {
case difficulty_none : draw_tag_right("mgdiversoes@hotmail.com", xl, xr, y, in_separator, COLOR_MENU_BAR); break;
case difficulty_easiest : draw_tag_right("easiest", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case difficulty_easy : draw_tag_right("easy", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case difficulty_medium : draw_tag_right("normal", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case difficulty_hard : draw_tag_right("hard", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case difficulty_hardest : draw_tag_right("hardesh", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
}

mutleey
20/06/2013, 13:29
porque usar um so tão desatualizado, vc pretende usar placas antigas pra montar multijogos?

kleber
20/06/2013, 13:34
Eu uso atualmente pra xp é mais pra aprendizado mesmo pois queria saber se aparecia o nome na barra inferior ,pois vi em muitas multijogos 98 com o nome tanto na barra inferior como na superior .

Fábio iGames
22/06/2013, 10:24
estou fazendo assim que aprontar eu posto

esse aqui é um teste,ele ta completo com 2 roms cada emulador só para teste,veja como ficou,estou procurando os restante dos arquivos para terminar o tutorial

http://www.4shared.com/rar/Vu80iEP2/ARCADE_teste.html?
@amaral (http://www.arcadebr.com/member.php?u=4150)
Já terminou o tutorial?
Baixei seu teste e outros que você postou aqui pelo Fórum,e vi que você colocou seu email.
Quero compilar a ADVMENU com mais emuladores por habilidade e personalizar também.
Sobre o advmenu.rc já descobri todas suas funcionalidades, mudar cores, posições e etc.
Fiz até um explicativo de cada item do advmenu.rc, pra quando eu precisar personalizar pro cliente.
Se puder me ajudar fico grato.

kleber
24/06/2013, 23:02
Fábio iGamespra colocar seu email edite no arquivo menu.cc switch (preview) {
case preview_flyer: draw_tag_right("flyers", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case preview_cabinet: draw_tag_right("cabinets", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case preview_icon: draw_tag_right("icons", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case preview_marquee: draw_tag_right("marquees", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case preview_title: draw_tag_right("titles", xl, xr, y, in_separator, COLOR_MENU_BAR_HIDDEN); break;
case preview_snap: //BRANCO
if ( brTipo )
draw_tag_right(" www.seuemail.com FICHAS", xl, xr, y, in_separator, COLOR_MENU_BAR);
else
draw_tag_right(" www.seuemail.com TEMPO", xl, xr, y, in_separator, COLOR_MENU_BAR);
break;
}
pra colocar mais emuladores de credito edite no arquivo menu.cc aqui EmuladorAtivo.clear(); //branco
EmuladorAtivo = rs.current_game->emulator_get()->user_name_get();
tipoEmu=0;
if (EmuladorAtivo.compare( "ARCADE" )== 0)
tipoEmu = 1;
if (EmuladorAtivo.compare( "NEOGEO" )== 0)
tipoEmu = 1;
if (EmuladorAtivo.compare( "CAPCOM" )== 0)
tipoEmu = 1;
if (EmuladorAtivo.compare( "MODEL2" )== 0)
tipoEmu = 1;
if (EmuladorAtivo.compare( "ZINC3D" )== 0)
tipoEmu = 1;
if (EmuladorAtivo.compare( "emulador " )== 0) aqui coloca o nome do emulador que vai usar para credito
tipoEmu = 1;

Tehuan
25/06/2013, 01:15
Boa kleber

Mandou benzasso meu camarada...

Up na rep..

Fábio iGames
27/06/2013, 10:54
@kleber (http://www.arcadebr.com/member.php?u=7823)
Vou tentar quando tiver um tempo, tô cheio de trampo, até dispensei uns clientes, acho que vou ter que prorrogar alguns projetos.
Mas todo dia tiro um tempinho pro ARCADEBR, Autoit + Multi Arcade, e ainda consertar, montar e etc... Aos poucos eu chego lá.
Valeu, Obrigadão.

esiocosta
04/11/2013, 09:07
amigos, sei que o assunto ja foi discutido no fórum mas não dei importância pois na época não tinha emuladores de tempo.

eu uso lista travada, só libera o jogo depois de depositado uma ficha.

coloquei emulador de tempo e coloquei para 10 minutos, acontece é que se o cliente voltar ao front mesmo tendo tempo o advmenu não libera o start para escolher outro jogo.

ex: tem ainda 8 minutos e volto para o front, terei que colocar mais um credito para que eu possa escolher outro jogo assim somando para 18 minutos.

eu gostaria que o advmenu liberasse o joga até faltando menos de 1 minuto...

ou o comando para verificar se a fichas no inicio dos scripts dos jogos a credito se não ouver fichas ele fecha e retorna para o front, assim também ficaria bom ai eu poderia usar a lista destravada pois os scripts de jogos a tempos já tem essa função de voltar ao front em 30 segundos se não depositar uma ficha .

amaral
04/11/2013, 10:08
isso acontece mesmo,um exemplo uma ficha esta configurara para dar 10 minutos,se tiver 8 quer dizer que tem menos de uma ficha na matematica o advmenu bloqueia o acesso,só vai jogar o restante se colocar outra ficha ou se deixar o menu destravado

esiocosta
04/11/2013, 11:35
isso acontece mesmo,um exemplo uma ficha esta configurara para dar 10 minutos,se tiver 8 quer dizer que tem menos de uma ficha na matematica o advmenu bloqueia o acesso,só vai jogar o restante se colocar outra ficha ou se deixar o menu destravado

tenho a multi gametech e nela o advmenu aceita com menos de 10 minutos, mas vamos lá, vc pode me ajudar então no script do mame para que ele volte ao menu se não tiver credito...

amaral
05/11/2013, 01:41
basta adaptar o script ocioso que o CAPACITOR postou,


;****************************************
;Autoit V3
;Autor brbranco
;Data 29/01/2008
;****************************************

#include <WindowsConstants.au3>

If NOT $CmdLine[0] = 1 Then
MsgBox (0, "Erro 1", "O advmenu não passou o nome da rom", 5)
Exit ( 0 )
EndIf

;importante verificar o valor pelo painel de controle->joystick->propriedades, ver os valores de "X, Y"
Const $JOY_CENTRO = 32767
Const $uJoyID0 = 0
Const $uJoyID1 = 1
Const $uJoyID2 = 2
Const $idTimer = 1001

;variaveis globais
Global $iTimer1
$iTimer1=0

;variaveis locais
Dim $TempoAtual, $TempoOcioso, $b0,$b1, $b2, $hCallBack, $str, $x0,$x1, $x2,$y0 ,$y1, $y2, $iniTempo, $iniBotao, $PID, $Sair

;cria a strutura

$str = "int x;int y;int z;int buttons"
GLOBAL $JOYINFO0 = DllStructCreate($str)
if @error Then
MsgBox(0,"Erro","Erro criando a strutura1: " & @error);
exit 0
endif

$str = "int x;int y;int z;int buttons"
GLOBAL $JOYINFO1 = DllStructCreate($str)
if @error Then
MsgBox(0,"Erro","Erro criando a strutura1: " & @error);
exit 0
endif
GLOBAL $JOYINFO2 = DllStructCreate($str)
if @error Then
MsgBox(0,"Erro","Erro criando a strutura1: " & @error);
exit 0
endif

;chama o contador de tempo
$TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if @error Then
MsgBox(0,"Erro","Erro chamando GettickCount: " & @error);
exit 0
endif

;cria a função callback
$hCallBack = DllCallbackRegister("_TimerCallBackFunc", "none", "hwnd;int;int;dword")
$iTimer1 = _WinAPI_SetTimer(0, $idTimer, 1, DllCallbackGetPtr($hCallBack))

;************************************************ rotina principal ************************************************** ************
;rotina para ler um arquivo ini, que irá conter o valor do Tempo Ocioso,...
$iniTempo = IniRead("c:\game", "timer", "minutos", "0")
;rotina para ler qual botão foi informado como Saida
;$iniBotao = IniRead( "timer.ini", "BOTOES", "SAIDA", "1" )
$Sair = Number($iniBotao)



;rotina para chamar o mameui32.exe
$Resultado = ShellExecute("mameui32.exe", $CmdLine[1], @ScriptDir)




While 1
;pega os valores preenchidos pela função JoyGetPos
$b0=DllStructGetData($JOYINFO0,"buttons")
$b1=DllStructGetData($JOYINFO1,"buttons")
$b2=DllStructGetData($JOYINFO2,"buttons")
$x1=DllStructGetData($JOYINFO1,"x")
$x2=DllStructGetData($JOYINFO2,"x")
$y1=DllStructGetData($JOYINFO1,"y")
$y2=DllStructGetData($JOYINFO2,"y")

;verifica se o botão sair foi pressionado
;If BitAND($b1, $Sair) Then
; $PID =ProcessExists("mameui32.exe")
; If $PID Then
; ProcessClose($PID)
; msgbox(0,"Pedido de saida","O botão Sair foi pressionado")
; ExitLoop
;Else
; msgbox(0,"Pedido de saida","O botão Sair foi pressionado, mas o emulador não foi localizado.")
; ExitLoop
;EndIf
; EndIf

;verifica o estado do joystick, se pressionado atualiza o tempo ocioso
if ($b0 <> 0) Or ($b1 <> 0) Or ($b2 <> 0) Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $x0 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $x1 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $x2 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $y0 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $y1 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $y2 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")

;testa o tempo ocioso, se alcansado fecha o emulador e sai
$TempoAtual = DllCall("kernel32.dll", "int", "GetTickCount")
if ($TempoAtual[0] - $TempoOcioso[0] ) > (Number($iniTempo) * 1000) then
FECHAEMULADOR()

ExitLoop
;EndIf
EndIf
WEnd

;finaliza o timer, a função callback, libera a memoria alocada pelas estruturas
_WinAPI_KillTimer(0, $iTimer1)
DllCallbackFree($hCallBack)
$JOYINFO0 =0
$JOYINFO1 =0
$JOYINFO2 =0
Exit 0
;************************************************* ****** fim ************************************************** *******************

Func _WinAPI_SetTimer($hWnd, $iIDEvent, $iElapse, $pTimerFunc = 0)
Local $iResult = DllCall("user32.dll", "int", "SetTimer", "hwnd", $hWnd, "int", $iIDEvent, "int", $iElapse, "ptr", $pTimerFunc)
If @error Then Return SetError(-1, -1, 0)
Return $iResult[0]
EndFunc ;==>_WinAPI_SetTimer

Func _WinAPI_KillTimer($hWnd, $iIDEvent)
Local $iResult = DllCall("user32.dll", "int", "KillTimer", "hwnd", $hWnd, "int", $iIDEvent)
If @error Then Return SetError(-1, -1, 0)
Return $iResult[0] <> 0
EndFunc ;==>_WinAPI_KillTimer

;função callback, testa o estado de 2 joystick
Func _TimerCallBackFunc($hWnd, $Msg, $iIDTimer, $dwTime)
local $Rjoy0=DllCall("winmm.dll", "int", "joyGetPos", "int", $uJoyID0, "ptr", DllStructGetPtr($JOYINFO0))
local $Rjoy1=DllCall("winmm.dll", "int", "joyGetPos", "int", $uJoyID1, "ptr", DllStructGetPtr($JOYINFO1))
local $Rjoy2=DllCall("winmm.dll", "int", "joyGetPos", "int", $uJoyID2, "ptr", DllStructGetPtr($JOYINFO2))
EndFunc ;==>_TimerCallBackFunc

estou usando ele e funciona bem


esiocosta

conseguiu compilar o advmenu para dar creditos com a tecla do teclado?

esiocosta
05/11/2013, 09:08
basta adaptar o script ocioso que o CAPACITOR postou,


;****************************************
;Autoit V3
;Autor brbranco
;Data 29/01/2008
;****************************************

#include <WindowsConstants.au3>

If NOT $CmdLine[0] = 1 Then
MsgBox (0, "Erro 1", "O advmenu não passou o nome da rom", 5)
Exit ( 0 )
EndIf

;importante verificar o valor pelo painel de controle->joystick->propriedades, ver os valores de "X, Y"
Const $JOY_CENTRO = 32767
Const $uJoyID0 = 0
Const $uJoyID1 = 1
Const $uJoyID2 = 2
Const $idTimer = 1001

;variaveis globais
Global $iTimer1
$iTimer1=0

;variaveis locais
Dim $TempoAtual, $TempoOcioso, $b0,$b1, $b2, $hCallBack, $str, $x0,$x1, $x2,$y0 ,$y1, $y2, $iniTempo, $iniBotao, $PID, $Sair

;cria a strutura

$str = "int x;int y;int z;int buttons"
GLOBAL $JOYINFO0 = DllStructCreate($str)
if @error Then
MsgBox(0,"Erro","Erro criando a strutura1: " & @error);
exit 0
endif

$str = "int x;int y;int z;int buttons"
GLOBAL $JOYINFO1 = DllStructCreate($str)
if @error Then
MsgBox(0,"Erro","Erro criando a strutura1: " & @error);
exit 0
endif
GLOBAL $JOYINFO2 = DllStructCreate($str)
if @error Then
MsgBox(0,"Erro","Erro criando a strutura1: " & @error);
exit 0
endif

;chama o contador de tempo
$TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if @error Then
MsgBox(0,"Erro","Erro chamando GettickCount: " & @error);
exit 0
endif

;cria a função callback
$hCallBack = DllCallbackRegister("_TimerCallBackFunc", "none", "hwnd;int;int;dword")
$iTimer1 = _WinAPI_SetTimer(0, $idTimer, 1, DllCallbackGetPtr($hCallBack))

;************************************************ rotina principal ************************************************** ************
;rotina para ler um arquivo ini, que irá conter o valor do Tempo Ocioso,...
$iniTempo = IniRead("c:\game", "timer", "minutos", "0")
;rotina para ler qual botão foi informado como Saida
;$iniBotao = IniRead( "timer.ini", "BOTOES", "SAIDA", "1" )
$Sair = Number($iniBotao)



;rotina para chamar o mameui32.exe
$Resultado = ShellExecute("mameui32.exe", $CmdLine[1], @ScriptDir)




While 1
;pega os valores preenchidos pela função JoyGetPos
$b0=DllStructGetData($JOYINFO0,"buttons")
$b1=DllStructGetData($JOYINFO1,"buttons")
$b2=DllStructGetData($JOYINFO2,"buttons")
$x1=DllStructGetData($JOYINFO1,"x")
$x2=DllStructGetData($JOYINFO2,"x")
$y1=DllStructGetData($JOYINFO1,"y")
$y2=DllStructGetData($JOYINFO2,"y")

;verifica se o botão sair foi pressionado
;If BitAND($b1, $Sair) Then
; $PID =ProcessExists("mameui32.exe")
; If $PID Then
; ProcessClose($PID)
; msgbox(0,"Pedido de saida","O botão Sair foi pressionado")
; ExitLoop
;Else
; msgbox(0,"Pedido de saida","O botão Sair foi pressionado, mas o emulador não foi localizado.")
; ExitLoop
;EndIf
; EndIf

;verifica o estado do joystick, se pressionado atualiza o tempo ocioso
if ($b0 <> 0) Or ($b1 <> 0) Or ($b2 <> 0) Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $x0 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $x1 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $x2 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $y0 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $y1 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")
if $y2 <> $JOY_CENTRO Then $TempoOcioso = DllCall("kernel32.dll", "int", "GetTickCount")

;testa o tempo ocioso, se alcansado fecha o emulador e sai
$TempoAtual = DllCall("kernel32.dll", "int", "GetTickCount")
if ($TempoAtual[0] - $TempoOcioso[0] ) > (Number($iniTempo) * 1000) then
FECHAEMULADOR()

ExitLoop
;EndIf
EndIf
WEnd

;finaliza o timer, a função callback, libera a memoria alocada pelas estruturas
_WinAPI_KillTimer(0, $iTimer1)
DllCallbackFree($hCallBack)
$JOYINFO0 =0
$JOYINFO1 =0
$JOYINFO2 =0
Exit 0
;************************************************* ****** fim ************************************************** *******************

Func _WinAPI_SetTimer($hWnd, $iIDEvent, $iElapse, $pTimerFunc = 0)
Local $iResult = DllCall("user32.dll", "int", "SetTimer", "hwnd", $hWnd, "int", $iIDEvent, "int", $iElapse, "ptr", $pTimerFunc)
If @error Then Return SetError(-1, -1, 0)
Return $iResult[0]
EndFunc ;==>_WinAPI_SetTimer

Func _WinAPI_KillTimer($hWnd, $iIDEvent)
Local $iResult = DllCall("user32.dll", "int", "KillTimer", "hwnd", $hWnd, "int", $iIDEvent)
If @error Then Return SetError(-1, -1, 0)
Return $iResult[0] <> 0
EndFunc ;==>_WinAPI_KillTimer

;função callback, testa o estado de 2 joystick
Func _TimerCallBackFunc($hWnd, $Msg, $iIDTimer, $dwTime)
local $Rjoy0=DllCall("winmm.dll", "int", "joyGetPos", "int", $uJoyID0, "ptr", DllStructGetPtr($JOYINFO0))
local $Rjoy1=DllCall("winmm.dll", "int", "joyGetPos", "int", $uJoyID1, "ptr", DllStructGetPtr($JOYINFO1))
local $Rjoy2=DllCall("winmm.dll", "int", "joyGetPos", "int", $uJoyID2, "ptr", DllStructGetPtr($JOYINFO2))
EndFunc ;==>_TimerCallBackFunc

estou usando ele e funciona bem


esiocosta

conseguiu compilar o advmenu para dar creditos com a tecla do teclado?

eu uso pela jamma e pra mim não é preciso

esiocosta
07/11/2013, 22:00
tem como fazer o advmenu liberar o start com menos de 10 minutos ?