Compilare HBMAME+MAME in un unico eseguibile

Tutti gli emulatori che ci possono servire sul nostro cab con SO Windows
Avatar utente
Mr Stiller
Nostalgico
Nostalgico
Messaggi: 335
Iscritto il: 07/02/2014, 20:35
Città: Arcadiano
Località: Emulia Romsagna
Grazie Inviati: 1 volta
Grazie Ricevuti: 3 volte
Contatta:

Compilare HBMAME+MAME in un unico eseguibile

Messaggio da Mr Stiller »

Ciao a tutti, sono anni che cerco di creare una compilazione unica, aggiungendo SRC di MAME o ARCADE con SRC di HBMAME per
creare un unico eseguibile ma non riesco a farlo correttamente. Ho provato in diversi modi usando src di mame, mameui e arcade.
Con il src di HBMAME riesco ad aggiungere una parte di roms MAME eccetto la parte che da errori e impedisce la compilazione.
Il codice sorgente di HBMAME include il codice sorgente del MAME, una parte di roms MAME la si riesce ad aggiungere in hbmame.lst,
il problema è che alcune roms, alcuni driver di bootleg e per i driver non presenti in HBMAME vengono riscontrati diversi errori.
Nel codice sorgente di HBMAME, ci sono gli stessi driver di MAME ovviamente nonostante hanno gli stessi nomi, si distinguono da quelli
del MAME per la mancanza di cloni, solo parent con cloni hack. Quello che si riesce ad aggiungere in hbmame.lst sono una parte di
parent e cloni del MAME che sfruttano lo stesso driver, a discapito di alcuni nomi dove HBMAME rileva svariati errori nella compilazione.

Mi serve aiuto per poter unire correttamente almeno una buona parte di driver HBMAME su src MAME/ARCADE
Sarebbe meraviglioso poter aggiungere correttamente una parte di driver di HBMAME su codice sorgente di
MAME/MAMEUI/ARCADE o nello stesso codice di HBMAME compilando HBMAME/HBMAMEUI con aggiunta di roms del MAME.
Avatar utente
bandito
Newbie
Newbie
Messaggi: 41
Iscritto il: 30/11/2009, 18:24
Località: Roma
Grazie Ricevuti: 2 volte

Re: Compilare HBMAME+MAME in un unico eseguibile

Messaggio da bandito »

In pratica stai cercando di fare il lavoro contrario di quanto è stato fatto fino ad ora, tra le altre cose mi sfugge l'utilità della cosa, tireresti fuori un romset (senza Chd) di almeno 120 gb (il solo hb parent compresi è 80 splitted).
Me pare 'na cazzata.

Inviato dal mio EML-L09 utilizzando Tapatalk

Avatar utente
Mr Stiller
Nostalgico
Nostalgico
Messaggi: 335
Iscritto il: 07/02/2014, 20:35
Città: Arcadiano
Località: Emulia Romsagna
Grazie Inviati: 1 volta
Grazie Ricevuti: 3 volte
Contatta:

Re: Compilare HBMAME+MAME in un unico eseguibile

Messaggio da Mr Stiller »

Non mi interessa aggiungere tutti i giochi dell'HBMAME, HBMAME è una grande discarica
di spazzatura che ha una parte buona che va raccolta e moltissima roba che va evitata.
Dai driver dell'HBMAME selezionerò le hack più tradizionali, per lo più Hidden Characters (Boss Hack) e le hack che ritengo più importanti.

HBMAME lo compilo già da molto tempo, nella mia maniera si chiama HBMAME PLUS,
il romset che condivido e aggiorno quando lo ritengo opportuno è in Merged,
pesa circa 23 GB invece di 80-120 GB del romset Splits.

Se riuscissi ad aggiungere i driver di HBMAME, sceglierò le migliori hack (300-400-500-600 numero da stabilire) occhio e croce il set Splits andrà a pesare 26-28 GB.
La mia intenzione è quella di concepire un eseguibile particolare per chi desidera utilizzarlo con i vari front-end,
diversamente da mame ufficiale farò una mia accurata eliminaziione di roms e CHD not working
completando un romset (roms e chd) che io impongo. Ovviamente non andrò a compilare diverse versioni, lo farò concentrandomi
su una versione fissa, esempio la v0.225 o la v0.230, in tal caso potrò compilare una mia nuova versione dopo l'uscita di 5 versioni di MAME e HBMAME.

Chi realizza cabinati/bartop con vari front-end solitamente non va a cambiare la versione di eseguibile e il romset, lasciando nel tempo tutto invariato a quella situazione.
Al posto di avere l'eseguibile mame.exe ufficiale, utilizzando questo mio fantomatico HyperMAME si avrà la lista All Games più leggera e con l'aggiunta di un paio di hacks di HBMAME, tutto qua. ;)

Su codice sorgente di MAME, MAMEUI o ARCADE se vado a scrivere alcuni cloni hack per CPS1, CPS2 e NeoGeo, alcune di queste avranno bug, glitch e crash.
Per esempio Art Of Fighting (Hidden Characters / Boss Hack) crasha quando giochi con Mr. Big e Mr. Karate, alcune hack di giochi CPS1 e CPS2 non partono, si bloccano
a schermo nero. Sui driver di HBMAME queste hack funzionano senza problemi per via di correzioni ed eccezioni che sono difficili da scrivere sui driver di mame normale.
Avatar utente
motoschifo

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

Re: Compilare HBMAME+MAME in un unico eseguibile

Messaggio da motoschifo »

Mi sfugge l'utilità di questa compilazione, nel senso che potresti usare l'uno o l'altro avendo "semplicemente" un eseguibile differente e romset separati. Questo in ottica di futuri problemi di compatibilità o conflitti tra i due ambienti.
In generale è proprio il lavoro di un front-end quello di mascherare la complessità che sta dietro ai tanti emulatori singoli, tra cui appunto anche il Mame.

Per modificare i sorgenti devi applicare delle patch scritte da altri, e queste persone non possono farsi carico degli errori che otterresti allontanandoti dalla "loro" visione. Se hai le conoscenze necessarie, puoi tentare di risolvere gli eventuali conflitti ma dovresti conoscere bene entrambe le versioni per capire cosa/come modificare i sorgenti.
Oltretutto in caso di conflitti di romset dovresti scegliere l'una o l'altra release modificando pesantemente le cose (oltre al nome del driver ci sono riferimenti in altri punti e non solo nel file lst).

Non conosco HBMAME ma include tutto il sorgente del Mame, quindi la maggior parte delle cose dovrebbe essere identica o migliore.
Se vuoi togliere le rom che non usi puoi compilare solo quelle cambiando i file lst, o aggiungerne di nuove (rincorrendo però i riferimenti di quei driver caso per caso).

Se invece in HBMAME hanno dovuto andare oltre per far funzionare qualcosa, e semplicemente sovrascrivendo i sorgenti di quel driver la cosa non si risolve, allora la strada sarà in salita perchè solo chi ha fatto quelle modifiche o chi riesce a leggere bene il sorgente potrà dirti cosa è cambiato e come. Ma se fai quella domanda, significa che gli errori del compilatore non sono sufficienti a chiarire la cosa.
Per esempio se l'errore è "funzione non trovata", occorre andare alla ricerca di quella funzione ed includere il sorgente nell'elenco degli include. Se la funzione esiste ma accetta parametri diversi, è necessario capire quali parametri sono stati aggiunti, perchè e scegliere di modificare la funzione esistente o farne una nuova e cambiare tutti i riferimenti a quella. Se il driver è diverso ma in poche cose, si può scegliere di tenere la versione più completa e gestire il caso particolare. Se invece sono molto diversi, allora vale la pena crearne uno nuovo ed usare tutti i riferimenti al nuovo, ecc.
I casi che si possono presentare sono davvero tanti, e se non sai il motivo per cui sono stati cambiati quei sorgenti magari perdi una giornata per risolverli e per poi accorgerti che la modifica in realtà non era necessaria o addirittura sbagliata.
Considera sempre che i sorgenti sono modificati spesso, e che la versione rilasciata non è detto che sia la definitiva (anzi spesso contiene errori che vengono poi corretti con il tempo) e che il fatto di non avere errori in compilazione non implica il corretto funzionamento del programma in tutti i casi previsti.

Occorrerebbe una discreta lista motivi per cui imbarcarsi in un'operazione simile, che vedo abbastanza complessa e "contorta" visto che si vuole comunque rimanere ancorati al Mame ufficiale.
Senza contare che magari questo processo andrà ripetuto più volte e che i programmi ricompilati andrano ritestati (una modifica può introdurre bug, ed in genere lo fa secondo le leggi di Murphy...)

Io terrei un MAME ufficiale con tutto originale, ed un HBMAME con invece la versione delle rom modificate.

Se però sei intenzionato a proseguire, prova ad iniziare con un driver e postare quello che fai, anche in caso di successo. Occorre capire almeno le basi della programmazione per fare questo tipo di attività, altrimenti dovrai continuamente rincorrere gli errori senza capire molto dei comandi dati. Considera anche che dietro messaggi innocui del compilatore posso celarsi errori grandi come una casa. Il compilatore ti dice ciò che non va per lui per portare a termine una compilazione, non sa nulla di giochi e quindi magari gli stai chiedendo cose assurde e lui ti risponde portandoti da tutt'altra strada. Ad esempio "variabile non inizializzata" potrebbe nascondere il fatto che hai dimenticato intere fette di sorgenti, non che basta inizializzare quella variabile.

Posta tutto quanto così vediamo l'entità del lavoro e magari altri possono imparare da questa esperienza.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Rispondi

Torna a “Emulatori Windows”