Home Homebrew DKWDRV si aggiorna alla versione 1.7.6v: Corretti i problemi alla GPU...

[Scena PS2] DKWDRV si aggiorna alla versione 1.7.6v: Corretti i problemi alla GPU e migliorata l’emulazione CD tramite USB

80
0

Pubblicato un rapido aggiornamento per DKWDRV, il driver alternativo a PS1DRV sviluppato per PlayStation 2, che permette di eseguire i giochi della prima PlayStation attraverso una gestione alternativa dei driver CD.

La nuova versione 1.7.6v introduce diverse correzioni importanti, a partire dalla risoluzione di un problema nell’emulazione della GPU che comprometteva il funzionamento di alcuni giochi nell’ultima versione pubblicata.

Il malfunzionamento riguardava il trasferimento dei dati verso la GPU, che poteva risultare corrotto e interessava sia le configurazioni PGIF sia quelle DECKARD, indipendentemente dall’utilizzo del lettore CD o del supporto USB.

Per le console basate su architettura DECKARD è stata inoltre introdotta una nuova versione dell’hook PPC ISTAT, un intervento che riguarda entrambe le modalità di utilizzo, CD e USB.

L’aggiornamento prosegue anche il lavoro di riscrittura dell’emulazione CD tramite USB, arrivato al settimo passaggio. Questa fase introduce una serie di ottimizzazioni e correzioni pensate per rendere più affidabile la gestione delle operazioni di lettura.

Tra gli interventi troviamo un’attesa aggiuntiva durante l’avvio, per consentire al dispositivo USB di essere pronto prima dell’utilizzo, e una priorità maggiore assegnata alle operazioni DMA USB.

Sono stati corretti anche diversi problemi interni, tra cui il calcolo dei cicli di ricerca, il polling durante alcune operazioni di reset e arresto, la gestione delle interruzioni e il recupero delle informazioni sui settori durante le letture USB.

Migliorata inoltre la risposta GetLocL, mentre è stato aggiunto un controllo di integrità dell’intestazione dei settori per individuare eventuali dati non validi.

Un’altra novità riguarda la cache dei settori durante la lettura USB, che permette di ridurre il numero di operazioni necessarie nei casi più impegnativi: si passa da 5-6 letture di settori a 4-5.

Anche il DMA del CD utilizza ora il meccanismo DMA reale del lettore CD-ROM per simulare in maniera più accurata i tempi di trasferimento.

L’autore sottolinea che il lavoro non è ancora terminato, ma considera questa versione un ulteriore passo avanti significativo. Il prossimo aggiornamento dovrebbe concentrarsi soprattutto sull’ottimizzazione dei tempi di lettura, con l’obiettivo di rendere l’emulazione ancora più efficiente.

Funzionalità

  • Caricamento dei giochi da USB (beta). Solo per console DECKARD.
  • Comportamento di emulazione quasi identico a quello dei driver originali.
  • Un unico file per entrambi i tipi di console (PGIF e DECKARD), con una dimensione finale compressa ragionevole di circa 70-80 KB. I driver PGIF occupavano da soli circa 120 KB, mentre quelli DECKARD compressi circa 180 KB.
  • Database interno separato delle configurazioni di gioco per PGIF e DECKARD. Sono inclusi tutti i giochi presenti in tutti i driver e le relative configurazioni vengono applicate automaticamente. In precedenza, gli utenti potevano riscontrare un comportamento non corretto con i dischi di altre regioni: i driver PGIF disponevano infatti soltanto delle configurazioni per la versione regionale della console, mentre quelli DECKARD includevano tutte le regioni, ma cercavano comunque il codice del titolo esclusivamente nella tabella delle configurazioni relativa alla regione della console.
  • Cambio automatico della modalità video PS1. Un altro limite dei driver originali era l’utilizzo di un’unica modalità, che in alcuni casi faceva apparire i giochi troppo veloci o troppo lenti, oppure spostati fuori dallo schermo. PS1VmodeNeg aveva rappresentato un buon passo avanti, ma presentava ancora delle limitazioni. Ora il driver si adatta automaticamente alla modalità video richiesta dal gioco. Gli utenti possono anche forzare manualmente una modalità specifica. Questa funzione risolve numerosi problemi riscontrati dagli utenti di MechaPwn e Tonyhax.
  • Correzione PS2HDMI per gli adattatori HDMI per PS2. Nonostante il nome, può essere utilizzata in tutti i casi in cui il collegamento component non visualizza correttamente le immagini subito dopo il logo di avvio PS1 o immediatamente dopo.
  • Correzione del reset GPU GP1, utilizzato frequentemente nelle applicazioni homebrew per PS1 e responsabile del loro mancato funzionamento su PS2. Tra gli esempi questo caso e molti altri.
  • Possibilità di forzare l’attivazione o la disattivazione del dithering. Non sono più necessarie patch per i giochi o trucchi.
  • Possibilità di modificare anche gli offset dello schermo.
  • Possibilità di controllare il color banding della GPU. PS1DRV lo applicava soltanto agli sprite. Maggiori informazioni qui.
  • Applicazione automatica delle patch per il controllo della licenza e del logo PS1 sulle console DECKARD. Al momento non è possibile applicare patch alle console PGIF, ma forse sarà possibile in futuro. Gli utenti PGIF riceveranno comunque un avviso in questi casi, così da sapere perché viene visualizzata soltanto una schermata nera. È comunque possibile procedere se l’utente dispone di un altro metodo per avviare i giochi (modchip, swap e così via).
  • Tutte le opzioni di configurazione PS1 possono essere modificate e salvate.
  • Disponibili più valori di filtraggio per la nitidezza dei poligoni.
  • Opzione di filtraggio per gli sprite. Il driver originale applicava la nitidezza, se selezionata dal menu OSDSYS, soltanto ai poligoni texturizzati. I risultati variano da gioco a gioco.
  • Correzione Crackto per numerose patch, trainer, crackto e anche applicazioni homebrew che venivano visualizzati fuori dallo schermo.
  • Possibilità di applicare trucchi esclusivamente sulle console DECKARD. Per maggiori informazioni, consultare la sezione Cheats.
  • Possibilità di utilizzare combinazioni di tasti personalizzate durante il gioco per eseguire azioni specifiche. Solo per console DECKARD.
  • Possibilità di invertire i pulsanti X e O. Quando viene premuto X, il gioco lo riconosce come O e viceversa. La funzione può essere utilizzata con tutti i giochi e le applicazioni homebrew ed è particolarmente utile per chi gioca ai titoli giapponesi. Solo per console DECKARD.
  • Applicazione automatica delle patch Libcrypt per i giochi protetti da questo sistema, impostando la chiave finale nei registri Cop. Sono inclusi tutti i magic word presenti in gamedb.py di sahlberg pop-fe.
  • Possibilità di modificare anche la lettera VERSTR, per far credere ai giochi PS1 di essere eseguiti su una console di un’altra regione. Può essere utile con determinati giochi o applicazioni homebrew. Solo per console DECKARD.
  • Mappatura analogica per i giochi che non la supportano, come Crash Bandicoot 1. Gli utenti possono impostare anche zone morte personalizzate per lo stick analogico.
  • Utile per gli utenti PCSX2 che dispongono soltanto di BIOS DECKARD più recenti, con i quali l’emulazione potrebbe non funzionare. È sufficiente avviare direttamente il file ELF.
  • Utile per gli utenti TOOL che dispongono degli switch necessari e di una ROM correttamente flashata.
  • Numerose correzioni di bug al codice originale, soprattutto per quanto riguarda quelli relativi agli interrupt.

In futuro verrà pubblicato un elenco completo delle configurazioni interne, accompagnato da una documentazione dettagliata.

Utilizzo

Scaricare l’ultima versione. È sufficiente eseguire i file ELF con il metodo preferito. Assicurarsi di aver inserito un disco PS1 valido prima dell’avvio. Gli utenti devono configurare le opzioni relative alle correzioni e alle funzionalità che desiderano utilizzare.

Per salvare le modifiche, è necessario selezionare l’opzione Save Game Config dal menu. Selezionando Run, verrà avviato il gioco. La maggior parte delle opzioni è facile da comprendere. In futuro verranno introdotti nomi più chiari e una documentazione più completa.

Attenzione: Il modchip può influire sull’avvio e, in alcuni casi, provocare schermate nere. Segnalare eventuali problemi nella sezione Issues di GitHub, ricordandosi di fornire quante più informazioni possibili: modello della console, versione di DKWDRV, tipo di supporto utilizzato, ID, eventuali link a Redump, modchip e qualsiasi altro dettaglio utile. Segnalazioni generiche come “Non funziona” o “Schermata nera” non sono sufficienti. Ricordarsi inoltre di riportare le informazioni presenti nella sezione “INFO” di DKWDRV. Utilizzare sempre l’ultima versione disponibile.

Caricamento dei giochi da USB

Lo sviluppo del progetto ha subito ritardi a causa delle enormi difficoltà tecniche incontrate nell’implementazione del codice di emulazione e, soprattutto, nelle operazioni di debug.

Questa è la prima fase del rilascio. Poiché non è possibile testare tutti i giochi, gli sviluppatori hanno deciso di rendere disponibile questa versione per raccogliere segnalazioni e migliorare la situazione attuale.

In una fase successiva verrà implementato il supporto all’audio XA/CDDA. Una prima prova di concetto (POC) ha già dato risultati positivi.

Grazie all’eccezionale supporto della community nella segnalazione dei problemi, il progetto ha raggiunto la seconda fase. Con la versione 1.7.6, l’emulazione dovrebbe risultare notevolmente migliorata.

Restano comunque alcuni casi particolari ancora da risolvere. Al momento sono particolarmente gradite le segnalazioni relative a eventuali regressioni.

Utilizzo

Creare nella directory principale dell’unità USB una cartella denominata DKWDRV. Al suo interno, creare una cartella chiamata BIN.

Dentro BIN bisogna creare una cartella separata per ogni gioco e inserire al suo interno i relativi file BIN/CUE, con le tracce BIN unite (per ulteriori informazioni, consultare la sezione Limitazioni). È possibile inserire nella cartella del gioco anche un file CHEATS.TXT.

Esempio di struttura dell’unità USB:


USB
    DKWDRV
        BIN
            Crash Bandicoot
                Crash Bandicoot.bin
                Crash Bandicoot.cue

            Crash Bandicoot 2 - Cortex Strikes Back
                Crash Bandicoot 2 - Cortex Strikes Back.bin
                Crash Bandicoot 2 - Cortex Strikes Back.cue
                CHEATS.TXT

            ....

Eseguire DKWDRV.ELF dalla versione scaricata e selezionare Select USB Game. Premendo il tasto  su un gioco è possibile accedere alle relative opzioni di configurazione. Al primo avvio, il programma tenterà di creare automaticamente una configurazione analizzando i file del gioco.

Limitazioni

  • Le unità USB devono utilizzare il file system FAT32 o exFAT.
  • Tutte le tracce BIN devono essere unite in un unico file. Per farlo, utilizzare IsoBuster o CDMage.
  • È necessario fornire il file .cue e il nome del file .bin deve corrispondere a quello del file binario principale.
  • Tutte le immagini BIN devono utilizzare settori da 2352 byte.
  • Tutti i giochi devono essere deframmentati. È comunque possibile procedere anche senza deframmentazione, ma in questo caso potrebbero verificarsi arresti improvvisi in qualsiasi momento.
  • Gli effetti audio XA/CDDA non sono ancora supportati. La funzionalità è in fase di sviluppo e verrà aggiunta in futuro. Di conseguenza, potrebbero mancare la musica di sottofondo (BGM), l’audio delle sequenze FMV e altri effetti sonori.
  • Il cambio disco non è ancora implementato, ma è previsto ed è tecnicamente realizzabile.

Risoluzione dei problemi

  • Ricordare che questa versione è ancora in fase ALPHA/BETA MOLTO PRECOCE e lo sviluppo è tuttora in corso.
  • Provare a utilizzare un’altra unità USB.
  • Provare a collegare l’unità USB direttamente alla console, senza utilizzare hub o altri dispositivi USB aggiuntivi collegati contemporaneamente.
  • Verificare che la struttura dei file del gioco e la relativa installazione siano corrette.
  • Verificare che il gioco sia stato deframmentato.
  • Provare a modificare le opzioni di configurazione del gioco. Impostare VERSTR sulla regione originale del titolo è una buona scelta.
  • L’assenza dell’audio XA/CDDA è un problema noto: il supporto verrà aggiunto in una versione futura. È possibile aprire una segnalazione per indicare eventuali problemi riscontrati con i singoli giochi.
  • Molti giochi protetti da subQ funzionano correttamente, ma in alcuni rari casi l’applicazione della patch magic word potrebbe non funzionare come previsto. In queste situazioni, verificare se è possibile applicare una patch direttamente al gioco.
  • Alcuni giochi vengono caricati rapidamente perché i tempi di ricerca sono impostati al minimo. Questo comportamento verrà aggiornato in futuro.
  • Se si utilizza un adattatore HDMI, ricordarsi di attivare l’apposita opzione nelle impostazioni generali VIDEO. In alcuni casi, durante il cambio della modalità video, l’adattatore e il televisore potrebbero perdere la sincronizzazione, causando la comparsa del messaggio “NO SIGNAL”. In questo caso, riavviare l’adattatore per ripristinare il segnale.

Funzionalità future previste (senza una data di rilascio)

  • COMPLETATO: Driver USB ExFAT (sono stati implementati, ma non riescono a riconoscere alcuni dispositivi USB, mentre gli attuali driver FAT32 funzionano correttamente).
  • COMPLETATO: Modalità video più elevate durante il gioco (in fase di valutazione).
  • Audio XA/CDDA (parzialmente completato).
  • COMPLETATO: Cambio disco (parzialmente completato).
  • VMC da USB per il caricamento da CD e USB (il codice per la scrittura delle VMC su USB è stato completato).
  • COMPLETATO: IGR.
  • BIOS personalizzato.
  • ….

Configurazioni utente

Mostra informazioni dettagliate sulle configurazioni utente.

Tutte le configurazioni personalizzate per singolo gioco vengono salvate sulla memory card. Ogni gioco crea il proprio file di salvataggio, che può essere gestito anche tramite OSDSYS, ad esempio per copiarlo o eliminarlo.

Il motivo per cui viene creato un salvataggio separato per ogni gioco, anziché raccogliere tutte le configurazioni in un’unica cartella principale, è legato a una limitazione di OSDSYS: quando sono presenti molti file, il sistema non riesce a copiare o eliminare il file principale.

Il nome del file principale conterrà l’ID del gioco in un formato specifico. Ad esempio, Crash Bandicoot ha come ID SCUS-94900, ma la cartella di salvataggio sarà denominata SCUS94900. Al suo interno potranno essere presenti due file: CONFIG.TXT e CHEATS.TXT, quest’ultimo dedicato ai trucchi.

Un altro caso importante riguarda i giochi privi di SYSTEM.CNF, che contengono soltanto PSX.EXE, oppure quelli che dispongono di SYSTEM.CNF ma utilizzano comunque PSX.EXE come nome del file BOOT.

Poiché molti giochi di questo tipo condividono lo stesso ID, il nome del salvataggio sarà PSXyyyyyyyy, dove yyyyyyyy rappresenta il valore esadecimale del CRC32 del file PSX.EXE appartenente a quel gioco.

Questo è l’unico metodo adeguato per gestire l’elevato numero di titoli che utilizzano PSX.EXE, molti dei quali sono homebrew.

Esempio del contenuto di una memory card:


mc0:
    SCUS147895 (cartella di un gioco standard)
              CONFIG.TXT
              CHEATS.TXT
    PSX1DBA2151 (cartella di un gioco con PSX.EXE)
              CONFIG.TXT
              CHEATS.TXT

Per creare automaticamente la cartella, è necessario eseguire almeno una volta l’opzione Save Game Config. Se sono presenti molti giochi che utilizzano PSX.EXE e non si riesce a distinguerli, è possibile identificarli attraverso il valore esadecimale del CRC32 riportato nel nome del file.

È sufficiente estrarre PSX.EXE dal disco su un PC e calcolarne il CRC32. Il menu contestuale di 7-Zip consente di farlo facilmente: fare clic con il tasto destro sul file, selezionare CRC SHA e quindi CRC32.

Combinazioni di tasti per DECKARD

Gli utenti delle console DECKARD possono utilizzare specifiche combinazioni di tasti anche durante il gioco.

Mostra le combinazioni di tasti disponibili.

  • + + + + qualsiasi direzione della croce direzionale: Consente di regolare in tempo reale gli offset dello schermo.
  • + + + + : Attiva o disattiva i trucchi del gioco. Può essere utile quando si desidera utilizzare un trucco soltanto in determinate fasi. Questa combinazione permette di abilitare o disabilitare tutti i trucchi applicati.
  • + + + + : Attiva o disattiva il filtro Polygon MMAG 2. Sono disponibili soltanto i valori 0 e 1.
  • + + + + : Modifica il filtro Polygon MMIN. Sono disponibili fino a 7 valori; raggiunto il settimo, il ciclo riparte da 0.
  • + + + + : Attiva o disattiva il filtro Sprite MMAG 2. Sono disponibili soltanto i valori 0 e 1. I risultati possono variare: i driver originali non applicavano mai filtri agli sprite.
  • + + + + : Modifica il filtro Sprite MMIN. Sono disponibili fino a 7 valori; raggiunto il settimo, il ciclo riparte da 0. I risultati possono variare: i driver originali non applicavano mai filtri agli sprite.
  • + + + + (tenere premuto per circa 4 secondi): Spegne la console. SOLO DA USB.
  • + + + + (tenere premuto per circa 4 secondi): Riavvia la console. SOLO DA USB.

Trucchi

È possibile applicare i trucchi soltanto sulle console DECKARD. I file dei trucchi devono essere inseriti nella cartella della memory card associata al gioco. È possibile salvare una configurazione generale per creare automaticamente questa cartella.

Per visualizzare i trucchi, nella directory principale della cartella deve essere presente un file denominato CHEATS.TXT. Per ulteriori informazioni su come individuare la cartella di salvataggio, consultare la sezione Configurazioni utente.

I trucchi desiderati devono essere abilitati dal menu ogni volta, prima di avviare il gioco. Vengono applicati a ogni VBlank.

Esempio di file dei trucchi:

txt

#Infinite Lives "Boulders" Stage
8009E584 6300
#Infinite Lives "Castle Machinery" Stage
8009E88C 6300
#Infinite Lives "Cortex Power" Stage
8009E77C 6300
....

Tipi di trucchi supportati:

Codice (esadecimale) Tipo (denominazione DuckStation)
00 CodeNop
30 ConstantWrite8
80 ConstantWrite16
90 ExtConstantWrite32
31 ExtConstantBitSet8
81 ExtConstantBitSet16
91 ExtConstantBitSet32
32 ExtConstantBitClear8
82 ExtConstantBitClear16
92 ExtConstantBitClear32
60 ExtIncrement32
61 ExtDecrement32
10 Increment16
11 Decrement16
20 Increment8
21 Decrement8
A0 ExtCompareEqual32
A1 ExtCompareNotEqual32
A2 ExtCompareLess32
A3 ExtCompareGreater32
A6 ExtConstantWriteIfMatch16
A7 ExtConstantWriteIfMatchWithRestore16
D0 CompareEqual16
D1 CompareNotEqual16
D3 CompareLess16
D3 CompareGreater16
E0 CompareEqual8
E1 CompareNotEqual8
E2 CompareLess8
E3 CompareGreater8
50 Slide
53 ExtImprovedSlide
C2 MemoryCopy

Changelog

  • Risolto un problema di regressione nell’emulazione della GPU che impediva il corretto funzionamento dei giochi nell’ultima versione rilasciata!
  • I trasferimenti verso la GPU venivano corrotti. Il problema interessava PGIF e DECKARD, sia tramite CD che USB!
  • DECKARD: nuova versione dell’hook PPC ISTAT! Le modifiche riguardano sia CD che USB.
  • Riscrittura dell’emulazione CD tramite USB – FASE #7:
    • Aggiunto un tempo di attesa all’avvio per consentire al dispositivo USB di essere pronto. #167
    • Aumentata la priorità del DMA USB.
    • Corretto un problema nel calcolo dei cicli di ricerca.
    • Corretto il polling dell’attesa di ricerca per il comando di reset 0x0a!
    • Corretto il tipo di interrupt errato per il comando di reset 0x1e!
    • Corretto un errore di battitura nei cicli di interrupt del comando di arresto 0x08!
    • Corretto il polling del completamento della lettura USB nel comando seekLoc per recuperare le informazioni sui settori.
    • Corretti i dati restituiti dalla risposta GetLocL.
    • Aggiunto un controllo di integrità dell’intestazione dei settori.
    • Aggiunta una cache dei settori letti tramite USB, riducendo il numero di letture da 5/6 settori (nei casi peggiori) a 4/5.
    • Il DMA del CD utilizza il DMA reale del CD-ROM per simulare i tempi.
  • C’è ancora molto lavoro da fare, ma anche questa volta sono stati compiuti progressi significativi.
  • Il prossimo aggiornamento ottimizzerà ulteriormente i tempi di lettura!!!

Download: DKWDRV Release 1.7.6v

Download: Source code DKWDRV Release 1.7.6v

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: Nintendo Switch

Vedi altri prodotti Nintendo Switch

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

Ultimo aggiornamento 2026-11-03 / Link di affiliazione / Immagini da Amazon Product Advertising API

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.