DKWDRV, czyli emulator napędu CD dla PS2.

Zaczęty przez JT, Kwiecień 21, 2024, 13:20

Poprzedni wątek - Następny wątek

JT

W końcu po latach oczekiwań, kilka dni temu pojawiła się otwara beata programu na który czekałem.

DKWDRV jest to w skrócie programowy emulator napędu CD, którego głównym zadaniem jest uruchamianie gier PS1 z portu USB.
W przeciwieństwie do POPStartera, który jest emulatorem, DKWDRV używa natywnej wstecznej kompatybilności wbudowanej w konsolę, także można liczyć na wysoką kompatybilność.
Ale żeby nie było zbyt pięknie, to działa to wyłącznie na konsolach z PPC czyli tzw. Deckardem, ponieważ to właśnie na tym procesorze odbywa się emulacja napędu.
Czyli działa na wszystkich konsolach od SCPH-75K do 90K,
Jak to bywa ze wczesnymi wersjami BETA, nie obsługuje dźwięków XA/CDDA, także większości FMV będzie bez muzyki oraz część gier będzie bez dialogów czy części soundracków.

Pamięć USB musi być sformatowana na FAT32, a pliki nie moga być pofragmentowane, gry wieloplikowe należy przekonwertować do formy dwóch plików .bin +.cue, wszystko co potrzebne jest pod tym linkiem.
https://github.com/DKWDRV/DKWDRV

A tutaj podgląd tego jak to działa

Z moich kilkudniowych testów nie udało mi się jedynie odpalic Tomb Raidera, a Apocalypse, potrafi się zaciąć kiedy w tyle są wyświetlane FMV, niektóre gry wymagają przeklikanie początkowych wstawek, ale większość gier nie sprawiała problemów.

Edit: Kilka dni temu pojawiła się aktualizacja do wersji 1.7.6, a w niej:
Improved USB reset and detection code.
Improved error handling display information.
USB - Play cmd bugfixes (Final Doom, AZITO, Mortal Kimbar 3 ingame, games using CCDA tracks)
USB - Antipiracy check fixes (Um Jammer Lammy, Saru Get You, games using APV1/2 protection)
USB - Major DMA changes (fixes FMV freeze, black screens, impacts all games)

Na pierwszy rzut oka, nie ma zbyt wielu znaczących zmian, ale ostatni punkt dużo zmienia. Naprawia on wszystkie moje gry które wcześniej miały problemy z zacinającymi FMV, także projekt idzie w dobrym kierunku  ;D
PSX, PS2, PS3, PSP, PSTV, PSC, Xbox, X360, XSS, MD, DC, PCE, FC, NESC, SNES, N64, GC, Wii, WiiU, NS, GBA, DS, 3DS

zenq

#1
no no zapowiada sie ciekawie :)
Cytat: JT w Kwiecień 21, 2024, 13:20W przeciwieństwie do POPStartera, który jest emulatorem, DKWDRV używa natywnej wstecznej kompatybilności wbudowanej w konsolę, także można liczyć na wysoką kompatybilność.
z tym, ze owy deckard o ile sie nie myle to chyba wlasnie emuluje mipsa, stad tez gorsza kompatybilnosc gier psx, niz na wczesniejszych modelach konsoli, tak więc moze zapewne bedzie lepiej od popstartera, ale nie koniecznie idealnie jak na psx... choc widzialem w YT, ze DKWDRV ogarnia drivera, gdzie natywnie konsola z deckardem miala problemy, tak więc jest spore pole do popisu :)

JT

#2
Cytat: zenq w Kwiecień 23, 2024, 12:06deckard o ile sie nie myle to chyba wlasnie emuluje mipsa
Właśnie według testów osób zamieszanych w ten projekt po za PPC siedzi tam jeszcze MIPS i GTE, które zajmują sporą część chipa. Według nich, w założeniach było użucie PPC do całej emulacji MIPS+GTE, ale okazało się to zbyt wolne i wrzucili tam całe APU z PS1. Sam PPC emuluje pracę IOP i jest nadzorcą nad APU, miał naprawiać popsutą kompatybilność ze wcześniejszych modeli.

Cytatwisi
So it turned-out the PPC-IOP is not at all what it was considered to be - a PPC core that emulates the MIPS-IOP and parts of its peripherals.
The PPC-IOP actually *contains* a MIPS-IOP Core APU! :wow:
This makes a lot of sense because it answers the question of why (perhaps) a simple MIPS core running at 36MHz would be difficult to produce in 2005 - because it wasn't! They simply integrated the MIPS-IOP in the PPC-IOP. But why?! Most likely the reason was in order to fix compatibility problems that had arisen in the previous IOP revisions in the SCPH-70000 models. I don't know much about that and it would be better if somebody more knowledgeable of the PS2 compatibility adds some information on that.

There are additional instructions for that APU, used to read and write MIPS-IOP core registers and configuration registers of the APU. Also there are instructions for reading and writing all the MIPS core general purpose registers (r0-r31) and all the GTE's registers and even a few more registers of the GTE, making their total number 0x100 registers (the GTE has 0x40 known registers)!
Reszta pod linkiem https://gist.github.com/uyjulian/52a407f52ba968f62e34966586cdddfd
PSX, PS2, PS3, PSP, PSTV, PSC, Xbox, X360, XSS, MD, DC, PCE, FC, NESC, SNES, N64, GC, Wii, WiiU, NS, GBA, DS, 3DS

JT

Pojawił się dość znaczny update:
DKWDRV 1.7.6d

#82 exFAT support with multiple USB devices is now available!
#96 removed MMCE polling wait to make bootup faster(saves 20 seconds on bootup).
GPU: Fixed a DI/EI major issue randomly impacting gpu emulation on DECKARD models. Improved framerate!
GPU: Fixed all sceGsSyncPath() to be properly in sync!
GPU: Fixed aligment issues with 128bit VIF data.
GPU: Vblank hung times closer to the original!
Many misc minor fixes!

Dla mnie tak jak zaznaczyłem obsługa exFAT spoko sprawa, nie potrzebuję już osobnego pena z fat32, teraz mogę spokojnie używać dysk exFAT który używam dla PS2 oraz poprawa FPS i rzeczywiście moja testowa gra czyli Chrono Cross prawie została naprawiona, jedynie jeszcze na bagnach jest problem z FPS.
Przyszły update to naprawa graficznych błędów, na dodanie pełnej obsługi CDDA i XA pewnie jeszcze trochę poczekam :) a propos audio..

Dla osób które przegapiły był jeszcze ważny downgrade do 1.7.3 XA POC czyli stara wersja z dodaną testową obsługą XA audio, także część gier stała się znacznie bardziej grywalna, a na pewno oglądanie FMV :) Mnie ta wersja przekonała że Deckard da radę emulować napęd CD :)
PSX, PS2, PS3, PSP, PSTV, PSC, Xbox, X360, XSS, MD, DC, PCE, FC, NESC, SNES, N64, GC, Wii, WiiU, NS, GBA, DS, 3DS

JT

#4
Czas na mały update jakiś czas temu wyszły wersje:

1.7.6e
Fixed a bug with Timer1 intr handler. PS2SDK issue, impacted GPU emulation on all models and games randomly! More framerate!
PGIF/DECKARD CD and USB impacted! Everything runs more solid, better, faster, as it should be!
#61 Random init Possible fix!
GPU: Fixed clut_handler causing flickering!
GPU: Fix specialcmd() sindex emulation order!
GPU: Made emulation faster!
Fixed blockwrite cmd!
Fixed a bug with disc logo region check not working properly!
Fixed usage of mtsab/mtsah.
Launch Original PS1DRV option will now ask if you want to load DECKARD patch before the driver. Useful for testing games!
A lot of GPU problematic games run fine now: Tekken 3, Lunar 2, etc properly fixed
Need user help to test what is left. PGIF/DECKARD from CD(deckard patch or not)/USB.

Czyli dużo poprawek kompatybilności i wydajności gier, Chrono Cross już zaczął działać w 100% prędkości

1.7.6f
PGIF consoles: If component fix is selected and VMODE is set to Auto it will fallback to console default video mode! Force the videomode to other region to make it work. This change was added because COMPONENT FIX needs to access DVE regs over the IOP which will cause a stall on EE! Only impacts PGIF with COMPONENT fix mode!
For this console only you need to set fixed PER GAME. Fixes #107
PGIF/DECKARD - A bug with mecha values not being loaded from internal database has been fixed. All games having mecha configs in internal database were impacted. Sorry, recheck the list of games here and here and edit mecha value to it.
PGIF/DECKARD - Moved AutoVMode code elsewhere, should be more stable but needs testing.
PGIF - Fix PGIFIntr handler.
PGIF - Fix bug with GPU A0 sub cmd. Fixes #108 #86 #98.
USB - Added IGR combo. Keep R1+R2+L1+L2+SELECT pressed for ~4 seconds for poweroff. Keep R1+R2+L1+L2+START pressed for ~4 seconds for console reset.

Kolejne optymalizacje i poprawa kompatybilności, największą nowością jest IGR, działa bezproblemowo, idealna opcja dla testerów i osób żonglujących grami, którzy nie maja pilota. Obsługa XA i CCDA co raz bliżej :)
PSX, PS2, PS3, PSP, PSTV, PSC, Xbox, X360, XSS, MD, DC, PCE, FC, NESC, SNES, N64, GC, Wii, WiiU, NS, GBA, DS, 3DS

bms

Sprawdziłem to ustrojstwo. Działa, ale loadingi są długie. Rzeczywiście muzyka nie gra z "CD". Oby to zaimplementowali. Jeśli będzie pełna kompatybilność, to loadingi są do przeżycia.

Wysłane z mojego SM-A546B przy użyciu Tapatalka


JT

W jakich grach są takie długie loadingi? DKWDRV w niektórych grach potrafi być 2x szybszy od Xstation, PSP i PSIO, do nawet 3x szybszy niż CD w PS1 i PS3 z HDD, nie spotkałem jeszcze gry która by się na nim dłużej uruchamiała.
Cytat: bms w Listopad 01, 2025, 18:10Rzeczywiście muzyka nie gra z "CD". Oby to zaimplementowali.
W testowej wersji pokazali że się da, także to tylko kwestia czasu :)
PSX, PS2, PS3, PSP, PSTV, PSC, Xbox, X360, XSS, MD, DC, PCE, FC, NESC, SNES, N64, GC, Wii, WiiU, NS, GBA, DS, 3DS

bms

Odpaliłem tylko jedną, ale już na logo PS trzeba było długo czekać żeby wczytalo grę.
Testowałem na Raiden Project.

Wysłane z mojego SM-A546B przy użyciu Tapatalka


JT

Rzeczywiście Raiden Project dłużej wisi na logo PS, ale widzę że to zależy od gry, niektóre niemal od razu skipują ekran, inne trochę dłużej na nim wiszą. Te gry które szybko przeskakują logo, z płyty tak samo szybko skipują jeżeli używamy DKWDRV, w normalnym trybie na standardowym sterowniku PS1DRV te gry znacznie dłużej wiszą na logo.
PSX, PS2, PS3, PSP, PSTV, PSC, Xbox, X360, XSS, MD, DC, PCE, FC, NESC, SNES, N64, GC, Wii, WiiU, NS, GBA, DS, 3DS