Info compilazione mame

Il database che raccoglie tutte le informazioni sui giochi, video, screenshot e tanto altro ancora

Moderatore: Moderatore ADB

Avatar utente
0zzy

Donatore
Affezionato
Affezionato
Messaggi: 146
Iscritto il: 16/01/2015, 14:40
Medaglie: 1
Città: VE
Grazie Inviati: 5 volte
Grazie Ricevuti: 1 volta

Info compilazione mame

Messaggio da 0zzy »

Ciao, leggevo che tra qualche versione il mame non verrà piu rilasciato ufficilamente a 32bit.
Per questo ma anche per altri motivi, provo a scrivere qui, nell'idea di mettermi in contatto con qualcuno che gia abbia avuto esperienze in merito alla compilazione del mame e che mi possa chiarire un po le idee sull'argomento.

Ho scoperto quest'utility che, senza troppi sangue da naso, potrebbe tornarmi utile. Solo che ora arrivano i dubbi:
- i sorgenti da cui partire suppongo siano quelli del mame "vanilla", corretto?
- suppongo che rendere groovy il mame sia l'applicazione di un .diff (in particolare, per l'ultimo mame, credo sia il file 0214_groovymame_017o.diff reperibilie su questo drive , corretto? l'applicazione di questo .diff rende anche la mia versione no-nag?
- a cosa servirebbe il file .diff presente sempre nel drive che ho indicato prima?
- leggevo che per abilitare gli hiscore, serve un ulteriore .diff, è corretto? suppongo ci sia un hiscore diff per la medesima versione del mame che sto cercando di compilare. Qui si fermano però alla versione 0.178, ma.. forse non è la repository ufficiale (?)
- Se aggiorno i vari elementi presenti nell'utility mame compiler 64, in realta tutte le componenti fanno riferimento a versioni datate di mame, sia per quanto riguarda i file sorgente, sia per i diff relativi agli high score ecc...suppongo che potrei fregarmene e dare manualmente le varie componenti aggiornate.
Direi che per iniziare, intanto, queste domande possano bastare <-on_lol->
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: Info compilazione mame

Messaggio da motoschifo »

Molte domande, forse troppe 8-)

La compilazione del Mame è come la compilazione di qualsiasi altro programma per pc, anche se in questo caso la complessità è molto alta perchè disponibile per molte piattaforme diverse.
Applicare i diff richiede un minimo di manualità, se le cose vanno per il verso giusto, ma se ci sono problemi potrebbe diventare impossibile saltarci fuori senza delle basi di programmazione.
L'ambiente di sviluppo deve essere costantemente aggiornato e negli anni le cose sono cambiate parecchie volte (e continueranno a farlo immagino).

L'abbandono dei 32 bit lo vedo come qualcosa di positivo, anzi secondo la mia opinione i 32 bit sono stati supportati fin troppo, io li avrei abbandonati "decenni" fa. Il motivo è comunque legato all'ambiente di sviluppo, alle librerie e a tutto ciò che circonda un programma. Se il Mame vuole espandersi per includere nuove funzioni, non può fare altro che seguire le innovazioni tecnologiche che portano, ovviamente, all'abbandono di hardware vecchio (es. le cpu 286 non sono supportate da tempo).

Ogni modifica che hai citato (hiscore, nonag, ecc.) deve stare al passo della versione ufficiale che cambia ogni mese, perchè non sempre (quasi mai a parte il nonag) sono applicabili con i nuovi sorgenti. Ma queste differenze potrebbero essere poca roba oppure qualcosa di insormontabile, se non andando a cambiare logiche di base. Ma se hai quel tipo di competenze non ti si presenta nemmeno il problema di reperire i "diff", ci metti meno a farti le cose da solo.

Io ho seguito l'hiscore fino al suo abbandono (è stato inglobato nel Mame una dozzina di versioni fa o forse più) e così altre modifiche, mentre tutta la parte Groovy non mi serve e quindi non mi ci sono dedicato se non sporadicamente e su richiesta.
Ma da qui a mantenere la versione a 32 bit, per esempio, a 10 release di distanza dal suo abbandono, la vedo molto problematica. Specialmente se il team Mame sfrutta funzioni e librerie disponibili solo nei processori a 64 bit.
In questo caso io terrei l'ultimo exe e mi godrei quello.

L'utility che hai citato, insieme ad altre che ormai non sono più aggiornate, credo di averla usata un paio di volte ma ho avuto problemi. Considera che si basa su su file già disponibili online da altri, quindi in realtà è un front-end per la compilazione del Mame con patch. Queste patch devono essere state preparate da qualcuno e in base all'ordine in cui le applichi potrebbe cambiare il risultato, o anche non essere compilabile.
In pratica chi prepara questi diff potrebbe fornire anche gli exe con poco sforzo, o i sorgenti già modificati, perchè basta un carattere in più per mandare all'aria tutto quanto.
Io per es. in alcuni casi compilavo correttamente ma poi con alcuni giochi andava tutto in crash.

Ho creato un thread che tengo aggiornato mensilmente da 5 anni:
http://arcadeitalia.net/viewtopic.php?f=20&t=19553
come vedi l'hiscore è stato integrato dalla versione 0.172.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
0zzy

Donatore
Affezionato
Affezionato
Messaggi: 146
Iscritto il: 16/01/2015, 14:40
Medaglie: 1
Città: VE
Grazie Inviati: 5 volte
Grazie Ricevuti: 1 volta

Re: Info compilazione mame

Messaggio da 0zzy »

Ciao motoschifo, grazie per essere intervenuto, un po mi hai smontato, non so se ho ancora voglia di cimentarmi sulla compilazione, dopo che, anche tu hai riscontrato noie.

Condivido con te il pensiero sul mantenimento oltre tempo delle applicazioni a 32bit.
In realtà, ripensandoci, il mio obiettivo non vuole essere quello di prorogarne il rilascio in futuro, ma con quella che sarà l'ultima release ufficiale, generare un ultimo groovymame che soddisfi le mie esigenze cioe:
no-nag,
no-pot
e highscore (anche se ora da quanto mi hai scritto, ho capito che è una funzionalità gia compresa).

Conosco bene il tuo drive e quello nel link che mi hai passato, sono pagine che in questi 2 giorni mi si sono riproposte piu volte mentre cercavo informazioni :D

Io ci provo comunque..se sento puzza di bruciato spengo :)
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: Info compilazione mame

Messaggio da motoschifo »

Bisogna sempre provare, io ti ho avvisato di eventuali casini che potresti incontrare ma ciò non toglie che comunque sperimentare fa bene.
Secondo me l'ultima release, se mai accadrà sul serio, sarà compilata in tutte le salse e magari anche per svariati mesi/anni postumi. In fondo, fino a quando non romperanno sul serio la compatibilità, la compilazione a 32 bit potrebbe essere più semplice del previsto.
Io per es. ci proverò, come è stato per tutte le altre modifiche.

Secondo me il team vuole semplicemente concentrare gli sforzi sulle nuove implementazioni senza doversi tenere legata alla vecchia architettura in maniera ufficiale.
Però non mi sono informato sulla cosa, al momento non mi interessa a dire il vero.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
0zzy

Donatore
Affezionato
Affezionato
Messaggi: 146
Iscritto il: 16/01/2015, 14:40
Medaglie: 1
Città: VE
Grazie Inviati: 5 volte
Grazie Ricevuti: 1 volta

Re: Info compilazione mame

Messaggio da 0zzy »

Visto che MameCompiler64 non viene piu aggiornato, sebbene abbia provato a passare manualmente sorgenti aggiornati e i diff che mi interessano, ho trovato quest'alternativa, che potrebbe anche andare, se trovo che il modo di capire come risolvere quest'errore makefile:1072: *** MINGW32 is not set. Stop.
Sto provando a settare manualmente il path per MINGW32 ma..mi sa che sbaglio qualcosa.
Avatar utente
0zzy

Donatore
Affezionato
Affezionato
Messaggi: 146
Iscritto il: 16/01/2015, 14:40
Medaglie: 1
Città: VE
Grazie Inviati: 5 volte
Grazie Ricevuti: 1 volta

Re: Info compilazione mame

Messaggio da 0zzy »

Trovato..shh..sta compilando..qualcosa..tengo bassa pure la voce in casa...
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: Info compilazione mame

Messaggio da motoschifo »

La usavo tanto tempo fa, poi anche lui aveva smesso di aggiornarla e ad un certo punto aveva chiuso tutto rimuovendo exe, diff e sito senza dire nulla. Avevo contattato l'autore e mai avuto risposta, così ho fatto da solo <-pardon->
Si vede che ora ha ripreso.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
0zzy

Donatore
Affezionato
Affezionato
Messaggi: 146
Iscritto il: 16/01/2015, 14:40
Medaglie: 1
Città: VE
Grazie Inviati: 5 volte
Grazie Ricevuti: 1 volta

Re: Info compilazione mame

Messaggio da 0zzy »

hehe..aspetta..mica è andato tutto come avrei voluto.
Ora non capisco dove si incarta il tutto, in effetti io vorrei fare tutto in un colpo: aggiungere diff, compilarlo per x32 ecc..
Mi sa che mi convien provare a compilarlo liscio liscio, e vedere se almeno cosi va, altrimenti non capisco se si incarta nella semplice compilazione o nell'aggiunta delle diff o che altro..

Ero abituato a compilare hello word, al piu mancava sempre un ; da qualche parte o una parentesi <-on_lol-> mi sembra assurdo che compilare il mame sia cosi ostico. Forse bisognerebbe fare a manina tutto, ma non sono ancora cosi esperto
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: Info compilazione mame

Messaggio da motoschifo »

Non è ostico compilare il Mame, ma qualsiasi progetto un po' grande, anche quelli per esempio che faccio a lavoro e sono scritti in un "banalissimo e piattissimo" tecnologia C#... a volte viene da chiedersi il perchè di tante cose ma pazienza.

Inoltre se non sai cosa fa sotto al cofano, la compilazione diventa man mano più complessa se ti sposti dallo standard. Applicando patch fatte da altri, magari con altre configurazioni o versioni simili, tutto si complica ancora di più.
Aggiungi infine che ogni release del Mame potrebbe richiedere un compilatore, un ambiente (sistema operativo, programmi, librerie) differenti. Io per compilarle un po' tutte ho una dozzina di setup differenti, si spazia da Windows 95 per le prime fino a Windows 10 per le ultime a cui sto ormai passando. Sono sistemi dedicati, non c'è altro perchè se poi aggiungi ambienti, linguaggi, librerie e driver potresti avere conflitti. Addirittura io ne ho due diversi in base alla compilazione a 32 o 64 bit, quindi per l'ultima del Mame 0.215 ho 4 macchine virtuali dedicate.
In questo momento mi manca l'ultima 215 per Linux 64 bit che ha dato errori stanotte, le altre 3 sono a posto già pacchettizzate in attesa dell'upload che farò oggi o domani.

Però, se vuoi capire meglio cosa succede, la prima operazione è iniziare con il Mame liscio che arriva dal sito. Quello ti dice se il tuo ambiente è compatibile oppure no con i sorgenti. In caso positivo, qualsiasi patch applicata è colpa della patch stessa, quindi vai dentro e cambi quello che devi cambiare fino a risolvere tutti gli errori. Alcuni compilatori devono per es. ignorare i warning (NOWERROR=1 nel makefile), altri hanno bisogno di piccoli aggiustamenti, ecc.
Ogni volta, almeno nel mio caso, le cose cambiano... motivo per il quale ci vuole tempo per arrivarci in fondo.
Una volta compilato, accertati che i giochi funzionino perchè non è detto. Quindi io faccio test con una ventina di giochi scelti a caso (tutti diversi, comprese alcune console) e vedo se va in crash il sistema, se l'audio si sente bene, se il video scatta, se i menu sono a posto, ecc. Si tratta di un system test generico, non entro nel merito del gioco ma mi accerto che non ci siano problemi. Se noto qualcosa, provo l'exe ufficiale per capire se dipende da me, dalla patch o dal gioco.
Altre volte devo dare un make clean perchè alcune modifiche non vengono recepite bene, e comunque per le compilazioni che pubblico parto sempre da un clean quindi la compilazione dura parecchio (ma solo così evito alcuni spiacevoli effetti indesiderati, tipicamente qualche crash in alcuni giochi).

Come vedi queste sono le basi, una volta capito come muoverti capirai che i programmi che fanno tutto non servono realmente, anzi non servono proprio se non a chi è completamente a digiuno di programmazione e non approfondire. Ma in caso di errori, sarà difficile intervenire...

Per darti qualche numero, la patch per i miei videosnaps mi è "costata" un mesetto di lavoro tra sere e week-end. Poi, prima di pubblicarla nei sorgenti ufficiali Mame, ho curato tanti aspetti che non avevo nemmeno considerato (pulizia del codice, manuale, casi di problemi, traduzione, ecc.)
Ovviamente per me è stato qualcosa di formidabile perchè quella modificha la dovevo replicare ogni mese e il Mame ha avuto almeno 3 grossi cambiamenti da quando ho iniziato a farla... ora tutti i casini se li smazzano altri, se non compilano e causano errori nelle mie modifiche devono essere loro a porre rimedio, non io 8-)

Insomma le cose si fanno sempre più interessanti <-thumbup->
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
0zzy

Donatore
Affezionato
Affezionato
Messaggi: 146
Iscritto il: 16/01/2015, 14:40
Medaglie: 1
Città: VE
Grazie Inviati: 5 volte
Grazie Ricevuti: 1 volta

Re: Info compilazione mame

Messaggio da 0zzy »

Come dici pure tu, con queste utility, non c'e molto margine di debug, anche se questa MCAS genera un log che per quanto poco degli spunti li da.
Ti confermo che in un oretta e mezza con questo MCAS ho compilato (e sembra giocabile), la versione di mame standard a 64bit. Ora riprovo inserendo un diff, poi due...vediamo se la fortuna è ancora dalla mia parte.

Perdonami, ma non conosco la patch per i videosnaps di cui parli, in cosa consiste? o hai un link dove se ne parla, tanto per capire su che barca sei salito :D
Rispondi

Torna a “Progetto Arcade Data Base”