Bon, et bien apres avoir bien galéré , je vous propose ce tit how to de advancemame DOS pour :
1 assembler son compilateur (gjdpp) et configurer l'environnement winxp.
2 créer son advancemame pour DOS uniquement.
3 modifier les sources pour inclure des jeux
Note: PRENDRE EXACTEMENT LES FICHIERS pour compiler 0.77, inferieur et supérieur !
il faut winzip 8.1 que l'on utilise sur winxp tout betement , winxp (ou DOS) connaitre les commandes de navigation DOS (cd cd.. cd\) pour pouvoir comprendre les chemins d'acces sous DOS ou invite de commande de winxp qui n'EST PAS du DOS mais qui peut se configurer pour que le compilateur fonctionne !
--------------------------------------------------------------------------------------
Partie 1
Assembler les fichiers....
aller
http://www.delorie.com/pub/djgpp/current/Dans le repertoire V2 prendre:
djdev203.zip
puis ds le repertoire GNU
bnu214b.zip
http://www.delorie.com/pub/djgpp/current/v2gnu/bnu214b.zip fil41b.zip
http://www.delorie.com/pub/djgpp/current/v2gnu/fil41b.zip gcc333b.zip
http://www.delorie.com/pub/djgpp/current/v2gnu/gcc333b.zip gpp333b.zip
http://www.delorie.com/pub/djgpp/current/v2gnu/gpp333b.zipmak3791b.zip
http://www.delorie.com/pub/djgpp/current/v2gnu/mak3791b.zippat21b.zip
http://www.delorie.com/pub/djgpp/current/v2gnu/pat21b.zip shl2011b.zip
http://www.delorie.com/pub/djgpp/current/v2gnu/shl2011b.zipa ce stade decompressé le tout ds un repertoire DJGPP que vous placez dans c:\
ensuite recupéré cela:
all403.zip (librairie allegro)
http://www.delorie.com/pub/djgpp/current/v2tk/allegro/all403.zipmamesealnew.zip
http://www.mame.net/compile.html le prendre ici
nasm-*.zip (j'en ai recupéré plusieurs
http://members.cox.net/mame1/files/NASM98BD.ZIP upx190d.zip
http://upx.sourceforge.net/download/unstable/upx190d.zipil faut a ce stade decompresser LES FICHIERS nasm et upx ds le repertoire djgpp\bin . bien verifier de trouver nasm.exe dans le repertoire BIN de djgpp
ET mameseal se decompresse lui ds c:\djgpp
on va installer la librairie ALLEGRO maintenant!
On decompresse all403.zip ds c:\djgpp
a ce stade on pva tester notre compilateur!
il faut soit DOS soit windows donc ^^
on va prendre le cas de winxp et passer via la ligne de commande pour compiler ^^
on va ds propriété de poste de travail
on choisit "avancé"
Juste au dessus de OK, on va cliquer sur "variables d'environnement"
ici on ajoute pour les "variables utilisateurs" 2 nouvelles lignes:
ligne 1
variable: djgpp
valeur de variable: C:\DJGPP\DJGPP.ENV
ligne 2
variable: path
valeur de variable: C:\DJGPP\BIN;%PATH%
pour les "variables system"ligne a ajouter:
variable: djgpp
valeur de variable: C:\DJGPP\DJGPP.ENV
ET 1 ligne a modifier celle du PATH.....
qui doit ressembler a cela apres modif'!
variable: path
valeur de variable: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem\;DJGPP\BIN;
(on ajoute juste ";DJGPP\BIN;")
voila, on applique le tout
on ouvre une invite de commande grace a "executer" dans le menu demarrer (touche windows + R) et on tape cmd
voila de la taper juste make
si vous avez cela c bon:
C:\Documents and Settings\XXX>make
make.exe: *** No targets specified and no makefile found. Stop.
now, votre invite de commande et voter compilateur doivent faire bon menage on revient a ALLEGRO...
sous invite de commande.. on fais cd\ pour retourner a la racine de c:
puis
cd \djgpp\allegro (entrer)
make lib (qq ligne pas de message d'erreur)
make install (qq lignes...ET vous devez lire: optimized djgpp library has been installed)
well done c ok !
il nous reste zlib a utiliser !
decompresser ZLIB114S.ZIP ds c:\zlib
Puis passer sous invite de commande
rendez vous ds ce repertoire
c:\
cd zlib
edité par Max : C:\zlib\contrib\zlib-1.14
make -fmsdos\makefile.dj2 (vous pouvez copier et coller ds la pseudo fenetre dos)
Quand ceci est terminer on copie 3 fichiers ds djgpp pour cela
xcopy libz.a c:\djgpp\lib\
xcopy zlib.h c:\djgpp\include\
xcopy zconf.h c:\djgpp\include\
n'oubliez pas de copier coller chaque ligne c plus simple !
WIN 95 98 :
on peut aussi utiliser un fichier batch pour win95.98.me
créer un fichier txt avec
set DJGPP=C:\DJGPP\DJGPP.ENV
set PATH=C:\DJGPP\BIN;%PATH%
et enregistrer ds tout fichier djgpp.BAT et rebooter la machine (important )
(il faut etre sur que djgpp soit bien ds c:\) et passer via le vrai DOS de win98
-------------------------------------------------------------------------------------
partie 2
creer son advmame.exe!
goto
http://prdownloads.sourceforge.net/advancemame/advancemame-0.77.0.tar.gz?downloadceci sont les sources de advmame 0.77et de mame 0.77 incluse donc rien a faire..
PS: à ce jour j'ai testé la 0.79 et la 0.77 et seul la 0.77 marche , mais je crois que c'est une question de temps et de fichier makefile, si qq un sait pourquoi la 0.79 ne compile pas, merci d'aider ! )
on decompresse le fichier dans c:\adv, on va y trouver un fichier makefile.in, on le renomme en makefile (ceci est le fichier de configuration de advancemame pour l'optimiser par rapport a son processeur je crois voir tout en bas de ce how to)
on ouvre une invite de commande,
c:\
cd adv (entrer)
make emu (entrer)
la ca va compiler et prendre un certain temps !
si tout ce passe bien , un joli advmame.exe va apparaitre ! Good GAME !
GROSSE PARENTHESE:
j'ai un amis msnien qui m'a dit:
tu copies les fichiers .c qui sont dans tes sources et tu les deplace dans c:\djgpp\lib
chose que j'ai faite... et cela a marché par contre j'ai effacé les même fichiers pour voir et cela compile pareil , l'erreur a disparu.... aller savoir lol (j'ai bien fait le fête aussi 27 ans cela se fête^^ alors j'etais pas clair surement lol)
en cas de plantage genre"Argument list too long", voila la solution
stubedit c:\djgpp\bin\gcc.exe bufsize=32k
stubedit c:\djgpp\lib\gcc-lib\djgpp\3.33\collect2.exe bufsize=32k
PS noté bien que si une ligne deconne ds celle donné au dessus, et bien ,verifié bien le chemin d'acces
en cas d'errror -1 , peut etre recommencer a l'installation de NASM upx et seal (la version de nasm est peut etre pas la bonne je refais de tete...)
--------------------------------------------------------------------------------------3eme partie
modifier son makefile:
on clik dessus et on choisit notepad:
![](http://laurent.henard.9online.fr//makefile.gif)
on regarde la photo et on "uncomment" la ligne pour optimiser par rapport a son processeur:
![](http://laurent.henard.9online.fr//makefile2.gif)
modifier ses sources et ajouter des jeux
il y a d'abord 2 choses a savoirs
1 je suis super novice alors, je propose juste de modifier ses sources pour la neogeo
2 je suis claqué alors je vais faire simple lol et a vi, sauvegarder deja driver.c et neogeo.c (o cas ou lol)
![](http://laurent.henard.9online.fr/image/obj.gif)
---> il faut des roms , bon cela, vouv vous debrouillé...
ensuite il faut savoir que advmame utilise le fichiers drivers.c pour lister ses jeux et un fichier neogeo.c pour configurer les drivers necessaires au jeu (son gfx etc etc) ces 2 fichiers se trouve ds le repertoire c:\djgpp\src (pour le driver.c) et c:\djgpp\src\drivers (neogeo.c) on peut les editer avec notepad, ce sont les codes sources....
alors que nebula utilise des DAT mame utilise donc des codes sources...
aller ici
http://www.micmano.net/source_mame.htm et regarder comment ajouter des codes sources (je note que pour kof2003 par exemple.... ba j'ai utiliser autre chose de plus simple...^^)
vous pouvez aussi aller la pour recuper une archive
http://personal.telefonica.terra.es/web/klaxnek/mame32plus-src-lamer.rar(merci a codex de
www.toudy.com pour ce post )
si vous decompresser l'archive , il y a un src en repertoire lequel est composé d'un driver.c, et ds le repertoire driver..d'un neogeo.c... (ce repertoire ce decompose en 3 partie a regarder , la premiere sont les romstart, la deuxieme est drivers_init et la 3 eme est le denomination des jeux, chercher une occurrence comme rotd (rage of the dragon) signifie qu'elle sera presente 2 fois ds la premiere partie (et vi rotd et rotdd) peut etre ds la partie driver_init aussi (certain jeux necessite d'autre opas....) et forcement ds la 3 eme partie la denomination quoi .. logique)
pour faire simple: f3 = rechercher lol
donc f3 rotd
j'ai trouvé ds le fichier driver.c de mame32plus-src-lamer.rar
les lignes
DRIVER( rotd ) /* Rage of the Dragons */
DRIVER( rotdd ) /* Rage of the Dragons (Decrypted) */
copie colle ceci ds le driver.c de ton repertoire c:\adv\src\ (ensuite on le ferme ce driver.c)
partie 1 du neogeo.c:
ensuite on va dans neogeo.c de mame32plus-src-lamer.rar, hop on appuis sur f3 on marque rotd. il trouve le romstart de rotd on copie colle ds SON neogeo.c à la suite du dernier roms END,
ROM_START( rotd )
ROM_REGION( 0x800000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "264-p1.bin", 0x000000, 0x800000, CRC(b8cc969d) )
ROM_REGION( 0x20000, REGION_GFX1, 0 )
ROM_FILL( 0x000000, 0x20000, 0 )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
ROM_REGION( 0x40000, REGION_USER4, 0 )
ROM_LOAD( "264-m1.bin", 0x00000, 0x10000, CRC(9abd048c) ) /* encrypted, we load it here for reference and replace with decrypted ROM */
NEO_BIOS_SOUND_64K( "264-m1d.bin", CRC(e5f42e7d) ) /* decrypted */
ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
/* encrypted */
ROM_LOAD( "264-v1.bin", 0x000000, 0x800000, CRC(fa005812) )
ROM_LOAD( "264-v2.bin", 0x800000, 0x800000, CRC(c3dc8bf0) )
NO_DELTAT_REGION
ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "264-c1.bin", 0x0000000, 0x800000, CRC(4f148fee) )
ROM_LOAD16_BYTE( "264-c2.bin", 0x0000001, 0x800000, CRC(7cf5ff72) )
ROM_LOAD16_BYTE( "264-c3.bin", 0x1000000, 0x800000, CRC(64d84c98) )
ROM_LOAD16_BYTE( "264-c4.bin", 0x1000001, 0x800000, CRC(2f394a95) )
ROM_LOAD16_BYTE( "264-c5.bin", 0x2000000, 0x800000, CRC(6b99b978) )
ROM_LOAD16_BYTE( "264-c6.bin", 0x2000001, 0x800000, CRC(847d5c7d) )
ROM_LOAD16_BYTE( "264-c7.bin", 0x3000000, 0x800000, CRC(231d681e) )
ROM_LOAD16_BYTE( "264-c8.bin", 0x3000001, 0x800000, CRC(c5edb5c4) )
ROM_END
on rebascule sur neogeo.c de mame32plus-src-lamer.rar, on reappuis sur f3 pour voir s'il y a un autre... on trouve le romstart de rotdd.. on refait la même manip..
f3.. on arrive ds la partie 2
DRIVER_INIT( rotd )
{
data16_t *rom;
int i,j;
neogeo_fix_bank_type = 1;
kof2000_neogeo_gfx_decrypt(0x3f);
init_neogeo();
/* thanks to Elsemi for the NEO-PCM2 info */
rom = (data16_t *)(memory_region(REGION_SOUND1));
if( rom != NULL )
{
/* swap address lines on the whole ROMs */
for( i = 0; i < 0x1000000 / 2; i += 16 / 2 )
{
data16_t buffer[ 16 / 2 ];
memcpy( buffer, &rom[ i ], 16 );
for( j = 0; j < 16 / 2; j++ )
{
rom[ i + j ] = buffer[ j ^ 4 ];
}
}
}
}
voila la 2 eme partie on surligne bien la partie qui nous concerne cele de rotdd (on peux aussi mettre rotd mais il faut des lors rajouter la ligne rotd ds driver.c (on commence a comprendre? ) et on colle ds la 2eme partie de VORE neogeo.c ^^
f3...voila la 3eme partie ^^
/* Evoga */
GAMEB( 2002, rotd, neogeo, neogeo, neogeo, neogeo, rotd, ROT0, "Evoga / Playmore Corporation", "Rage of the Dragons" )
/* Evoga */
GAMEB( 2002, rotdd, rotd, neogeo, neogeo, neogeo, rotdd, ROT0, "Evoga / Playmore Corporation", "Rage of the Dragons (decrypted V,decrypted C)" )
on copie colle toujours ^^ ds la 3eme partie ^^ de votre neogeo.c
a ce stade on a donc placer nos drivers rotd et rotdd ds le fichier driver.c ET neogeo.c (car c des jeux neogeo lol )
et bien on va REcompiler !
invite de commande,
![](http://laurent.henard.9online.fr/image/compilok.gif)
cd adv
make emu
il va rechanger driver.c et neogeo.c et recréer tres vite un advmame.exe qui accepte rotd et rotdd ^^
libre a vous d'ajouter ce que vous voulez ^^
ça ne marche pas pour vos roms?
probleme de crc? incompatibilité de noms? il vous faut:
ceciqui est un calculateur de crc et de sha1..ca parait chinois mais c'est tres pratique car vous decompacter votre rom, vous ouvrez le neogeo.c regarder le romstart:
il y a des roms v, m1, C etc etc , il y a des crc entre parenthese et des sha1 ..regarder votre rom DEZIPPE, vous aller retrouver les même fichiers sauf que le nom de la roms peut varier OU son extension.. *.rom ou *. bin..
le plus simple c de prendre fichier par fichier, de remplacer les noms par ceux de voter rom.., de calculer crc et sha1 et remplacer tout betement par copier coller dans le fichier neogeo.c
une photo pour aider ^^
![](http://laurent.henard.9online.fr//modifcrc.gif)
je peux modifier toute les données a ma guise en fonction de ma ROM!
![](http://laurent.henard.9online.fr//hcalucl.gif)
le programme vous donne tout vive le copier coller ^^
d'ou l'interet de compiler soit même pour avoir 100% de good resultat avec SES roms
pour le reste sachez que votre compilation est la votre, ne pas la distribuer ^^ par respect pour mame et ses developpeurs
si vous obtenez des messages d'erreurs a la suite de modifications, reprener vos fichiers driver et neogeo.c (que vous avez sauvegarder) et recommencer la manip pour un seul jeux ^^
l'erreur est indiqué via des lignes pour ce faire regarder la ligne qui bug ds le fichier correspondant..
si driver.c y a une erreur a la ligne 7565
ba on ouvre son driver.c, on fait CTRL-G et on marque le nom de la ligne et on regarde ce qui cloche ^^ (j'ai reussi a tout integré en neogeo ss probleme )
voila en gros ceque j'ai fait, cela marche bien , il reste le fichier makefile a decouvrir car c lui qui doit causer le probleme pour la 0.79....
sinon voici des liens utiles :
http://advancemame.sourceforge.net/doc-build.htmlhttp:// http://www.powerstrike.net/Tehkan/mameforever.html (merci rico!) [url]http://www.mame.net/compile.htmlhttp://members.cox.net/mame1/enhance.htm www.hammerhead.be bonne chance a tous
j'espere avoir apporté une pierre a l'edifice!