Me gustaría explicar acerca de la viabilidad de un emulador de lector de cd
Antes que nada explicare cuales son las señales que maneja el lector.
Señales de entrada:-Botón de cierre de tapa o compartimiento de alojamiento
-4 sensores infrarrojos (son fotodiodos y encargados de captar la señal lumínica reflejada en el disco)
-1 fotodiodo extra para controlar la potencia del led laser
-Botón de fin de recorrido (es una referencia de posicionamiento del lector para saber que se encuentra ubicado al principio del disco)
Señales de salida del sistema de control:-Motor de giro de bandeja de velocidad variable
-Motor de desplazamiento del lector óptico
-Servo de enfoque óptico (para enfocar el haz láser en el centro de los fotodiodos)
-Servo de seguimiento de pista
Funcionamiento:al poner un cd en la bandeja y cerrar la tapa, se cierra el contacto de la tapa avisando al procesador que tiene que vía libre para buscar disco.
La busqueda:
Se enciende el motor de la bandeja, y el lector óptico es llevado hacia el centro del cd hasta cerrar el contacto de fin de recorrido, momento en el que el sistema sabe que esta al principio del disco y enciende el laser, activa el servo de enfoque hasta poder detectar la señal reflejada por el laser y dar por seguro que hay un disco. si no logra enfocar o detectar reflejo es por que no hay disco.
La lectura:
Una vez enfocado el haz, un circuito de detección de frecuencia conectado a los fotodiodos de lectura ajusta la velocidad del motor de la bandeja hasta lograr una taza de datos constante, la velocidad de giro de este motor varia según la posición del lector, cuanto mas lejos del centro mas lento debe girar para que la velocidad de lectura sea constante.
para poder seguir las pistas y puesto que esta es un espiral, se usan 2 mecanismos, uno es un servo que esta integrado al propio lector y que le da una capacidad de lectura aproximada de 7 pistas y otra es el mecanismo de desplazamiento del lector el cual es movido a muy muy baja velocidad, por una señal llama kick pulse, es decir son pequeños movimientos que desplazan el lector alrededor de un milímetro.
Una vez que se cumple todo lo anterior el sistema se dispone a interpretar las señales recibidas por los 4 fotodidos, esta es filtrada y unida para formar una sola secuencia de datos, se decodifica y se organiza en la memoria ram de forma adecuada.
esto que acabo de explicar es el funcionamiento basico de un lector de cd de música convencional, supongo que en saturn, megaCD y neogeoCD no hay mayor diferencia.
Lo que hay que emular:Principalmente el sistema de codificación de señales para cada uno de los 4 fotodiodos y de esa forma asegurar que la consola lea de la misma forma que si se tratase de un cd, para conseguir esto es fundamental que el circuito disponga de señales de entrada para saber que pista debe leer en cada momento, es sabido que la lectura es diferente a la de un cd de musica, puesto que mientras el primero inicia en el centro y termina en la parte mas alejada del disco, en un juego hay saltos constantes de pistas, (la musica esta por un lado y los datos por otro) para poder determinar que pista debe leer es necesario que el circuito emulador disponga de una entrada analogica para el cableado del servo de seguimiento de pista, y otra para el enfoque.
Se necesita ademas de 2 entradas digitales recibir las señales propias de los motores (giro de bandeja y desplazamiento del lector) las entradas son digitales , puesto que aunque la velocidad de los motores son variables, estas son controladas por señales del tipo PWM (modulación de ancho de puso) por lo que en principio se podría ajustar los valores de pico para que coincida con las señales digitales propias del procesador del emulador. ademas se necesita de un circuito de salida que le indique a la consola que esta al principio del disco y que puede comenzar a leer, es decir que cierre el interruptor de fin de recorrido.
Graficando
ademas de todo lo anterior circuito tiene que ser capaz de leer una memoria sd o disco duro
Problemas de la ideaEl lector de cd NO ES UN PUERTO USB, El flujo de la información es único, es decir desde el hd/sd hacia la consola, no hay forma de seleccionar desde la consola que "iso" queremos jugar. Por lo que en principio seria un sistema de un solo juego por SD/HD, dicho sea de paso, no se podría cambiar de cd en los juegos que lo requieran.
Posible solución:
Que el dispositivo incluya unos botones con los que poder desplazarse y elegir que juego se puede jugar, el problema esta en que ademas seria necesaria una pantalla para poder visualizar el nombre de la iso que queremos seleccionar.
Yo creo que con tres botones se podría solventar
Montar/desmontar
Arriba
Abajo
Sencillo y sin carpetas xd
Como se puede apreciar, el circuito emulador tiene que ser relativamente potente por lo cual probablemente su implementacion sea costosa comparada con las demas soluciones
esta es toda la aportación que puedo hacer al hilo y espero que alguien con los conocimientos de programacion pueda llevarla a cabo