SHENMUE - Traduzione in ItalianoScambio Info tecniche inside....
#31
Inviato 30 July 2003 - 11:37 AM
Intanto la traduzione procede senza troppi intoppi (anche se qualche problema lo sto incontrando pure io).
Domandona: come tradurreste Capsule Toy Machine? E' un giorno che ci sono bloccato (intanto ho tradotto quasi tutti i messaggi di sistema, non sono stato con le mani in mano... ). Qualche suggerimento?
#32
Inviato 30 July 2003 - 12:01 PM
#34
Inviato 30 July 2003 - 12:58 PM
per yot: penso che metterò distributore di capsule toys
#35
Inviato 01 August 2003 - 03:56 PM
Per scopo didattico posto la nuova versione 0.2 dell'utility spr2pvr.c da lanciare con la modalità già descritta.
Il codice è ancora da perfezionare devo presentarlo in una veste più leggibile, questo sarà fatto con la prossima versione (spero entro la prossima settimana).
Potete compilarlo su qualsiasi ambiente perchè l'ho scritto in ANSI C.
Min$t se hai un pò di pazienza ti fornirò l'eseguibile compilato per WinZoZ$, il mio intento è quello di fornirti anche una GUI grafica che ti permette di utilizzare spr2pvr senza necessariamente utilizzare la SHELL del DOS..
Buon "Skapocciamento" sul codice (consigliato SOLO agli interessati)..
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* valori di ritorno dalle funzioni */
# define AD_OK 0
# define AD_ABORT -1
# define AD_WARNING -2
/* define per debug */
FILE *dFile;
char sDebFile[64];
char sDebMsg[1024];
/* define Header e Tail file di input */
# define AD_TEXN "TE"
# define AD_GBIX "GB"
# define AD_PVRT "PV"
# define DIM_MAX_REC 512
void SetTraceLog(char *sTipoMon)
{
strcpy(sDebFile,sTipoMon);
dFile = fopen(sDebFile, "w");
fprintf(dFile,"\nspr2pvr Rel.0.2 Cristian 2003\n --INIZIO ELABORAZIONE\n");
fflush(dFile);
fclose(dFile);
}
void TraceLog(char *sMsg)
{
dFile = fopen(sDebFile, "a+");
fprintf(dFile, "%s\n",sMsg);
fflush(dFile);
fclose(dFile);
}
int ElaboraSpool(char *sFl)
{
char *cEndFile, sRecord[255+1];
char sFlOut[80+1],sRecTmp[255+1];
char sAppo[1+1];
int nFilePvr=0,iFlg=0,c;
FILE *pFl;
FILE *pFlOut;
if ((pFl = fopen(sFl, "r")) == NULL)
{
sprintf(sDebMsg,"Fallita open file:%s",sFl);
TraceLog(sDebMsg);
return(AD_ABORT);
}
/* Inizializza sRecTmp ed sAppo */
sprintf(sAppo,"\0");
sprintf(sRecTmp,"\0");
while ((c=getc(pFl)) != EOF)
{
sprintf(sRecTmp,"\0");
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
c=fgetc(pFl);
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
if (!strcmp(sRecTmp,AD_TEXN))
{
TraceLog("!!!!Trovato Header TEXN");
TraceLog(sRecTmp);
}
if (!strcmp(sRecTmp,AD_PVRT))
{
c=getc(pFl);
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
c=getc(pFl);
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
sprintf(sDebMsg,"-TEST PVRT, sRecTmp='%s'",sRecTmp);
TraceLog(sDebMsg);
nFilePvr=nFilePvr+1;
sprintf(sFlOut,"%d.pvr",nFilePvr);
if ((pFlOut = fopen(sFlOut, "w")) == NULL)
{
sprintf(sDebMsg,"Fallita open file:%s",sFlOut);
TraceLog(sDebMsg);
return(AD_ABORT);
}
else
{
sprintf(sDebMsg,"Apertura file:%s",sFlOut);
TraceLog(sDebMsg);
}
/* Inzio spool file .pvr fino all'Header GBIX */
/* Prendo il carattere successivo a PVRT e verifico l'header GBIX */
while ((c=getc(pFl))!=EOF && iFlg==0)
{
sprintf(sRecTmp,"\0");
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
c=getc(pFl);
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
/********** DEBUG
sprintf(sDebMsg,"-Prima del test TEXN, sRecTmp: %s",sRecTmp);
TraceLog(sDebMsg);
***************/
if (!strcmp(sRecTmp,AD_TEXN))
{
sprintf(sDebMsg,"Trovata Tail TEXN, sRecTmp: %s",sRecTmp);
TraceLog(sDebMsg);
ungetc(c,pFl);
fclose(pFlOut); /* Chiusura i-esimo file .pvr */
sprintf(sDebMsg,"Chiusura del file:%s",sFlOut);
TraceLog(sDebMsg);
iFlg=1; /* Uscita dal ciclo while */
}
ungetc(c,pFl);
sprintf(sRecTmp,"\0");
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
putc(c, pFlOut);
}
}
else ungetc(c,pFl);
iFlg=0; /* Reinizializza Flg per test nuovo file */
}
fclose(pFl);
sprintf(sDebMsg,"File .pvr estrapolati:%d\n",nFilePvr);
TraceLog(sDebMsg);
return(AD_OK);
}
/* Dsc2PVR.c Rel.0.2 25/07/2003 */
/* Il programma riceve in input il file .spr e restituisce N */
/* singoli files .pvr contenenti rispettivamente l'info del file di origine */
/* delimitata dall'Header TEXN fino al sucessivo Header TEXN */
/* PS:I bytes compresi tra TEXN e GBIX non saranno presi in considerazione */
/* ai fini del contenuto del singolo file .pvr */
/* NB:Sintassi spr2pvr file.spr */
main(int argc, char *argv[])
{
char sFileIn[32+1];
char sFl[80+1];
strcpy(sFileIn,argv[1]);
/* Prepara il file di log */
SetTraceLog("spr2pvr.log");
sprintf(sFl,"%s",sFileIn);
if (ElaboraSpool(sFl) != AD_OK)
{
TraceLog("ERRORE in ElaboraSpool");
exit(1);
}
else
{
TraceLog("OK");
}
TraceLog("END");
exit(0);
}
Alla prossima release!!
DC 4EVER!! :devil:
#36
Inviato 01 August 2003 - 08:37 PM
avevo provato anch'io ad imparare a tradurre roms (scaricando tutto quello che c'era nel sito dei SadNES) ma non ci sono mai riuscito, complice anche il mio pc che non mi fa partie i programmi
#37
Inviato 02 August 2003 - 01:40 AM
Min$t se hai un pò di pazienza ti fornirò l'eseguibile compilato per WinZoZ$, il mio intento è quello di fornirti anche una GUI grafica che ti permette di utilizzare spr2pvr senza necessariamente utilizzare la SHELL del DOS..
Grazie Cristian, ma non vorrei farti fare salti mortali, in fondo a me la shell dos va benissimo (se ci fossero pure i programmi che mi servono per tradurre per linux, probabilmente farei il tutto li...).
[OT] ma per sapere le cose che sapate (programmazione ecc..) siete andati in una scuola di informatica o roba del genere oppure è solo passione e siete degli autodidatti?
avevo provato anch'io ad imparare a tradurre roms (scaricando tutto quello che c'era nel sito dei SadNES) ma non ci sono mai riuscito, complice anche il mio pc che non mi fa partie i programmi
Tralasciando le enormi differenze conoscitive che intercorrono tra me e Cristian (la sua è programmazione vera e propria, la mia è una sufficiente conoscenza di come sono trattati i dati nei giochi e di come modificarli tramite semplici hexeditor) per imparare qualsiasi delle due cose (almeno a mio parere, se Cristian vuole dissentare, dissenti pure... ) è necessaria tanta buona volontà, pazienza e soprattutto impegno costante (non è possibile credere di poter imparare linguaggi come il c o il c++ in qualche settimana [anzi, i più saggi diranno che non se ne sa mai abbastanza]). io personalmente per la maggior parte sono autodidatta, il resto l'ho imparato con guide trovate su internet.
ps: per iniziare a capire qualcosa sulle traduzioni la guida dei sadnes è più che ottima (in italia hanno iniziato più o meno tutti con questa, me compreso...)
#38
Inviato 02 August 2003 - 10:06 AM
Per quanto riguarda una mano per la traduzione, io mi rendo disponibile al 100% delle mie possibilità...
Per la traduzione dei nomi, come avevo già detto in shenmueye, secondo me devono restare in lingua originale, come anche i nomi delle mosse
Purtroppo per quanto riguarda la parte "tecnica" non ho ancora la conoscenza necessaria per darvi una mano (e non ho mai tradotto nessuna rom, quindi dovrei iniziare da 0...), ma se avrò modo di aiutarvi (anche se non penso capiterà mai, date le mie conoscenze piuttosto scarse) lo farò senza pensarci due volte
#39
Inviato 04 August 2003 - 04:00 PM
Questa release funziona PERFETTAMENTE su macchina Unix/Linux (testato con successo).
Per compilarlo: gcc -o spr2pvr spr2pvr.c
Per eseguirlo: spr2pvr file_name.spr
Il codice da problemi sotto WinZoZ$ (maledetto sistema operativo) funzionando non correttamente, se qualcuno mi vuole aiutare a capire il perchè ben venga (l'ho compilato con Visual Studio 6)!!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* valori di ritorno dalle funzioni */
# define AD_OK 0
# define AD_ABORT -1
# define AD_WARNING -2
/* define per debug */
FILE *dFile;
char sDebFile[64];
char sDebMsg[1024];
/* define Header e Tail file di input */
# define AD_TEXN "TE"
# define AD_GBIX "GB"
# define AD_PVRT "PV"
# define DIM_MAX_REC 512
void SetTraceLog(char *sTipoMon)
{
strcpy(sDebFile,sTipoMon);
dFile = fopen(sDebFile, "w");
fprintf(dFile,"\nspr2pvr Rel.0.3 By Cristian 2003\n --INIZIO ELABORAZIONE\n");
fflush(dFile);
fclose(dFile);
}
void TraceLog(char *sMsg)
{
dFile = fopen(sDebFile, "a+");
fprintf(dFile, "%s\n",sMsg);
fflush(dFile);
fclose(dFile);
}
int ElaboraSpool(char *sFl)
{
char *cEndFile, sRecord[255+1];
char sFlOut[80+1],sRecTmp[255+1];
char sAppo[1+1];
int nFilePvr=0,iFlg=0,c;
FILE *pFl;
FILE *pFlOut;
if ((pFl = fopen(sFl, "r")) == NULL)
{
sprintf(sDebMsg,"Fallita open file:%s",sFl);
TraceLog(sDebMsg);
return(AD_ABORT);
}
/* Inizializza sRecTmp ed sAppo */
sprintf(sAppo,"\0");
sprintf(sRecTmp,"\0");
while ((c=getc(pFl)) != EOF)
{
sprintf(sRecTmp,"\0");
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
c=getc(pFl);
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
if (!strcmp(sRecTmp,AD_GBIX))
{
ungetc(c,pFl);
nFilePvr=nFilePvr+1;
sprintf(sFlOut,"%d.pvr",nFilePvr);
if ((pFlOut = fopen(sFlOut, "w")) == NULL)
{
sprintf(sDebMsg,"Fallita open file:%s",sFlOut);
TraceLog(sDebMsg);
return(AD_ABORT);
}
else
{
sprintf(sDebMsg,"Apertura file:%s",sFlOut);
TraceLog(sDebMsg);
}
/* Completa carattere Header GBIX */
fputs("G", pFlOut);
/* Inzio spool file .pvr da GBIX fino all'Header TEXN escluso */
while ((c=getc(pFl))!=EOF && iFlg==0)
{
sprintf(sRecTmp,"\0");
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
if (!strcmp(sRecTmp,"T"))
{
c=getc(pFl);
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
if (!strcmp(sRecTmp,AD_TEXN))
{
sprintf(sDebMsg,"Trovata Tail TEXN, sRecTmp: %s",sRecTmp);
TraceLog(sDebMsg);
fclose(pFlOut); /* Chiusura i-esimo file .pvr */
sprintf(sDebMsg,"Chiusura del file:%s",sFlOut);
TraceLog(sDebMsg);
iFlg=1; /* Uscita dal ciclo while */
}
}
sprintf(sRecTmp,"\0");
sprintf(sAppo,"%c",c);
strcat(sRecTmp,sAppo);
putc(c, pFlOut);
}
}
else ungetc(c,pFl);
iFlg=0; /* Reinizializza Flg per test nuovo file */
}
fclose(pFl);
/* fclose(pFlOut);*/
sprintf(sDebMsg,"File .pvr estrapolati:%d\n",nFilePvr);
TraceLog(sDebMsg);
return(AD_OK);
}
/* Dsc2PVR.c Rel.0.3 04/08/2003 */
/* Il programma riceve in input il file .spr e restituisce N */
/* singoli files .pvr contenenti rispettivamente l'info del file di origine */
/* delimitata dall'Header GBIX fino al sucessivo Header TEXN */
/* PS:I bytes compresi tra TEXN e GBIX non saranno presi in considerazione */
/* ai fini del contenuto del singolo file .pvr */
/* NB:Sintassi spr2pvr file.spr */
main(int argc, char *argv[])
{
char sFileIn[32+1];
char sFl[80+1];
strcpy(sFileIn,argv[1]);
/* Prepara il file di log */
SetTraceLog("spr2pvr.log");
sprintf(sFl,"%s",sFileIn);
if (ElaboraSpool(sFl) != AD_OK)
{
TraceLog("ERRORE in ElaboraSpool");
exit(1);
}
else
{
TraceLog("OK");
}
TraceLog("END");
exit(0);
}
Se non vedete il codice indentato non è colpa mia ma del text edir del Forum, chiedetemi il file con il codice e ve lo invierò corretto (compreso eseguibile).
Min$t il tool è tuo, fami sapere se hai problemi e sarò lieto di aiutarti!! :devil:
#41
Inviato 04 August 2003 - 11:38 PM
Ho compilato il sorgente con linux ed effettivamente estrae i pvr (anche da archivi molto complessi contenenti decine di pvr), peccato che li estragga male...:
spiego il problema: i pvr come detto sono composti da identificatore TEXN, header, stringa GBIX e stringa PVRT.
Per estrarre un file bisogna eliminare tutto quello sopra GBIX, cercare l'identificatore successivo eliminare tutto quello trovato (dal secondo identificatore [anch'esso da eliminare] in giù).
Il programma fa tutto ciò, ma al momento dell'estrazione modifica la stringa PVRT in PVR rendendo quindi il file inutilizzabile. A riprova di ciò ho riaggiunto manualmente la "T" mancante e i file hanno ripreso a funzionare (il resto del file viene estratto correttamente, come prova ho fatto un fc /b da dos tra un file estratto dall'estrattore e un file estratto manualmente).
L'ho provato più volte e a meno che non sia rincoglionito del tutto l'errore dovrebbe essere reale. Non ho potuto ancora provare con un compilatore windows, ma non dovrebbe cambiare. Non sono in grado di localizzare l'errore, quindi passo il tutto a te Cristian...
Ps: potresti modificare l'output in modo che invece di 1,2,3,4.pvr restituisca nomefile_1,2,3,4.pvr?
#42
Inviato 05 August 2003 - 07:57 AM
Hai agione Min$t,TEST ESTRATTORE DI PVR 0.3:
Ho compilato il sorgente con linux ed effettivamente estrae i pvr (anche da archivi molto complessi contenenti decine di pvr), peccato che li estragga male...:
spiego il problema: i pvr come detto sono composti da identificatore TEXN, header, stringa GBIX e stringa PVRT.
Per estrarre un file bisogna eliminare tutto quello sopra GBIX, cercare l'identificatore successivo eliminare tutto quello trovato (dal secondo identificatore [anch'esso da eliminare] in giù).
Il programma fa tutto ciò, ma al momento dell'estrazione modifica la stringa PVRT in PVR rendendo quindi il file inutilizzabile. A riprova di ciò ho riaggiunto manualmente la "T" mancante e i file hanno ripreso a funzionare (il resto del file viene estratto correttamente, come prova ho fatto un fc /b da dos tra un file estratto dall'estrattore e un file estratto manualmente).
L'ho provato più volte e a meno che non sia rincoglionito del tutto l'errore dovrebbe essere reale. Non ho potuto ancora provare con un compilatore windows, ma non dovrebbe cambiare. Non sono in grado di localizzare l'errore, quindi passo il tutto a te Cristian...
Ps: potresti modificare l'output in modo che invece di 1,2,3,4.pvr restituisca nomefile_1,2,3,4.pvr?
questa cosa mi è sfuggita... Eppure quando andavo a convertire i file.pvr in .bmp con l'estrattore il tutto mi funzionava benone (tralasciando la lettura del contenuto del file).....Bohhh!??!
Cmq non c'è problema, vado ad apportare le modifiche al codice e la "T" comparirà di nuovo....
PS:No problem per la nuova dicitura dei files di Output (nomefile_1,2,3,4.pvr)! Devo dire chequsta cosa mi stà divertendo molto....Finalmente un uso delle macchine che serve a qualcosa!!
Come trovo un secondo di tempo mi metto al lavoro ed il tutto sarà pronto per la Rel.0.4....A Dopo!
Leggono questa discussione 0 utenti
0 utenti, 0 ospiti, 0 utenti anonimi