DKWDRV è un sostituto homebrew del driver originale PS1DRV per console PlayStation 2, progettato per migliorare l’esperienza di gioco dei titoli PS1 su PS2.
Il driver originale presentava numerose limitazioni, sia intenzionali che accidentali, che rendevano l’uso frustrante, come problemi di compatibilità, modalità video errate e difficoltà con giochi fuori regione.
DKWDRV affronta questi problemi, unificando in un unico driver le funzionalità dei due driver originali (PGIF e DECKARD), che sono stati analizzati tramite reverse engineering e ricostruiti da zero.
Questo progetto non ha legami con altri homebrew PS1 per PS2 ed è attualmente in fase beta, con possibili bug dovuti alla varietà di hardware PS2 e giochi PS1.
Gli utenti sono incoraggiati a segnalare problemi o richiedere funzionalità, e l’autore prevede di rilasciare documentazione più dettagliata sul funzionamento PS1 in modalità PS2 in futuro.
Caratteristiche
- Caricamento giochi via USB (beta). Solo console DECKARD.
- Emulazione quasi identica al comportamento dei driver originali.
- Singolo file compatibile sia con console PGIF che DECKARD, con dimensione finale compressa di circa 70-80kb (i driver PGIF da soli erano ~120kb, quelli DECKARD compressi ~180kb).
- Database interno separato di configurazioni giochi per PGIF e DECKARD. Tutti i giochi dei driver originali sono inclusi e applicati automaticamente.
- Cambio automatico del video mode PS1. Il driver adatta automaticamente il video mode richiesto dal gioco; è anche possibile forzare manualmente un mode.
- Correzione PS2HDMI per dongle HDMI PS2, utile anche quando l’uscita component non mostra più nulla dopo il logo PS1.
- Correzione per il reset GPU GP1, problema comune nei giochi homebrew PS1 che bloccava il funzionamento su PS2.
- Possibilità di forzare il dithering attivo o disattivo, senza bisogno di patch o cheat sui giochi.
- Possibilità di regolare gli offset dello schermo.
- Controllo del color banding della GPU (il driver PS1DRV originale lo applicava solo agli sprite).
- Patch automatica del controllo licenza e logo PS1 per console DECKARD. (Per ora non disponibile su PGIF, ma viene segnalato a schermo.)
- Tutte le opzioni di configurazione PS1 possono essere salvate.
- Più valori di filtering disponibili per la nitidezza dei poligoni.
- Opzione di filtering anche per gli sprite (non solo per i poligoni texturizzati come nel driver originale).
- Correzione Crackto per patch, trainer/crackto e homebrew che risultavano fuori schermo.
- Possibilità di applicare cheat (solo su console DECKARD).
- Combinazioni di tasti personalizzate per azioni specifiche durante il gioco (solo DECKARD).
- Possibilità di scambiare i tasti X e O, utile per giocare ai titoli giapponesi (solo DECKARD).
- Patch automatica dei giochi protetti con Libcrypt, impostando la chiave finale nei registri Cop (usando magic words da gamedb.py di sahlberg pop-fe).
- Controllo del valore VERSTR per far credere ai giochi PS1 di trovarsi su una console di regione diversa (solo DECKARD).
- Mappatura dell’analogico per giochi che non lo supportano nativamente (es. Crash Bandicoot 1), con possibilità di impostare le deadzone.
- Utile per gli utenti PCSX2 che hanno solo BIOS DECKARD recenti e non riescono a emulare correttamente: è possibile avviare direttamente l’ELF.
- Utile per utenti TOOL con switch obbligatori e ROM correttamente flashata.
- Numerose correzioni di bug ai codici originali, soprattutto relativi agli interrupt.
In futuro verrà pubblicata una lista completa dei file di configurazione interni con documentazione dettagliata.
Download ed Esecuzione
- Scaricare l’ultima versione dalla repository del progetto.
- Eseguire semplicemente il file ELF in qualsiasi modo disponibile.
- Assicurarsi di avere un disco PS1 valido inserito prima di avviare il programma.
- Gli utenti devono configurare le opzioni relative alle correzioni e funzionalità desiderate.
- Per salvare le modifiche, è necessario utilizzare l’opzione Save Game Config nel menu.
- La selezione Run avvierà il gioco.
- La maggior parte delle opzioni è facile da capire.
- Una migliore nomenclatura e documentazione arriveranno presto.
- Nota: I modchip possono influenzare e compromettere il boot, causando schermate nere.
- Segnalare i problemi su Github Issues fornendo TUTTE LE INFORMAZIONI POSSIBILI:
- Modello della console.
- Versione di DKWDRV.
- Tipo di supporto utilizzato.
- ID del disco.
- Eventuali link Redump.
- Presenza o tipo di modchip.
- Qualsiasi altra informazione rilevante.
- Segnalazioni tipo “non funziona” o “schermata nera” non sono utili!
- Riportare anche le informazioni presenti nella sezione INFO di DKWDRV.
- Utilizzare sempre l’ultima versione disponibile!
Caricamento da USB
- Il progetto ha subito ritardi a causa di enormi difficoltà tecniche nell’implementazione dell’emulazione e del debugging.
- Questa è la fase 1 di rilascio: si spera di raccogliere segnalazioni di bug per migliorare lo stato attuale.
- Dopo questa fase verrà implementato il supporto audio XA/CDDA (un prototipo ha già funzionato con successo).
- Grazie al supporto della community, siamo arrivati alla fase 2: con la versione 1.7.6 l’emulazione è stata migliorata.
- Restano ancora casi limite da risolvere.
- Attualmente, sono ben accette segnalazioni riguardo a regressioni (giochi che funzionavano prima e ora no).
Utilizzo del caricamento USB
- Creare una cartella chiamata “DKWDRV” all’interno della chiavetta USB.
- All’interno di “DKWDRV”, creare una cartella chiamata “BIN”.
- Dentro “BIN”, creare una cartella per ogni gioco, e inserire al suo interno i file
.bin
e.cue
(uniti in un unico file.bin
). - Volendo è possibile inserire anche un file
CHEATS.TXT
relativo al gioco.
Esempio di struttura:
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
e selezionare Select USB Game. - Premendo il tasto
su un gioco è possibile aprire le opzioni specifiche per quel titolo.
- Al primo avvio di un gioco, il programma tenterà di creare automaticamente una configurazione analizzando i file del gioco.
Limitazioni
- L’unità USB deve essere formattata in FAT32.
- Tutte le tracce
.bin
devono essere unite in un unico file (è possibile utilizzare IsoBuster o CDMage). - È necessario fornire anche il file
.cue
, e il nome del file.bin
che deve corrispondere a quello principale. - Tutti i dump devono avere settori da 2352 byte.
- Tutti i giochi devono essere deframmentati (Se non lo sono, il gioco potrebbe crashare in qualsiasi momento).
- Non è ancora supportato l’audio XA/CDDA (musiche, audio FMV, effetti sonori mancanti).
- Non è ancora implementato il cambio disco, ma è pianificato e fattibile.
Risoluzione dei problemi
- Questa versione è ancora MOLTO BETA e in fase di sviluppo.
- Provare con un’altra chiavetta USB se si riscontrano problemi.
- Collegare la chiavetta USB direttamente (senza hub USB o altri dispositivi USB collegati).
- Verificare che la struttura dei file del gioco sia corretta.
- Verificare che il gioco sia deframmentato.
- Giocare con le opzioni di configurazione, ad esempio impostando VERSTR sulla regione di default del gioco.
- L’assenza di audio XA/CDDA è un problema noto e verrà risolto in futuro.
- Alcuni giochi protetti con subq funzionano, ma potrebbero esserci casi rari in cui la patching “magic word” non funziona bene.
- Alcuni giochi si caricano molto rapidamente perché i tempi di seek sono stati impostati al minimo (questo verrà migliorato).
- Se si utilizza un adattatore HDMI, ricordarsi di regolare le impostazioni video: a volte il cambio di modalità video può causare NO SIGNAL sulla TV; in quel caso, riavviare l’adattatore.
Funzionalità future pianificate (senza data prevista)
- Driver USB exFAT (implementati, ma non affidabili su tutti i dispositivi; FAT32 funziona meglio).
- Supporto a videomode più elevati durante il gioco (in fase di studio).
- Supporto audio XA/CDDA (parzialmente completato).
- Implementazione del cambio disco (parzialmente completato).
- VMC (Memory Card Virtuale) da USB sia per caricamento da disco che da USB (codice di scrittura VMC già pronto).
- Funzionalità IGR (Reset In-Game).
- BIOS personalizzati.
- E molto altro…
Changelog
- #87 Ora possibile ignorare la scansione del disco premendo
nel menu di scansione disco. Funzionalità utile per alcuni lettori che falliscono la lettura.
- #87 Implementata la ripetizione dei tasti del pad: Ora si possono tenere premuti i tasti per scorrere rapidamente i menu, che ora supportano anche il wraparound (scorrimento ciclico).
- Corretto un bug nel caricamento da USB che impediva la corretta rilevazione dell’ID del gioco nei casi in cui era presente solo
PSX.EXE
e mancava ilSYSTEM.CNF
. - #58 Aggiunta l’identificazione del gioco tramite Volume Timestamp di
PSX.EXE
, grazie ai feedback della community. Crediti a pcm720, alex free e niemasd. - #58 I seguenti giochi adesso vengono registrati con l’ID del gioco per i dispositivi MCID, rendendo obsoleti i loro vecchi file di configurazione PSXCRC32 (controllare se ancora in uso).
- #58 I dispositivi MC ID sono ora supportati: l’ID verrà inviato dal modulo mmceman prima del passaggio alla modalità PS1, consentendo il montaggio delle VMC (Memory Card Virtuali) per giochi PS1 sia da disco che da USB. In assenza di ID, verrà inviato DKWDRV o PSXCRC32.
- #81 Aggiunto il supporto per più dispositivi USB, massimo 2 contemporaneamente (al momento senza supporto per hub USB). Se entrambi gli USB contengono giochi, l’utente verrà invitato a scegliere quale unità utilizzare.
- #81 Il codice PPC USB ora identifica i dispositivi USB in base al numero della porta hardware, riducendo i problemi con dispositivi USB aggiuntivi collegati.
- #6 Applicata una correzione SET_INTERFACE al codice PPC USB.
I driver exFAT sono attualmente in fase di sviluppo. Sono state inviate pull request a PS2SDK per correggere alcuni problemi. Il supporto alle VMC (Virtual Memory Card) è previsto come prossimo obiettivo. L’obiettivo è avere sia VMC sia exFAT funzionanti entro una o due settimane.
L’emulazione USB CD è stata riscritta più volte; tuttavia, il completamento richiederà ancora tempo, quindi verranno rilasciate versioni minori con funzionalità già pronte e richieste dagli utenti.
Download: DKWDRV Release 1.7.6c
Download: Source code DKWDRV Release 1.7.6c
Fonte: github.com