![]() Jan Tleskac Bimbo Od 26.07.2000 20:39 |
|
|
|
Jak kompilovat MAME
Kompilování znamená sestavení programu z jeho zdrojového kódu. MAME je téměř celé napsáno v C, jen několik částí je v assembleru pro zvýšení rychlosti. Dosovská verze MAME je kompilována v DJGPP, což je dosovský port C kompilátoru GCC a jeho knihoven.
Toto how-to je napsáno pro MAME 0.37 beta 7, ale při troše štěstí můžete kompilovat ostatní verze s pomocí této stránky. Jelikož toto how-to popisuje, jak kompilovat MAME pro DOS, není moc platné pro Windows NT nebo 2000, takže byste měli použít Windows 95 nebo 98. Pokud chcete kompilovat MAME32 (pro Windows 9x, NT4 nebo 2000), podívejte se na http://www.hypertech.com/mame/.
Vývojové prostředí DJGPP bude instalováno do C:\DJGPP a MAME zdrojáky budou v C:\DJGPP\MAME. Nejdřív byste se měli ujistit, že ještě nemáte adresáře c:\djgpp\ a c:\download\. Pokud ano, přejmenujte je nebo je jednoduše smažte (pokud máte jistotu, že v nich nejsou žádné důležité soubory).
Když píšete příkazy do příkazové řádky, měli byste se vyvarovat překlepů ;-) V tomto how-to budou jména souborů a další statické texty značeny žlutě a příkazové řádky a ostatní informace zeleně. Naposledy upraveno: 5. září 2000.Většina souborů, které se přenášejí přes Internet, je zapakována, aby se minimalizoval čas stahování a náklady. Možná už máte kompresní program pro Windows, ale jelikož kompilování MAME probíhá v příkazovém řádku, je třeba jiný program. Stáhněte si následující soubor do adresáře c:\windows\command\, aby se dal použít odkudkoliv.
| Jméno | Velikost | Popis |
| unzip.exe | 140 kB | This is the Info-ZIP dekompresní program UnZip/NT v5.41. |
Nyní potřebujete soubory DJGPP. Vytvořte nový adresář, například c:\download\ a stáhněte následující soubory do tohoto adresáře. Ačkoliv mohou existovat novější verze těchto souborů, kompilace MAME není vyzkoušena s těmito verzemi.
| Jméno | Velikost | Popis |
| djdev203.zip | 1502 kB | Vývojová sada a knihovny v2.03. |
| bnu281b.zip | 1852 kB | Utility v2.8.1. |
| gcc2952b.zip | 1888 kB | Aktuální C kompilátor, GCC v2.95.2. |
| mak379b.zip | 263 kB | GNU make v3.79. |
| gnufut21.zip | 761 kB | GNU file utils v2.1. |
Dále rozbalíme soubory DJGPP a nastavíme systémové proměnné, aby bylo DJGPP funkční. Otevřete příkazový řádek. Můžete ho najít buď v menu Start -> Programy -> Příkazový řádek, nebo jednoduše vyberte Spustit a napište command.com do dialogového okna. Po otevření příkazového řádku napište cd c:\download a stiskněte Enter pro nastavení do správného adresáře. Pak napište
Před rozbalením..
Po rozbalení..
Pokud pokaždé neuvidíte zprávu "archive successfully processed.", znovu stáhněte archívy. Pokud dostanete hlášku "Chybný příkaz nebo název souboru", tak znovu zkontrolujte, zda máte unzip.exe v adresáři c:\windows\command\
Nyní nastavíme systémové proměnné. Aby byly změny trvalé, musíme upravit soubor AUTOEXEC.BAT, který se spustí vždy před startem Windows. Napište edit c:\autoexec.bat a stiskněte Enter. Může tam být spousta věcí, takže nedělejte nic jiného, než co je vám řečeno.
Najděte řádek, který vypadá podobně jako PATH C:\WINDOWS;C:\WINDOWS\COMMAND (mohou tam být i jiné adresáře). Přidejte ;C:\DJGPP\BIN na konec řádku, takže to bude vypadat PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DJGPP\BIN (znovu opakuji, že zde mohou být i jiné adresáře, které nesmíte měnit). Poté stiskněte Enter pro nový řádek. Napište SET DJGPP=C:\DJGPP\DJGPP.ENV. Nyní můžete uložit soubor (ALT-S pak U) a skončit (ALT-S pak K) (Toto se může lišit podle jazykové verze Windows. Popsaný postup platí pro českou verzi). Restartuje počítač, aby změny nabyly platnosti.
Příklad souboru AUTOEXEC.BAT po úpravách..
DJGPP by už mělo být funkční. Poté budete potřebovat další knihovny a programy, které MAME používá. Stáhněte si následující soubory do adresáře c:\download\. Ačkoliv mohou existovat novější verze těchto souborů, kompilace MAME není vyzkoušena s těmito verzemi.
| Jméno | Velikost | Popis |
| all3932.zip | 1600 kB | Herní knihovna Allegro WIP v3.9.32. |
| zlib113.zip | 214 kB | Kompresní knihovna ZLIB v1.1.3. |
| mamesealnew.zip | 69 kB | Audio knihovna SEAL v1.07 (upravená - aktualizovaná!) pro DOS. |
| nasm098.zip | 160 kB | Netwide Assembler (NASM) v0.98. |
| upx101w.zip | 113 kB | Ultimate Packer for eXecutables (UPX) v1.01. |
Tyto součásti se instalují nejsnadněji. Znovu otevřete příkazový řádek a napište cd c:\download. Pak napište
Po rozbalení UPX, NASM and SEAL
Teď nainstalujeme Allegro. Napište unzip all3932.zip -d c:\djgpp\ a stiskněte Enter.
Po rozbalení Allegra
Allegro je knihovna, která se musí kompilovat. Napište cd c:\djgpp\allegro, abyste se dostali do adresáře Allegra. Napište fixdjgpp.bat a stiskněte Enter. Potom napište make lib a stiskněte Enter. Bude to chvíli trvat. Po skončení kompilace napište make install a stiskněte Enter. Kompilace proběhla správně, pokud se objevila zpráva "The optimised djgpp library has been installed".
Po kompilaci Allegra
Nyní nainstalujeme Zlib, knihovnu, která umožní MAME číst ZIP soubory. Napište unzip zlib113.zip -d zlib\ a stiskněte Enter. Přejděte do adresáře napsáním cd zlib, kompilujte jej napsáním make -fmsdos\makefile.dj2 a stiskněte Enter.
Před kompilací Zlib
Po kompilaci musíte nakopírovat tři soubory do adresářů DJGPP. Napište xcopy libz.a c:\djgpp\lib\ a xcopy zlib.h c:\djgpp\include\ a xcopy zconf.h c:\djgpp\include\
Po kompilaci Zlib
Nyní můžeme kompilovat MAME. Stáhněte si ZIP se zdrojovým kódem do c:\download\
| Jméno | Velikost | Popis |
| m37b7s.zip | 4392 kB | Zdrojový archív MAME verze 0.37 beta 7. |
Přejděte do adresáře napsáním cd c:\download a rozbalte zdrojáky MAME napsáním unzip m37b2s.zip -d c:\djgpp\mame\. Obvykle jsou MAME zdrojáky zabaleny dvakrát kvůli úspoře místa. Přejděte do MAME adresáře napsáním cd c:\djgpp\mame a rozbalte druhý ZIP unzip *.zip
Před rozbalením druhého ZIPu MAME
Když je rozbalení hotovo, můžete smazat druhý ZIP del m37b7.zip (Není to potřeba, pokud máte dost místa na disku). Teď můžeme kompilovat MAME. Napište make and stiskněte Enter. Tím konečně kompilujete MAME. Pokud chcete kompilovat optimalizovanou verzi pro určitý procesor, napište make I686=1 nebo make K6=1 místo pouhého make. Bude to trvat docela dlouho, od 15 minut do jedné hodiny, podle rychlosti vašeho procesoru, takže si zatím můžete dát nějaký drink.
Začátek kompilace MAME
Pokud se objevilo chybové hlášení typu "Error -1" po řádku, který začíná na "nasmw -o", tak jste nenainstalovali správně nasmw.exe. Znovu si přečtěte odstavec "6. Instalace UPX, NASM a Seal".
V některých místech může kompilace zcela zrušit příkazový řádek nebo se pouze zastaví se zprávou například "no DPMI selectors". Žádný strach, to je normální. Naštěstí bude kompilace pokračovat od místa, kde havarovala. Znovu otevřete příkazový řádek, přejděte do správného adresáře a napište znovu make (případně příkaz pro určitý procesor make I686=1 nebo make K6=1).
Kompilace může havarovat
Když je kompilace hotová, můžete napsat dir. Měli byste vidět nové MAME.EXE.
Kompilace skončila
Pro použití MAME byste měli vytvořit adresáře, které MAME očekává. Napište md artwork, md cfg, md hi, md inp, md memcard, md nvram, md roms, md samples a md snap.
Gratulujeme, dokázali jste to!
Pro úspěšnou kompilaci nové verze MAME není vhodné rozbalit nové zdrojáky do starší verze. Raději přejmenujte adresář MAME, nebo ho rovnou smažte (pokud v něm nemáte něco důležitého) a rozbalte nové zdrojáky do prázdného adresáře.
Nejdříve je třeba smazat staré Allegro. Jděte do adresáře DJGPP (cd c:\djgpp) a smažte celý adresář Allegra napsáním deltree /y allegro. Pak musíte smazat knihovnu Allegro pomocí del lib\liballeg.a a hlavičkové soubory pomocí cd include, del allegro.h a deltree /y allegro. Nyní proveďte instrukce v odstavci "7. Instalace knihovny Allegro".
Největší výhoda při vytváření vlastních binárek je samozřejmě možnost pohrát si se zdrojáky. Pokud chcete například vyzkoušet drivery, které ještě nejsou plně funkční, podívejte se na soubor src\driver.c pomocí normálního textového editoru (např. EDIT). Zablokované drivery jsou označeny slovem TESTDRIVER. Odstraňte slovo TEST z driveru, který chcete vyzkoušet, uložte soubor a napište znovu make . Ale pamatujte, že licence zakazuje distribuovat binárky podporující hry, které nejsou podporovány v oficiální verzi. Přirozeně není důvod k takové distribuci, protože pomocí této stránky si každý může vytvořit své MAME.
Možná jste si všimli, že použití UPX zabere mnoho času. Nejjednodušší řešení je přejmenovat soubor upx.exe. Potom při použití make dojde k chybě a výsledný MAME.EXE bude asi 10 MB velký, ale na jeho funkčnosti to nic nezmění.
Pokud chcete přidat ladící funkce do vašeho MAME, upravte soubor makefile. Kousek od začátku uvidíte text typu "uncomment next line to include the debugger". Odstraňte znak # z dalšího řádku, takže tam zůstane pouze DEBUG = 1. Uložte soubor, napište make clean a pak make. Pro vlastní použití debuggeru upravte soubor MAME.CFG. Najděte řádek, na kterém je napsáno debug = no. Změňte na debug = yes a uložte soubor. V MAME potom stiskněte klávesu tilda ( ~ , vlevo od klávesy 1) pro vstup do debuggeru.