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
Insomma le cose si fanno sempre più interessanti
![thumbup <-thumbup->](./images/smilies/thumbup.gif)