Creazione CD Play station e creare i sottocanali.

Aperto da Halfshadow, Aprile 05, 2013, 13:49:10

Discussione precedente - Discussione successiva

Halfshadow

Buongiorno a tutti, ho un progetto, ovvero quello di creare una compilation con tutte le demo di Crash Bandicoot 3.

E ci sono quasi riuscito dopo varie ricerche e tentativi, utilizzando un programma che mi compila un'immagine che contiene i file che servono per il boot dei giochi, perchè ho estratto dai vari CD demo solo le cartelle che contenevano appunto le demo di Crash 3.

Il problema sta però nel fatto che quel programma, CDgen PS2, non crea dati di sottocanale, già che c'ero ho voluto metterci anche il video che contiene spezzoni del prototipo del gioco preso da Demo one, il fatto è che si tratta di un file exe che avvia un file STR (i video del Play station) però il video a quanto pare utilizza dati di sottocanale perchè se lo estraggo con CDMAGE è di 50 MB e qualcosa, però poi compilando con quel file l'ISO non funziona, mentre utilizzando quello estratto con ULTRAiso (di circa 47 MB) funziona ed il video si avvia, ma senza sonoro.

Ed un'altra cosa, siccome 2 demo di Crash 3 erano incluse nello stesso disco demo (Pizza hut, anche se quella con Coco e la tigre era nascosta, ovvero non selezionabile) quella principale di Crash che nuota negli abissi usando solo i file della cartella S0 non si avvia, si avvia quella di Coco con la tigre, ovvero quella nascosta... Allora avevo pensato di mettere l'intero Pizza hut come altro gioco da selezionare nel menu multi, così sicuramente avrebbe funzionato anche la demo principale, ma una volta selezionato il gioco dal menu del multi loader rimane lo schermo nero, probabilmente perchè mancano appunto i dati di sottocanale.

Insomma, i casi sono 2, mi serve o un modo per ricreare i sottocanali o un multiloader per PSX che carichi delle vere e proprie ISO (dove i sottocanali ci sarebbero), perchè il CDGEN che sto usando prevede di tenere i file di tutti i giochi nella stessa cartella ROOT, spero che saprete aiutarmi. ;)

Gemini

Temo tu stia confondendo i sottocanali con i dati di controllo dei settori. Questi dati aggiuntivi hanno pertinenza solo nella creazione di file contenenti audio XA (misti FORM 1 e FORM 2 nel caso dei video) in quanto non sono utilizzati per verificare la validità di un settore, ma contengono effettivamente spezzoni intesi dalla console per il mix con l'audio in streaming.

Tornando al tuo problema, il video muto indica che hai sbagliato a impacchettare il file STR, cioè non è stato codificato come la console si aspetterebbe (i programmi ufficiali prevedono file STR con dimensioni multiple di 2336 byte). L'audio mancante sta a indicare che i tuoi dati sono esclusivamente in FORM 1, quindi impossibili da riconoscere come dati XA per i settori interlacciati non contenenti i frame del video (questi sono sempre FORM 1, quindi riconoscibili a prescindere dal lettore). Da quello che ricordo, CDgen PS2 non è in grado di creare alcun settore FORM 2. Lascerei anche perdere l'estrazione con UltraISO, programma che crea più problemi che soluzioni.

Passando alla demo con schermo nero, non escluderei che sia un problema di allocazione dei file su disco. Moltissimi giochi per PlayStation ignorano in toto la TOC in favore di un'indicizzazione più rapida, con LBA e dimensioni schiette di ogni file inseriti da qualche parte (molto spesso direttamente nell'eseguibile principale o in alternativa negli overlay). Se la demo utilizza il metodo di indicizzazione ridotto, l'unica soluzione per farla funzionare è aggiornare gli indici in base alla nuova posizione dei dati sulla ISO ricreata.

Halfshadow

Ah, sì però il video di cui vi parlo è preso dal disco Demo one, non l'ho convertito io, io ho rippato il file exe Crash3v.exe ed il file video Crash3v.STR preso dalla cartella del disco Demo one appunto, forse le dimensioni non sono corrette ma non credo sia colpa mia, dato che proviene dal disco Demo One.

Se lo estraggo con CDMAGE le dimensioni sono giuste e me lo legge anche l'STRPLAY, però poi se ci metto quello nella ISO proprio non me lo legge. Allora ho provato anche a importarlo con CDMAGE al posto di quello che carica (quindi i byte dovrebbero restare gli stessi presumo, perchè infatti mi avvisa che il file viene troncato) ma poi non funziona comunque, resta lo schermo nero, non credo sia perchè viene troncato, perchè ho provato a farlo anche con altri video (con ISO originali non costruite da me) e nonostante il video fosse incompleto funzionava tranquillamente.

Per quel problema dell'allocazione allora come si può risolvere? Magari potrei usare un programma che mi apra la ISO già esistente e che mi permetta di aggiungere i nuovi files (che quindi verrebbero aggiunti dopo estendendo le dimensioni della ISO senza intaccare i settori già fatti) e creare così la compilation unica? Si può fare?

Ah dimenticavo, con Windows quei file STR non li posso estrarre, devo usare un programma per le ISO, perchè altrimenti Windows mi dice Funzione MS-DOS non valida.

Gemini

Le dimensioni di un file STR è normale che non combacino in presenza di audio. La formula per calcolare la dimensione effettiva è: dimensione su CD / 2048 * 2336. Come ti avevo anche spiegato prima, se il file STR con settori XA non viene estratto e inserito come dati FORM 2, il programma di lettura non sarà in grado di gestirlo come dovrebbe per via dei settori di tipo differente. Il messaggio di troncamento del file indica proprio che lo stai reinserendo come fossero dati FORM 1.

Per il problema di allocazione, l'unica è localizzare i dati (sempre che ci siano) e rigenerarli.

Halfshadow

E come posso fare ad estrarre e creare in modalità FORM 2? Non sono praticissimo di queste cose... Anche il discorso di localizzare i dati e rigenerarli è una cosa che non ho mai fatto...


Un'altra cosa, mi sono reso conto che la demo del livello Tell no tales era molto più "betosa" nella versione americana di Spyro ed ho voluto aggiungere anche quella. Funzionava però poi non funzionava più la versione europea, credo quindi di aver capito il perchè si creino tanti conflitti, anche se sono in cartelle differenti creano conflitti i file che hanno lo stesso nome (ma che però non sono identici), però non credo di poterlo cambiare, perchè io ho compilato il file programs.TXT perchè avvii il file CRASH.EXE contenuto in ognuna di queste cartelle (nel caso della verisone europea nella cartella S2, in quella NTSC S3 ed ognuna aveva il proprio CRASH.EXE differente originario della stessa cartella da cui le ho estratte) e se quel file CRASH.EXE ad esempio dice che deve avviare S000000F.NSF io non so come potrei cambiarlo...

[EDIT Moderatore] Per favore, non postare due messaggi di fila. Usa il tasto modifica la prossima volta.

Gemini

Per l'estrazione c'è questo, mentre per creare dati FORM 2 serve un programma che generi le informazioni dei settori (cosa che i programmi più noti non fanno, bollando tutto come FORM 1). CD-tool di pixel è in grado di generarli correttamente, ma il fatto che necessiti di script lua non rende proprio la vita semplice se si è abituati a programmi più intuitivi stile drag & drop.

Passando ai conflitti, dubito che un semplice scambio di file possa risolvere il tuo problema. Se i dati non sono compatibili tra le varie versioni è perché i motori grafici si aspettano formati differenti.

Halfshadow

Quindi nemmeno CDmage non era adatto? Peccato, perchè con quello realizzai un'impossibile ISO di Sailor moon super S, fece un vero e proprio miracolo...

Io comunque ho visto che in CD gen PSX c'è una funzione per importare il tree file di un disco. Può aiutarmi dato che se non sbaglio è correlato proprio all'LBA? Anche se però il primo tentativo è fallito, perchè ho importato il file tree originale del disco pizza ma non ha importato da solo anche tutti i file, li ho reinseriti io manualmente ma poi la iso con l'emulatore non parte lo stesso e non ci ho aggiunto niente, per ora avevo voluto solo creare da 0 una iso del disco pizza identica all'originale, intendevo aggiungere dopo i file necessari al multiboot ed i file aggiuntivi.

Ah, a proposito del programma che mi hai passato:



È un messaggio di errore, io però ho copiato dimensioni ed LBA come mostrati da CDMAGE. Anche mettendo le dimensioni dettemi da ISO buster è la stessa cosa, non ho capito dov'è che sbaglio...

Gemini


Halfshadow

Ah ecco, sono proprio scemo... '-.- Comunque ora non sono a casa, semmai provo stanotte (kamikaze mode on) o domani. Grazie per ora.

AGGIORNAMENTO:
Grande Gemini, ho esportato un file leggermente più grande perchè fosse un multiplo di 2048, non ha funzionato subito dopo aver compilato l'ISO (perchè probabilmente CD GEN non compila in FORM 2) dava schermo nero, però col tuo tool ho importato nello stesso settore LBA e dopo ha funzionato, col sonoro. Ora provo a masterizzare su un CD-RW per controllare se funziona sul Play station ma credo di sì, in genere quando funziona sull'emulatore funziona anche lì. Ora rimane solo il problema di compilarci insieme anche il disco Pizza per avere quell'ulteriore demo e poi di farci girare anche la versione americana di un livello che utilizza alcuni file con lo stesso nome, il discorso dei conflitti che mi hai detto lo posso capire, ma io nel disco ho messo entrambi i file, americani ed europei, con i loro file EXE e non li ho rinominati, stanno in cartelle diverse, la versione europea ha i suoi file ed il suo EXE nella stessa cartella, quindi teoricamente dovrebbe leggere i suoi file, non capisco perchè cerchi di leggere quelli della versione europea, che stanno in tutt'altra cartella, mistero... Per ora comunque grazie davvero tante, è merito tuo e del tuo programma se intanto ho già fatto questo passo!

NUOVO AGGIORNAMENTO:
Ho lavorato un pò di ore per mettere tutti i file nel giusto settore LBA: Risultato funziona tutto come dovrebbe! Avvia il disco demo Pizza Hut e da lì seleziono la beta di Crash 3 Under pressure e tutto il resto, compreso il video grazie alle istruzioni ed al programma che mi hai dato funzionano esattamente come dovrebbero. Non ho risolto il problema della demo Tell no tales NTSC, ma chissene, era il problema minore. Grazie infinite Gemini, davvero. :D