ASSERT FAILURE IN...Uno dei casi di messaggio di errore più frequente, legato alla chiusura improvvisa del Mugen, è quell'incomprensibile
Assert Failure in...
E' Bene precisare fin da ora che attualmente sono da noi conosciuti
4 tipi diversi di messaggi di errore del tipo Assert Failure, e sono problemi molto diversi tra di loro.
Assert Failure in
Array.h line...Assert Failure in
charsel.c line...Assert Failure in
p-make.c line...Assert Failure in
spr-lib.c line...Come vedete da questo prospetto abbiamo 4 messaggi di errore (la cui dicitura non aiuta a capire il tipo di errore incorso) che si distinguono per la parte che noi abbiamo evidenziato in rosso. Vi è anche un numero dopo il "line", ma questo numero non ci interessa, ci interessa solo il "nome" (qui evidenziato in rosso) per capire quale dei 4 problemi il nostro Mugen ha incontrato.
CARATTERISTICHE COMUNI AI VARI "Assert Failure"Tutti e 4 gli "Assert Failure" sono errori tipici UNICAMENTE del winmugen. Nemmeno il linuxMugen (da cui il winmugen deriva) soffre di questo problema.
Tutti e 4 gli "Assert Failure" sono errori che si manifestano UNICAMENTE nelle modalità di gioco tipo Giocatore VS PC (Arcade, Team Arcade, Survivor, Survivor Co-Op) mentre NON SI MANIFESTANO quando si affronta un avversario umano (modalità VS e Team VS). Non chiedetemi il perché, ma è così.
Tutti e 4 gli "Assert Failure" (eccetto, come vedremo, il p-make.c) sono errori legati ad un personaggio. Visto che il messaggio di errore non ci dà alcun riferimento, l'unico modo per capire quale personaggio è affetto dall'errore è "andare a tentativi" facendo attenzione ai personaggi che sono stati annunciati nella schermata "x VS y" dove x e y sono le due squadre che si affrontano (solitamente si affrontano solo due chars). Dovete guardare TUTTI i CHARS che sono stati annunciati prima della chiusura "Assert Failure".
Assert Failure in Array.hTempo fa era, tra i probemi di tipo AssertFailure, il più ostico da risolvere. Questo problema capita in uno di questi due casi: O vi è nel file AIR del personaggio almeno una animazione senza frames (il caso più comune) OPPURE vi è uno state nel CNS che contiene qualche particolare errore (caso estremamente raro, che mi è incontrato di verificare una sola volta in tanti anni).
Normalmente quindi è un problema legato all'AIR di un personaggio.
Ora, Grazie a Fighter Factory FF, è diventato un problema semplicissimo da risolvere. Basta infatti aprire il char incriminato con Fighter Factory, e premere il bottone "organizza automaticamente" che si trova nella sezione "Animazioni" e salvare il file AIR.
Assert Failure in Charsel.cIn questo caso il problema sta nel file .DEF del char, e precisamente si verifica quando la riga
pal.defaults = ...
E' stata settata male o è assente.
La riga
pal.defaults va inserita sotto la sezione
[Info] del file .DEF e va settata in questa maniera
pal.defaults = 1,2,3,4,5,6,7,8,9,10,11,12
La lista dei numeri, però, va decrementata se il char usa meno di 12 palette (nel dubbio, comunque, è meglio dichiararle tutte e 12 che scriverne di meno).
se, quindi, il char possiede 6 palette, la maniera più corretta di settare pal.defaults sarebbe:
pal.defaults = 1,2,3,4,5,6
Assert Failure in p-make.cQuesto è l'unico Assert Failure che non è legato ad un char. In questo caso l'errore si trova nel file
select.def del vostro screenpack.
Il problema si verifica quando il Mugen non riesce a trovare nemmeno un char da poter selezionare. Questo errore capita quando TUTTI i Char vengono settati ad order = 0 (il mugen ha a disposizione 10 orders, da 1 a 10) o comunque ad order, che pur essendo validi, non hanno settato nemmeno un incontro.
Il modo più semplice di risolvere il problema è di togliere il parametro "order=0", o comunque provare a togliere qualche order qui e lì (basta rendere operativo almeno 1 char).
NOME_DEL_CHAR, stages\NOME_STAGE, order = 0
Assert Failure in spr-lib.cQuesto rimane un problema abbastanza "impegnativo" da risolvere. Non è eccessivamente difficile da riparare, ma dovrete fare qualche passaggio ed usare un po' la testa.
In questo caso l'errore si trova nell'SFF del char. In particolare il file .SFF contiene un errore al suo interno (di solito legato ad una sola immagine o comunque ad un numero molto esiguo di immagini).
Ecco quindi cosa dovrete fare.
1) Prima di tutto dovrete estrarre il file SFF con SffExtract (scaricabile anche da Mugenation). Dovrete impostarlo in maniera tale da farvi estrarre: Tutte le immagini, il file di testo con le coordinate,
ed anche il file di testo con l'indicazione degli errori riscontrati. Se avete problemi ad usare la linea di comando di SffExtract potrete farvi aiutare da un FrontHead.
Io ne ho sviluppato uno mio (di default estrae tutto quanto detto prima).
Qui il Link della discussione su Mugenation dalla quale potrete scaricare il mio FrontHeadE' ora importante che apriate il file di testo
con l'indicazione degli errori riscontrati. (se avete usato il mio FrontHead ed avete lasciato le opzioni di default, il file si chiama Log.txt).
Dentro a questo file troverete una o più righe (a seconda del numero di errori riscontrati) scritte in inglese.
Dovrete capire il messaggio (o i messaggi) in Inglese che vi riportano analiticamente gli errori riscontrati.
Il più delle volte vi basta capire quali immagini non dovrete inserire (o ripetere di inserire).
Dovrete quindi aprire il file di testo
quello con le coordinate ed eliminare (o modificare) i riferimenti alle immagini che vi hanno creato errore.
Controllate che il file di testo con le coordinate sia stato scritto bene (il winmugen ha bisogno che il file SFF sia compilato in una certa maniera).
alla fine ricompilate tutto con sprmaker
Per maggiori dettagli sulla risoluzione del problema "Assert Failure in spr-lib.c" (ed anche sul corretto modo di creare un SFF anche per winmugen/linuxmugen), vi consiglio di consultare anche il tutorial di Mugenation scritto da Maxim, dove maxim sapientemente fa un resoconto ordinato di tutte le nozioni che serve conoscere.
Qui il Link della discussione su Mugenation nella quale troverete il tutorial di maximEdited by Nobun - 11/4/2008, 20:46