el modo injektor/turbo/whatever se habilita con la linea command en el caso del MegaCD por lo menos, el injektor tiene que hacer algo similar, mientras ese modo no esta habilitado sigue funcionando como cassettera normal. en otras palabras la linea command actua como conmutador entre la señal normal y la que pasa por el comparador de voltaje.vitoco escribió:Ahora tengo una nueva duda: si los sistemas como el Injector requieren una modificación en hardware de la cassetera para trabajar en PWM, ¿eso quiere decir que un cassette normal de Atari no cargaría en una XC12 modificada? Que yo recuerde eso no pasaba. ¿Cómo lo hace entonces? ¿Son compatibles?
aqui en realidad no hay opciones, no puede ser PWM porque los sistemas de carga turbo decodifican el PWM por software (no se el caso de Inkjektor de Turbosoftware, pero me imagino que es lo mismo ya que no tiene sentido decodificarlo por hardware, ademas que te queda una señal asincronica y necesitas mas pines del SIO)... o sea hay que convertir la señal de audio a datos en serie de toda la vida y a 600bps (o lo mas que aguante la autodeteccion)vitoco escribió:Volviendo a este proyecto, lo que habría que lograr es meter un canal de audio del DVD en el puerto serial (usando cualquiera de los filtros: FSK ó PWM), usando el protocolo que maneja SIO para cassette, y por lo que cacho no es complicado por que no es tan "protocolo" (de partida sería unidireccional en la carga).
aqui es donde es facil confundirse entre lo que es un "frame" para el A8 y un "frame" para el DVD-Video.vitoco escribió:Otro tema: estaba pensando que en la etapa de carga del juego estamos hablando de 30fps * 192bpf = 5760bps, es decir, si en un segundo y medio entran 8K, ¿por qué no "pre-armar" la memoria completa del juego tal como quedaría en la RAM y grabar eso al video? Así se ahorra tiempo para el manejo de los bloques durante la carga porque no se usaría buffer intermedio ni se interpretaría la información de la estructura binaria de los archivos. En el peor de los casos, un programa de 48K entraría en menos de 9 segundos... bueno, eso sin contar el tiempo fijo que tome la carga inicial del loader
lo que muestra el atari son 60 frames por segundo (no entrelazados), lo que muestra un DVD-Video son 30 frames por segundo, pero entrelazados. al final la cantidad de informacion es exactamente la misma, pero lo que el atari llama 1 frame el DVD lo llama 2 fields. creo que para simplicidad y en esta etapa donde no estamos muy preocupados de la generacion del video es mejor llamar frame a lo que el GTIA escupe 60 veces en un segundo.
teniendo eso en cuenta, el ancho de banda de un cart v1 es: 64 Bytes * 3 bloques * 60 frames = 11520Bps (o 92160bps) asi que un juego de 48KB deberia cargar en un poco mas de 4 segundos (lo mismo del calculo de vitoco, pero en realidad tenemos 60 frames desde el punto de vista del A8)
lo de prearmar yo ya lo hago en mi genenerador, y me imagino que Turbosoftware tambien lo hacia, no tiene sentido no hacerlo, el id de bloque y el checksum no varian nunca y cada bloque es 64byte que se ajusta facil a un bloque de disquetera o lo que sea.
ademas en mi caso tengo que transponer bloques de bytes en grupos de 8, por la forma en que genero las barras, y en realidad el A8 no aguanta hacer la transposicion en tiempo real, para esta tasa de transferencia nisiquiera aguanta buffers intermedios, todo tiene que ser bastante optimo (por ejemplo yo utilizo loops desenrollados para la copia, o sino no simplemente no da), aun asi logro quedar con el 50% de la CPU libre
