Videogames Italian Center

Vai a Emuita.it









Ultimo aggiornamento: 8 dicembre 1999 by F0x




  Guida "non ufficiale" alla compilazione del M.A.M.E. DOS  


Introduzione

Questa pagina è stata creata con lo scopo di aiutarvi nella compilazione del M.A.M.E. DOS. In particolare questa guida si riferisce alla compilazione della beta 11 del M.A.M.E. 0.36 ma dovrebbe essere valida anche per le versioni successive. Considerate comunque che nuove versioni del M.A.M.E. vengono rilasciate quasi bisettimanalmente. In ogni caso cercherò di aggiornare nei limiti del possibile questa guida se dovessero esserci cambiamenti rilevanti.


Ora vi starete probabilmente facendo la domanda... perchè compilare il M.A.M.E. ?!? Personalmente ritengo sia molto divertente. Inoltre compilando il vostro M.A.M.E. potrete attivare dei driver (la maggior parte dei quali sono "work in progress") disattivati nella release ufficiale o addirittura alcuni giochi NEOGEO (Metal Slug X, Captain Tomaday, Puzzle Bobble 2 e King of Fighters 99) perfettamente emulati.

Naturalmente in questa pagina trovate tutti i files necessari alla compilazione.

Alcune cose prima di cominciare...

  • Sono necessari poco più di 10 Mb di file "zippati" (inclusi i sorgenti del M.A.M.E.)
  • Le istruzioni DOS in questa pagina saranno in grassetto e in verde. Ad esempio... cd c:\mamesrc oppure pkunzip *.zip
  • Se cd c:\mamesrc oppure pkunzip *.zip vi sembrano parole aliene...allora la vostra conoscenza del DOS lascia alquanto a desiderare. Sfortunatamente, io presumo che conosciate almeno superficialmente il DOS anche se cercherò di rendere il tutto il più chiaro e semplice possibile.
  • Nel caso abbiate problemi nella compilazione, NON SCRIVETE AL MAME TEAM, ma consultate la sezione Faq (basta cliccare nel menù a sinistra)


Setting up

Attraverso questa guida, vi dirò cosa fare e dove farlo... dovrete creare qualche directory nel vostro hard disk usando i nomi da me indicati. Ecco la struttura da me consigliata:

  • C:\COMPILER\DJGPP
  • C:\COMPILER\SEAL
  • C:\COMPILER\NASM
  • C:\COMPILER\ZLIB
  • C:\MAMESRC
Avrete inoltre bisogno del pkunzip per DOS. Se non lo avete, prendetelo qui. Il file pkunzip.exe deve essere salvato in una directory nel vostro PATH. Una buona soluzione potrebbe essere C: \WINDOWS. Per vedere se tutto è ok, andate al prompt di MS-DOS e digitate: pkunzip. Se, come risultato, ottenete Bad command or file name   il pkunzip non è stato salvato in una directory del vostro path. Controllate il vostro path digitando, sempre nel prompt di MS-DOS, path.

NOTA: Se pensate che i nomi da me usati per le directory siano "stupidi" potete usarne di altri, o potete anche usare un drive differente (per esempio D:\ ). Io, naturalmente, mi riferirò alla struttura e ai nomi di directory da me indicati : )



Mame source

Avrete bisogno del source code del MAME! Una volta scaricato, salvatelo nella directory C:\MAMESRC

FILE
DI COSA SI TRATTA?
DIMENSIONE
MAME Source code Distribution
3.75 MB

A questo punto entrate nella directory C:\MAMESRC e digitate:


    pkunzip m36b11s.zip
in seguito:

    pkunzip -d mame.zip
L'opzione "-d" è molto importante poichè permette di "unzippare" anche le sottodirectory del source code del MAME.
Verificate di trovarvi nella directory C:\MAMESRC.



Djgpp compiler

Questa volta è il turno del compilatore, il DJGPP. Scaricate i seguenti file e copiateli nella directory C: \COMPILER\DJGPP

FILE
DI COSA SI TRATTA?
DIMENSIONE
DJGPP Compiler
1.8MB
bnu281b.zip
DJGPP Assembler - Linker
1.9MB
djdev202.zip
DJGPP Development Kit
1.4MB
mak377b.zip
DJGPP Make (Processes MAKE Files)
242KB
csdpmi4b.zip
DPMI Server
41KB

Per "unzippare" questi files, entrate nella directory C:\COMPILER\DJGPP e digitate:


    pkunzip -d *.zip
Ricordo sempre l'importanza del "-d" senza il quale non si ricreerebbe l'originale struttura delle directory. Una volta lanciato il comando, compariranno tutte le directory relative al djgpp.

Per far funzionare correttamente il DJGPP dal prompt di MS-DOS digitate:

    PATH= %PATH%;C:\COMPILER\DJGPP\BIN
    SET DJGPP=C:\COMPILER\DJGPP\DJGPP.ENV
Per controllare che tutto sia andato per il verso giusto, sempre dal prompt di MS-DOS digitate: set e premete INVIO. Da qualche parte dovreste vedere:
    PATH=.............;C:\COMPILER\DJGPP\BIN
Se non vedete questo, la compilazione del M.A.M.E. non funzionerà.
    DJGPP=C: \COMPILER\DJGPP\DJGPP.ENV
Stesso discorso di prima.

Ci sono diversi modi per facilitare la cosa. Si possono inserire le righe del path nell'autoexec.bat oppure è possibile creare un file batch da lanciare ogni qual volta si voglia compilare il M.A.M.E. In pratica, la cosa importante è che il DOS "veda" il compilatore.



Allegro

Ora tocca compilare le librerie Allegro che, in pratica, servono al funzionamento delle vostre tastiere e delle vostre schede video. Scaricate il seguente file e copiatelo nella directory C:\COMPILER

FILE
DI COSA SI TRATTA?
DIMENSIONE
ALLEGRO 3.9.27 WIP
1.5 MB

Per "unzippare" il file, entrate nella directory C:\COMPILER e digitate:


    pkunzip -d all3927.zip
L'opzione "-d" è molto importante. Lanciato il comando, cominceranno ad apparire le directory delle librerie ALLEGRO. Conclusa questa operazione, avremo a disposizione tutti i file ALLEGRO necessari per compilare il M.A.M.E. Naturalmente, è necessario compilare manualmente le librerie ALLEGRO.

Editate il file makefile.all presente nella directory C:\COMPILER\ALLEGRO e modificate nelle prime linee come qui riportato, in modo da attivare il PGCC:

# STATICLINK=1 use static linking (MSVC only).
PGCC=1 use PGCC compiler switches (djgpp only).
# CROSSCOMPILE=1 build djgpp version under Linux (djgpp only).

Per compilare le ALLEGRO, entrate nella directory C:\COMPILER\ALLEGRO e digitate:

    make all
Dovreste vedere un messaggio simile a quello qui riportato:

>Compiling Allegro for djgpp, optimised. Please wait...
Questo porterà via un pò di tempo...e, se non ci sono problemi, vedrete scorrere sullo schermo un bel pò di testo... Abbiate pazienza! Il tutto finirà con il seguente messaggio:

>All djgpp library versions have been compiled. >Run make installall to complete the installation. >All done.

Per concludere, digitate:
    make installall
Attendete fino alla fine del processo.

Cos'e' successo?!? Avete appena compilato le librerie ALLEGRO necessarie per far funzionare mouse, tastiera e scheda video.



Seal

Altro passo, altre librerie. Questa volta è il turno delle Seal che permettono il funzionamento della vostra scheda sonora. Scaricate il seguente file e copiatelo nella directory C:\COMPILER\SEAL

FILE
DI COSA SI TRATTA?
DIMENSIONE
SEAL AUDIO LIBRARY
447 KB

Muovetevi nella directory C:\COMPILER\SEAL, dove avete copiato il file e digitate:


    pkunzip -d seal106.zip
Ricordo per l'ennesima volta l'importanza del "-d". Lanciato il comando, si creeranno le directory relative alle librerie Seal e i files richiesti per la compilazione del M.A.M.E. saranno pronti.



Nasm

Passiamo ora al "settaggio" del Nasm il compilatore dei cores ASM del M.A.M.E. Scaricate il seguente file e copiatelo nella directory C:\COMPILER\NASM

FILE
DI COSA SI TRATTA?
DIMENSIONE
Netwide Assembler, a free portable assembler for the Intel 80x86 microprocessor series, which uses the traditional Intel instruction mnemonics and syntax
160 KB

Dalla directory C:\COMPILER\NASM, nella quale avete copiato il file precedente, digitate:


    pkunzip -d nasm098.zip
Attendete la fine dell'operazione, quando i file Nasm richiesti per compilare il M.A.M.E. saranno pronti. Per rendere il Nasm attivo è necessario aggiungere la sua directory al path in questo modo:

    PATH= %PATH%;C:\COMPILER\NASM
Controllate con il comando SET o create un file batch se odiate digitare ogni volta : - )



Zlib

Ancora un pò di pazienza...questa volta è il turno del Zlib, una utility di compressione. Scaricate il seguente file e copiatelo nella directory C: \COMPILER\ZLIB

FILE
DI COSA SI TRATTA?
DIMENSIONE
A Massively Spiffy Yet Delicately Unobtrusive Compression Library
213 KB

Dalla directory C:\COMPILER\ZLIB, dove avete copiato il file, digitate:


    pkunzip -d zlib113.zip
Ponete attenzione al "-d". Lanciate il comando e attendete...
Le Zlib vanno compilate manualmente quindi muovetevi nella directory C:\COMPILER\ZLIB e lanciate il comando:

    make -fmsdos\makefile.dj2
Completato ciò ancora un pò di pazienza e potrete compilare il vostro M.A.M.E.



Moving

A questo punto è necessario spostare alcuni files in determinate directory. Questo per rendere visibili al DJGPP alcuni files relativi alle SEAL e alle ZLIB. I Files vanno spostati nelle sottodirectory LIB e INCLUDE del DJGPP come di seguito riportato:


Per le SEAL e le ZLIB copiate

    C: \COMPILER\SEAL\AUDIO\LIB\DOS\libaudio.a
    C: \COMPILER\ZLIB\libz.a
    in
    C:\COMPILER\DJGPP\LIB
e i files

    C:\COMPILER\SEAL\AUDIO\INCLUDE\audio.h
    C:\COMPILER\ZLIB\zconf.h
    C:\COMPILER\ZLIB\zlib.h
    in
    C:\COMPILER\DJGPP\INCLUDE


Upx

Il M.A.M.E. viene rilasciato come un eseguibile relativamente piccolo. In realtà occupa molto di più, la sua dimensione viene ridotta grazie ad una piccola utility...UPX. Scaricate il seguente file e copiatelo nella directory C:\MAMESRC

FILE
DI COSA SI TRATTA?
DIMENSIONE
EXEcutable compression utility
93 KB

Dalla directory C:\MAMESRC, digitate:


    pkunzip -d upx093w.zip
Questo servirà a far passare la dimensione del file mame.exe da 8 MB a circa 2.



MAME

Se avete seguito attentamente ogni precedente passaggio... siete pronti per compilare il vostro primo M.A.M.E.!!! Accertatevi di trovarvi nella directory C:\MAMESRC.


Tutto quello che dovete scrivere è:

    make
Ora dovreste leggere sul vostro schermo qualcosa del tipo...

    md objmd
    obj\cpumd
    obj\cpu\z80md
    obj\cpu\m6502md
    obj\cpu\h6280md
    obj\cpu\i86md
    obj\cpu\i8039md
    obj\cpu\i8085md
    obj\cpu\m6800md
    obj\cpu\m6805md
    obj\cpu\m6809md
    obj\cpu\m68000md
    obj\cpu\s2650md
    obj\cpu\t11md
    obj\cpu\tms34010md
    obj\cpu\tms9900md
    obj\cpu\z8000md
    obj\cpu\tms32010md
    obj\cpu\ccpumd
    obj\driversmd
    obj\machinemd
    obj\vidhrdwmd
    obj\sndhrdwmd
    obj\msdos
La compilazione del M.A.M.E. ha inizio. Il vostro schermo dovrebbe apparire come quando avete compilato le ALLEGRO. Questo porterà via un bel pò di tempo. Se non ci sono stati problemi, lanciate il comando DIR nella vostra directory C:\MAMESRC e troverete il vostro mame.exe.

Se avete avuto problemi durante la compilazione o volete semplicemente sapere come attivare particolari driver o alcuni giochi NEOGEO "nascosti" consultate la sezione FAQ!!!



FAQ

    1. Quando digito make ottengo un bad command or file name
    2. Ottengo il messaggio Virtual Memory Exhausted
    3. Load error: no DPMI selectors
    4. Come aggiungo i giochi NEOGEO "nascosti" e altri driver?
    5. Come attivo il debugger?
DOMANDA 1
Quando digito make ottengo un bad command or file name

Il tuo è un problema relativo al PATH. Per il DJGPP, il file make.exe è quello che lancia il compilatore MAKEFILE utile, come logico, a compilare il MAME quando digiti make. Questo file (make.exe) è contenuto nella directory C:\COMPILER\DJGPP\BIN e per questo lanciandolo dalla directory C:\MAMESRC ottieni il messaggio di errore. Per correggere il problema basta inserire la directory DJGPP\BIN nel tuo path e per far ciò rileggi la sezione dedicata al DJGPP.

DOMANDA 2
Ottengo il messaggio Virtual Memory Exhausted

Non ho mai personalmente riscontrato questo errore, comunque il problema è segnalato nella faq.txt delle ALLEGRO. Se ottieni questo messaggio di errore, hai bisogno di fornire più memoria al compilatore che usi. Se sei sotto DOS prova a liberare una quantità maggiore di spazio libero sull'hard disk in modo da ottenere un file di swap maggiore. Se sei sotto Win95, aumenta la memoria DPMI nelle proprietà della tua sessione DOS fino a 65535.

DOMANDA 3
Load error: no DPMI selectors

Se sei in una finestra DOS di Windows, molto probabilmente durante la compilazione vedreai apparire questo messaggio:

    Load error: no DPMI selectors
    make.exe: *** [obj\.................] Error1
Nessun dramma! Questo avviene solo nelle finestre DOS di Windows. Basta semplicemente ridigitare make e la compilazione riprenderà da dove era stata interrotta.

DOMANDA 4
Come aggiungo i giochi NEOGEO "nascosti" e altri driver?

Prima di tutto è necessario chiarire una cosa. Nella release ufficiale del MAME non sono attivati i driver relativi ad alcuni giochi NEOGEO (per il momento sono 4) perfettamente emulati perchè ritenuti dal MAMETEAM troppo "recenti". Per tanto se li attivate, per piacere, non distribuite il MAME da voi compilato!!! Per quanto riguardi gli altri driver...bhe potete attivarli per semplice curiosità visto che nella maggior parte dei casi sono dei "work in progress" e pertanto non vi permettono di giocare.

Per attivare tutti i driver, dovete editare un particolare file nella directory C:\MAMESRC\SRC, il driver.c, come qui riportato:

Dovete sostituire

    /* step 2: define the drivers[ ] array */
    #undef DRIVER
    #undef TESTDRIVER
    #define DRIVER(NAME) &driver_##NAME,
    #define TESTDRIVER(NAME)
    const struct GameDriver *drivers[ ] =
con
    /* step 2: define the drivers[ ] array */
    #undef DRIVER
    #undef TESTDRIVER
    #define DRIVER(NAME) &driver_##NAME,
    #define TESTDRIVER(NAME) &driver_##NAME,
    const struct GameDriver *drivers[ ] =
Ricompilate il MAME e tutti i driver saranno attivati!

DOMANDA 5
Come attivo il debugger ?

Per attivare il debugger basta editare il file makefile nella directory C:\MAMESRC come di seguito riportato:

da
    # uncomment next line to include the debugger
    # DEBUG = 1
a
    # uncomment next line to include the debugger
    DEBUG = 1
... e ricompilate il MAME ricordandovi di eliminare la directory C:\MAMESRC\OBJ se avevate precedentemente compilato il MAME.



Ringraziamenti

La versione originale di questo How to è presente all'indirizzo http://mameworld.retrogames.com


Traduzione italiana leggermente modificata a cura di Francesco "F0x" Grieco

Naturalmente, tutti i miei ringraziamenti vanno al MAMETEAM e in particolare a NICOLA SALMORIA per avere creato questo fantastico emulatore e per averci dato la possibilità di rivivere favolosi momenti d'infanzia.



© 1999 Emuita.it www.emuita.it Group
La riproduzione totale o parziale di testi o parte grafica del sito senza previa autorizzazione del web master è vietata.
e-mail:
info@emuita.it
Grafica e HTML: Marco "Mcx" Cortella Web Master: Antonio " Spino" Sacchetti Hosting emuita.it group www.emuita.it