Italian MAME Compile Guide
Guida italiana (non ufficiale) alla compilazione del MAME DOS
A cura di Ugo Viti
Ultimo Aggiornamento: 10 Luglio 1999
Indice:

1. Introduzione.

2. Creazione delle directory per i sorgenti del MAME ed il compilatore C.

3. Download di tutti i file necessari.

   3.1 Download dei sorgenti del MAME ed eventuali FIX

   3.2 Download di tutti i file che compongono il compilatore C

4. Modifica del file AUTOEXEC.BAT.

5. Download dell'ultima versione dell'Allegro WIP (Work In Progress).

6. Compilazione delle librerie Allegro.

7. Compilazione delle librerie ZLIB

8. Copia di alcuni file necessari alla compilazione del MAME.

9. Creazione delle directory che conterranno i file oggetto del MAME.

10. Compilazione del MAME.

11. Riduzione della grandezza del file 'MAME.EXE'.

12. I problemi più comuni :-(

13. Ringraziamenti e copyright.


1. Introduzione

Questa pagina è stata ideata per aiutarvi nella compilazione dell'ultima beta del MAME.
Adesso la domanda più comune dovrebbe essere: E perché dovrei aver voglia di compilare il MAME?
Beh, prima di tutto perché dovrebbe essere divertente (almeno per me :-)), secondo perché imparando a compilare il MAME, potrete ottimizzarlo per il vostro sistema o le vostre preferenze... Comunque sia, se vi va bene il MAME ufficiale e non avete voglia (o non vi interessa sapere come si fa) di compilare i suoi sorgenti, allora questo articolo non fa per voi... Ma se siete degli "smanettoni" e avete sempre avuto il desiderio di sapere come viene compilata l'ultima beta del MAME, prima che venga distribuita al pubblico, allora continuate nella lettura della presente guida, dato che qui troverete tutte le informazioni di cui avrete bisogno.


Comunque sia, prima di passare al seguente punto, dovrete sapere che:

  • Ci sono più di 10MB di file *zippati" di cui avrete bisogno (includendo i sorgenti)
  • Le istruzioni DOS presenti in questa pagina saranno evidenziate in grassetto e con il carattere Courier New. es.. scrivi cd c:\mamesrc o pkunzip *.zip
  • Se cd c:\mamesrcb o pkunzip *.zip vi rimane strano, allora la vostra conoscenza del DOS è un po' scarsina :-)... Sfortunatamente, in questa guida do per scontato che voi conosciate un minimo di DOS... Comunque tutto quello di cui avrete bisogno sarà una shell MS-DOS aperta sul vostro desktop, nella quale inserirete tutti i comandi MS-DOS che scriverò in questa guida.
  • Vi prego, se avete dei problemi, mandate un'E-Mail SOLO a me... NON SCRIVETE al MAME Team ;-)

2. Creazione delle directory per i sorgenti del MAME ed il compilatore C

Allora, prima di tutto, dovrete crearvi delle directory in cui alloggiare il compilatore C e i sorgenti del MAME.
Quindi aprite una finestra MS-DOS (oppure entrate in DOS puro che è meglio), e scrivete i seguenti comandi:

  • C:
  • CD \
  • MKDIR C:\DJGPP
    (vi consiglio di alloggiare il compilatore C in questa directory, e non in altre, dato che altri percorsi potrebbero dare dei problemi)
  • MKDIR C:\MAMESRC
    (per quanto riguarda i sorgenti del MAME non c'è nessun problema, li potete mettere dove volete)

Ricordatevi che per scompattare gli archivi ZIP, avrete bisogno del PKUNZIP o il WinZIP (il PKUNZIP dovrà essere messo in una directory settata nel vostro PATH. es. C:\WINDOWS\COMMAND oppure C:\DOS)


3. Download di tutti i file necessari

Questo paragrafo è stato suddiviso in tre parti:
Nella prima parte viene spiegato da dove scaricare gli ultimi sorgenti del MAME e gli eventuali fix (i fix servono per fissare alcuni problemi presenti in alcune distribuzioni ufficiali dei sorgenti del MAME).
Nella seconda parte invece spiego quali file compongono il pacchetto completo del compilatore C ed ovviamente da dove scaricarli.
Nella terza viene indicato il nome ed il download dell'assemblatore NASM, necessario alla compilazione dell'engine di emulazione 68000 scritto in Assembler.

3.1 Download dei sorgenti del MAME ed eventuali FIX

Allora, visto che questa guida è stata sviluppata per aiutarvi nella compilazione dell'ultima beta del MAME, è ovvio che dovrete procuravi i nuovi sorgenti.
Visto che il processo di compilazione è similare ad ogni versione del MAME, è molto probabile che la presente guida sarà indicata anche per la compilazione delle successive versioni del MAME (dalla 0.34 in poi). Quindi non vi spaventate se vedrete dei riferimenti direti alla 0.34, mentre voi cercherete di compilare una versione successiva.
Se ci saranno dei drastici cambiamenti ai sorgenti, o nel processo di compilazione, voi qui troverete tutto l'occorrente, ma se invece il processo di compilazione rimarrà invariato rispetto alle precedenti versioni, allora non avverranno cambiamenti particolari a questa guida.

Allora, per compilare l'ultima versione del MAME dovrete scaricarvi TUTTI i seguenti file:

Nome ed Home Page del programma Versione e Download Rilasciato Size Descrizione
MAME Sorgenti MAME 0.35 07/07/99 3800 Kb Sorgenti ufficiali del MAME
(Per eventuali aggiornamenti consultate l'Home Page del MAME)
Libreria Allegro allegro.hiep_new.gif (7403 byte) 07/07/99 22 Kb Versione apposita del file allegro.h per MAME (la versione ufficiale dell'allegro.h da alcuni problemi durante la compilazione)

Note particolari per l'installazione dei sorgenti del MAME:

Dopo che vi sarete scaricati tutti i file sopra elencati dovrete seguire i seguenti passi:

1) Copiare l'archivio dei sorgenti dentro la directory C:\MAMESRC (o nel percorso in cui avete creato la directory per i sorgenti)

2) Scompattare gli zippati nel seguente modo:

  • pkunzip -d mamexxxs.zip
    (dove xxx è la versione del MAME in vostro possesso)

(OVVIAMENTE potrete usare anche il WinZIP, senza copiare gli archivi dei sorgenti dentro la directory MAMESRC... Ho usato il PKUNZIP per spiegare il processo di decompressione a chi non sapeva come si fa, e l'ordine con cui vanno scompattati i due archivi).

L'archivio contenente il file allegro.h per il momento lasciatelo li dove lo avete scaricato, dato che servirà in seguito, ma non ora.

3.2 Download di tutti i file necessari per il compilatore C e Assembler

Adesso è la volta del download del compilatore C, il DJGPP (DJ Delorie C Compiler, un port free per DOS dello GNU C Compiler per UNIX), e di tutti i suoi componenti.

Quindi ricordatevi di scaricare tutti i file sotto elencati:

Nome ed Home Page del programma Versione e Download Rilasciato Size
DJGPP - Compilatore C freeware 2.81b 06/06/98 1300 Kb
DJGPP Assemblatore - Linker 2.81b 13/12/98 1800 Kb
DJGPP Kit di sviluppo 2.01 13/12/98 1500 Kb
DJGPP Make (Processa i MAKE Files) 3.75b 24/10/96 200 Kb
DJGPP Info File Viewer 3.90b 13/12/98 450 Kb
DJGPP Patching program 0.25 12/09/97 92 Kb
DPMI Server 3.0b 15/10/97 40 Kb
NASM - Compilatore Assembler freeware 0.97 06/12/97 189 Kb
UPX - Compattatore di eseguibili MS-DOS 0.62 16/03/99 118 Kb
ZLIB 1.13iep_new.gif (7403 byte) 19/03/98 214 Kb
Libreria Allegro 3.11 27/02/99 1415 Kb
Libreria Audio Seal 1.06 01/01/99 449 Kb

Dopo aver scaricato tutti i file sopra elencati, copiateli tutti dentro la directory C:\DJGPP (usando pure il Gestione RIsorse di Windows) e poi ritornate nella vostra shell MS-DOS e scrivete i seguenti comandi DOS:

  • C:

  • cd \DJGPP

  • pkunzip -d *.zip
    (in questo modo verranno scompattati automaticamente tutti gli archivi nelle apposite directory. Rispendete 'YES' alle eventuali richieste di overwrite)


4. Modifica del file AUTOEXEC.BAT

Perfetto, dopo aver scompattato correttamente tutti gli archivi, adesso è il momento di settare un po' di cose, in modo che il compilatore C funzioni correttamente.

Prima di tutto dovrete editare il file C:\AUTOEXEC.BAT nel seguente modo:

  • C:
  • CD \
  • EDIT AUTOEXEC.BAT
    (io ho usato il comando DOS edit, ma nessuno vi vieta di usare il NotePAD di WIN95 o qualsiasi altro programma di scrittura. Basta che sia un editor ASCII)

Una volta aperto il file AUTOEXEC.BAT, cercate la linea in cui è scritto:

path %path%;........eccetera...eccetera...

e alla fine della linea path che avete già, inserite:
;C:\DJGPP\BIN

Il risultato dovrebbe essere il seguente (i puntini che ho riportato nel seguente esempio rappresentano i path che avevate già voi nel vostro sistema):

path %path%;.....................................;C:\DJGPP\BIN

Una volta fatto questo, dovrete settare un variabile di sistema, con la seguente linea:

SET DJGPP=C:\DJGPP\DJGPP.ENV

Questa, la potrete mettere dove vi pare all'interno del file AUTOEXEC.BAT (va bene anche in fondo)

Dopo aver fatto questi due cambiamenti salvate il file ed uscite.

Ricordatevi
che per fare in modo che i cambiamenti fatti al file AUTOEXEC.BAT abbiano effetto, dovrete resettare il computer.

Dopo il reset, per vedere se tutto è andato a buon fine dovrete scrivere in un prompt MS-DOS il comando SET.
Tra le scritte che verranno visualizzate cercate il testo con scritto:
PATH=.....C:\DJGPP\BIN e DJGPP=C:\DJGPP\DJGPP.ENV
Se vedrete queste scritte, allora sarà andato tutto a buon fine, altrimenti ripetete il passo precedente.


5. Download dell'ultima versione dell'Allegro WIP (Work In Progress).

Adesso è la volta di aggiornare le librerie Allegro (sono librerie appositamente studiate e programmate per agevolare il lavoro di programmatori di Video Game).

Molte funzioni che la nuova beta del MAME richiede, nelle vecchie librerie Allegro 3.1 non sono presenti, quindi è d'obbligo aggiornarle all'ultima release WIP (Work In Progress).

Per cui scaricate tutti i seguenti archivi:

Nome ed Home Page del programma Versione e Download Rilasciato Size
Aggiornamento per l'Allegro WIP Nessuna versione disponibile N.D. N.D.

Copiate i seguenti archivi che avete appena scaricato, dentro la directory C:\DJGPP e scrivete i seguenti comandi (ricordatevi che dovrete essere obbligatoriamente dentro la directory C:\DJGPP):

  • pkunzip -d axxxdiff.zip
    (dove xxx è la versione delle Allegro in vostro possesso)

E rispondete 'YES', a tutti i prompt di overwrite.

Adesso non vi rimane altro da fare se non patchare la versione ufficiale delle Allegro Library con quella WIP, scrivendo questo:

  • patch -p1 < axxxdiff.diff

Adesso le vostre librerie allegro dovrebbero essere aggiornate all'ultima versione.


6. Compilazione delle librerie Allegro

Adesso è arrivato il momento di compilare le librerie Allegro che avete appena aggiornato.
Fate come vi dico:

Entrate dentro la directory C:\DJGPP\ALLEGRO e scrivete nel prompt MS-DOS:

  • make all

Adesso dovrebbe comparire un messaggio di questo tipo:

>compiling allegro, please wait

Aspettate con pazienza, che il processo di compilazione dovrebbe durare un po' di minuti (il tempo impiegato dipende dalla potenza della CPU).
Durante la compilazione dei sorgenti non ci dovrebbe essere nessun intoppo (almeno spero), ed il messaggio che vi informerà che la compilazione è avvenuta con successo dovrebbe essere il seguente:

>All done.

>To use Allegro, #include allegro.h and link with liballeg.a
>Example command line: gcc foobar.c -o foobar.exe -lalleg
>Enjoy!


Se invece di ricevere questo messaggio, avviene un errore, allora ripetete i precedenti punti alla ricerca di un vostro eventuale errore.

Ma se invece è andato tutto come doveva andare, bene! Avete compilato le librerie Allegro, in modo che possano essere usate con il MAME (le Allegro Library danno il supporto per il mouse, keyboard, joystick, ecc...).

7. Compilazione delle librerie ZLIB

Per compilare queste librerie indispensabili al MAME, dovrete digitare nel prompt MS-DOS i seguenti comandi:

  • C:

  • cd \DJGPP\ZLIB

  • make -f msdos\makefile.dj2


8. Copia di alcuni file necessari alla compilazione del MAME

Ok, siamo vicini all'ora X :-) vi rimane solamente da copiare alcuni file particolari, che sono indispensabili per una corretta compilazione dei sorgenti del MAME.
Quindi scrivete i seguenti comandi DOS:

  • COPY C:\DJGPP\AUDIO\LIB\DOS\libaudio.a C:\DJGPP\LIB

  • COPY C:\DJGPP\ZLIB\libz.a C:\DJGPP\LIB

  • COPY C:\DJGPP\AUDIO\INCLUDE\audio.h C:\DJGPP\INCLUDE

  • COPY C:\DJGPP\ZLIB\zconf.h C:\DJGPP\INCLUDE

  • COPY C:\DJGPP\ZLIB\zlib.h C:\DJGPP\INCLUDE

Adesso, prendete il file allegro.h che avete precedentemente scaricato da questa pagina e copiatelo dentro la directory C:\DJGPP\INCLUDE e quando vi verrà chiesto di sovrascriverlo, rispondete 'YES' (il MAME usa una nuova versione del file allegro.h, è per questo che dovrete copiare tale file dentro quella directory).


9. Creazione delle directory che conterranno i file oggetto del MAME

Creiamo le directory necessarie al MAME, per ospitare i suoi file oggetto che poi il linker unirà in un unico file eseguibile chiamato MAME.EXE (ma và? :-))

Entrate dentro la directory in cui avete scompattato i sorgenti del MAME (se avete seguito le mie istruzioni, allora sarà C:\MAMESRC) con un bel:

  • CD C:\MAMESRC

e scrivete:

  • make makedir

Adesso l'output che vedrete dovrebbe essere tipo il seguente:

C:\MAMESRC> make makedir

md obj
md obj\cpu
md obj\cpu\z80
md obj\cpu\m6502
md obj\cpu\h6280
md obj\cpu\i86
md obj\cpu\i8039
md obj\cpu\i8085
md obj\cpu\m6800
md obj\cpu\m6805
md obj\cpu\m6809
md obj\cpu\m68000
md obj\cpu\s2650
md obj\cpu\t11
md obj\cpu\tms34010
md obj\cpu\tms9900
md obj\cpu\z8000
md obj\cpu\tms32010
md obj\cpu\ccpu
md obj\sound
md obj\drivers
md obj\machine
md obj\vidhrdw
md obj\sndhrdw
md obj\msdos

C:\MAMESRC>


Ottimo, siamo quasi pronti al fatidico momento.


10. Compilazione del MAME

É arrivato il momento della verità: La compilazione dei sorgenti!

Entrate dentro la directory C:\MAMESRC e scrivete il seguente comando:

  • make

Questo è tutto, adesso il compilatore penserà al resto, voi dovrete solamente starvene a guardare :-)
Se avete seguito tutte le istruzioni alla lettera, non dovrebbe esserci nessun problema, e alla fine della compilazione, nella vostra directory C:\MAMESRC dovrebbe comparire un simpatico file chiamato MAME.EXE (provate ad indovinare cos'è e a cosa serve :-)))) che voi avete appena compilato!

Enjoy! :-)


11. Riduzione della grandezza del file 'MAME.EXE'

Il MAME è generalmente distribuito con un eseguibile estremamente ridotto rispetto a quello che viene compilato dal DJGPP, e questo semplicemente perché prima di distribuirlo al pubblico Nicola lo comprime con una apposita utility chiamata UPX.
Quindi se volete comprimere l'eseguibile del MAME dopo averlo compilato dovrete entrare dentro la directory C:\MAMESRC e scrivere nel prompt MS-DOS il comando:

  • UPX MAME.EXE

Ecco fatto, adesso l'eseguibile è stato compresso come quello del MAME Team.


12. I problemi più comuni :-(

  • Se stai compilando il MAME in una finestra MS-DOS di Windows 95/98, e non in DOS puro, molto probabilmente, durante la compilazione vedrai un errore di questo tipo:

    Load error: no DPMI selectors
    make.exe: *** [obj/vidhrdw/subs.o] Error 1

    Oppure:

    make.exe: *** [obj\.................] Error1

Non ti preoccupare, questo è un errore (bug?) che appare quando si compila il MAME in una finestra DOS di Windows95 (Se lo compilate in DOS puro, non vedrete questo errore). Dopo aver ricevuto questo errore, basta che riscriviate nuovamente make e a questo punto il compilatore continuerà il suo processo senza dare nessun altro problema (almeno spero :-)).


13. Ringraziamenti e copyright

La versione originale inglese di questa guida è copyright di Zan ed è reperibile al seguente indirizzo:
http://zan.emuunlim.com/mame.

Completa traduzione in italiano e varie modifiche a cura di Ugo Viti

I miei più sentiti ringraziamenti vanno a Nicola Salmoria e a tutto il MAME Team, per aver creato un sogno chiamato MAME, senza il quale, ad oggi non sarebbe possibile rivivere le indimenticabili emozioni provate molti anni fa con i video game arcade dei BAR. Grazie, grazie di esistere.

IEP

Torna all'Home Page di IEP

IEP

Per informazioni e suggerimenti scrivete al creatore e mantenitore di IEP: Ugo Viti - hide@prometeo.lett.unisi.it

Copyright © 1996-1998 Ludus Working Group