edd2s escribió:Espero que mi lector funcione... ya veo dentro de muy poco muchos programas hombrew usando esta nueva opción
(reproductores de videos, emuladores, etc.)
En realidad para eso, ya estaba el soporte en la práctica
.
Vamos, a grandes rasgos solo hay que meter un timeout mayor para las lecturas y tener en cuenta el tamaño del sector
En ehcmodule además, he ampliado el buffer de lectura del watchdog y cambiado la estrategia si se trata de un DVD, he cambiado un poco la gestión de errores, detecto el tipo de dispositivo para devolverlo (ahora la función de inicialización, devuelve 0 para el HDD y 1 para CDROM/DVD) y para los juegos, le he añadido una función de lectura nueva y una función que testea si el dispositivo está preparado.
Aparte de eso, en dip_plugin he metido una nueva ioctl para poder hacer el test (en realidad, se podría haber hecho desde fuera, pero bueno), se testea si en el cambio de modo se mete el id "_DVD__", para redirigir la función de lectura a la nueva llamada en ehcmodule.
La unidad de DVD cuando monta un disco, devuelve el tamaño del sector: 2048 bytes, vale tanto para datos cdrom como dvd en modo 1. (he probado con CD, DVD 5 y DVD 9 y va bien).
Por cierto, los discos originales devuelven también 2048 bytes y ahí esta parte del lío, porque se supone que el sector mide 2064 bytes (falla en todas las lecturas), pero además sus datos están encriptados, con lo cual la unidad se hace un lío y falla en todas las lecturas.
La velocidad de lectura me da la impresión de que es similar al HDD, aunque no he tenido en cuenta el cachear lecturas solapadas (para acelerar el tema) y mi unidad es un poco miope (si el disco está rallado y falla, se ira todo a la mierda y de hecho, tengo un disco rallado que va bien desde la Wii pero no desde el lector USB)
Y eso es mas o menos, todo.