Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - pastbytes

Páginas: [1] 2 3 ... 30
1
General / Re:Adaptador de joysticks analógicos a Commodore
« en: Mayo 19, 2019, 04:40:09 »
Por la forma en que esta hecho, el texto esta en dos archivos binarios que no van a cambiar y se incluyen en el programa al ensamblar, el codigo es el mismo salvo unas pocas lineas para leer las teclas S y H, o M y O segun la version. Hice las dos versiones porque no costaba nada, por ahi en el futuro si cambian mucho las cosas haga una sola, de todas maneras todo lo que esta en pantalla se entiende, la traduccion es solo un detalle.

2
General / Re:Adaptador de joysticks analógicos a Commodore
« en: Mayo 16, 2019, 11:45:37 »
Ya tengo una version preliminar del programa probador de joysticks atari, raton y paddles. Hay una version en ingles y otra en español, aunque no hay muchos textos para cambiar, lo que cambia principalmente son las teclas que se usan para mostrar y ocultar el puntero del raton.

3
General / Re:Adaptador de joysticks analógicos a Commodore
« en: Mayo 11, 2019, 07:03:42 »
Hace unos dias estoy haciendo un programa para probar joysticks Atari (1 boton)/C64GS (2 botones), paddles y el raton Commodore 1351, algo que necesitaba ya desde que empece a hacer la placa de joystick, ya que tenia que cargar 3 programas distintos para ir probando los modos, un programa para probar el modo 1351, otro que hice en BASIC para probar paddles y un probador de joysticks Atari. Como se complicaba andar cambiando de programa quise tener todo en uno solo, y que ademas fuera facil de usar con toda la informacion en una sola pantalla, no con menus como vi en algunos que sirven para probar varias cosas pero solo una a la vez. Tambien necesitaba que soportara ambos botones del joystick Atari, para los juegos de C64GS.
Despues de varias reformas esteticas a la interfaz (@josepzin fue testigo de esos cambios), el programa se ve como en estas pantallas. Ahora estoy con el codigo para leer los puertos y actualizar la informacion.
El programa no es especifico de mi placa, lo unico que no existe en C64 hasta donde se, son los joysticks analogicos, pero lo demas son dispositivos estandar.

4
General / Re:Nuevos juegos publicados
« en: Mayo 03, 2019, 02:53:12 »
Segun la descripcion del video es un juego de 16K, esta muy bien para un cartucho clasico.

5
General / Re:Adaptador de joysticks analógicos a Commodore
« en: Abril 23, 2019, 07:06:03 »
Un breve compilado de los pocos videos que hicimos en la reunion, en la parte final se puede ver algo de la prueba con los volantes en el C64.

https://www.youtube.com/watch?v=NTCfzANXv6A

6
General / Re:Adaptador de joysticks analógicos a Commodore
« en: Abril 23, 2019, 00:19:51 »
El sabado 20 hicimos una reunion por aqui, y pudimos probar por primera vez dos placas de estas con dos volantes, jugando al Pitstop II en el C64.

7
General / Re:Adaptador de joysticks analógicos a Commodore
« en: Abril 23, 2019, 00:13:56 »
La placa tiene varios modos de funcionamiento que se seleccionan mediante un boton, presionando brevemente se avanza al siguiente modo, que actualmente son 6 pero creo que quedaran 5.

Modo 1: Joystick Atari, este modo funciona en C64, C128, Amiga, Atari 2600, Atari 8 bits, y Timex Sinclair 2068.

Modo 2: Raton Commodore 1351, solo funciona en C64/128, emula un raton con velocidad proporcional a lo que se aleje la palanca del centro, es similar a usar un joystick/mouse de IBM Thinkpad.

Modo 3: Paddles, solo funciona en C64/128, emula un paddle por cada uno de los dos ejes del joystick.

Modo 4: Volante, solo funciona en C64/128, es un caso especial de paddles mas apto para volantes de PC.

Modo 5: C64GS, es como el modo Atari pero con soporte para el segundo boton del joystick, compatible con juegos de C64GS. Funciona bien con 2 botones en Chase HQ 2 y Super Mario Bros.

El modo 6 es Amiga con soporte de 2 botones, pero esto por el momento solo funciona en el juego 1943, no creo que valga la pena dejarlo disponible.

En el modo Atari, el segundo boton del joystick esta asignado a la direccion arriba, lo que lo hace util para saltar en algunos juegos, o para acelerar en otros.

En modo paddles, el eje X (horizontal) es el paddle 1, el eje Y (vertical) es el paddle 2, y cada uno de los botones corresponde a uno de los paddles.

Los dos videos donde se prueba la placa ya estan publicados en otro hilo, pero los repito aqui.
En el primero se prueban los modos Atari, Commodore 1351 y Paddles, con el C64.

https://www.youtube.com/watch?v=hosXL5Lwqsc

En el segundo se puede ver que ademas funciona en otros ordenadores, siempre que respeten el estandar Atari y tengan conectados los pines de alimentacion. Fuera de los C64/C128, el unico modo funcional es el de joystick Atari.

https://www.youtube.com/watch?v=GVjob7I1cis

8
General / Adaptador de joysticks analógicos a Commodore
« en: Abril 22, 2019, 23:57:30 »
Hace 2 años hice una placa para poder conectar joysticks analogicos de PC al C64, pero en ese momento use un circuito analogico, con amplificadores operacionales. La placa funcionaba, tengo un video en mi canal de youtube donde la estuve probando, pero no funcionaba igual con todos los joysticks, y con todas las modificaciones que se fueron haciendo, ya tenia demasiados componentes. Habia dejado de ser una placa simple, por lo cual la deje abandonada, a la espera de algun dia tal vez modificar el circuito o empezar todo desde cero.
Asi paso el tiempo, y este año decidi empezar otra usando un PIC y un minimo de componentes, lo que me permitia no solo emular joysticks Atari, sino tambien paddles. Actualmente la placa esta en una especie de version beta, estoy haciendo pruebas y por ahora todo parece funcionar bien, seguramente va a haber mejoras pero lo mas probable es que esta version quede como esta, y que las modificaciones futuras solo impliquen una actualizacion de firmware.
El circuito actual es este.

9
Off-topic / Re:Cosas interesantes...
« en: Abril 10, 2019, 13:15:47 »
Comento algo sobre ese ultimo video que menciona josepzin, esa es una placa que hice con un PIC, que emula joysticks Atari, raton Commodore 1351, y paddles, usando un joystick analogico de PC, de esos con conector de 15 pines. Lo interesante no es solamente poder aprovechar una gran variedad de joysticks de PC que hoy podemos encontrar hasta en la basura, sino que ademas podemos usar volantes en los juegos de coches.
Ese ultimo video muestra pruebas de la placa con otros ordenadores, donde solo funciona el modo de emulacion de joystick Atari. En C64/128 ademas de ese modo funcionan los de raton y paddles.
En este otro video, que es anterior, se muestra como se usa la placa y se la prueba en todos los modos en Commodore 64.

https://www.youtube.com/watch?v=hosXL5Lwqsc

10
Aviso por aqui, aunque hayan pasado unos meses, que el manual del FC2 ya esta actualizado en el enlace que menciona @josepzin mas arriba.

11
General / Re:Videos Commodore
« en: Abril 10, 2018, 04:17:16 »
La diferencia no es por el reloj, es por ejecutar las interrupciones 10 veces mas en cada segundo. Yo hice rutinas para enviar bytes por RS232 a 57600 bps por el puerto del usuario, donde cada bit tarda 17 microsegundos y lleva al limite al 6510, y te puedo asegurar que funciona exactamente igual en PAL que en NTSC, porque la diferencia de reloj es minima.
Lo que se nota inmediatamente cuando se corre un juego PAL en NTSC es que la musica se acelera, porque la musica es lo primero que se coloca en la rutina de interrupcion asociada a la pantalla, por lo general se espera a llegar a los bordes superior o inferior para llamar al reproductor de musica (lo que seria un .sid), y resulta que esto ocurre mas frecuentemente en NTSC que en PAL.

12
General / Re:Videos Commodore
« en: Abril 08, 2018, 10:42:52 »
En cuanto al C64 NTSC, no es mas rapido que el PAL, hay una diferencia en la velocidad de reloj pero es insignificante. Un C64 NTSC aparenta ser mas rapido simplemente porque en los juegos se suele colocar mucho codigo en las interrupciones que ocurren una vez por cuadro, esto causa que un juego PAL parezca funcionar mas rapido en uno NTSC, porque se ejecutara la rutina de interrupcion 60 veces por segundo en lugar de 50. Pero el proceso ira a la misma velocidad porque como dije la diferencia de reloj es minima.
Las lineas en PAL y en NTSC duran el mismo tiempo, de nuevo hay una diferencia pero es minima, para simplificar las cosas digamos que son iguales. Imaginemos que en lugar de ir al TV, las lineas de video se imprimen en una impresora, y que imprimimos las lineas que entrarian en 1 segundo. En NTSC habria 60 imagenes impresas, una abajo de la otra, y en PAL habria 50, pero el largo del papel seria el mismo, porque las lineas duran lo mismo (cabe la misma cantidad de lineas en 1 segundo tanto en PAL como en NTSC). Si las lineas duran lo mismo, y la resolucion del C64 siempre es de 200 puntos verticales en ambos sistemas, la diferencia tiene que estar en las lineas que sobran, es decir las lineas que forman los bordes inferior y superior, que si volvemos a las pantallas impresas, serian lineas que llenan el espacio entre dos pantallas con graficos.
Como el C64 PAL solo emite 50 imagenes por segundo, y la resolucion vertical es de 200 puntos, lo que ocurre es que le sobra mas lineas de borde que a un C64 NTSC, que debe mostrar 60 imagenes en el mismo tiempo y a la misma resolucion.
La unica forma en que el NTSC pueda mostrar mas imagenes con lineas de la misma duracion y en el mismo tiempo que el PAL, es reduciendo la cantidad de lineas que forman una imagen. Entonces el C64 PAL tiene 312,5 lineas mientras que el C64 NTSC tiene 262,5. Como la resolucion vertical de los graficos del C64 siempre es 200, lo que ocurre es que el PAL tiene un borde mayor, y el NTSC apenas tiene borde, y como dijimos que las lineas duran lo mismo, eso se traduce en que el PAL tiene mas tiempo en los bordes superior e inferior para procesar el codigo del juego.
Volviendo al caso de este juego en particular, lo que ocurre es que deben estar usando hasta el ultimo ciclo para generar los graficos y el sonido, aprovechando el tiempo del borde donde el VIC no interrumpe al procesador, y al correr este juego en NTSC, el tiempo de borde se reduce drasticamente, haciendo que no se termine de ejecutar el codigo de un cuadro antes de que llegue el proximo. Como el codigo esta tan optimizado les habra sido imposible generar 10 cuadros mas por segundo sin la ayuda del hard de la REU para acelerar el proceso.

13
General / Re:Videos Commodore
« en: Abril 08, 2018, 02:36:01 »
Por lo que he pillado en el video con mi nivel pello de inglés, es que al usar el cartucho de expansión, se acelera la lectura de la memoria RAM o algo así, y de esta forma a la CPU le da el tiempo que le falta para hacer los 30 barridos por segundo.

Supongo que esto no será una peculiaridad  de este juego, sino que con la expansión de memoria se podrá ejecutar cualquier juego PAL en NTSC...

El video tiene subtitulos en español, no hace falta tratar de entender el ingles.
Y no es una solucion universal para correr juegos PAL en NTSC, eso no existe. El juego esta hecho para PAL, y aprovecha tanto los ciclos de reloj que no se puede adaptar a NTSC, entonces en lugar de hacer una version NTSC, hicieron una adaptacion que requiere la REU para poder correrlo correctamente. Pero el juego NTSC es distinto que el PAL, es otro codigo, no es que usen la version PAL y que la REU magicamente lo haga correr en NTSC.
Lo que usa es la transferencia rapida de bloques de memoria, que se hace sin intervencion del procesador, incluso en el video aclara que curiosamente el juego no aprovecha nada de la RAM de la expansion, pero eso no funciona de manera transparente, hay que copiar bloques de memoria a la REU y despues ir activando la transferencia de bloques a memoria principal, con eso se ahorran ciclos de copiado y compensan el quedarse cortos de ciclos por los 60 hz del video contra los 50 hz del PAL.
Usando la REU se puede acelerar unos cuantos juegos, pero hay que modificarlos para eso, aunque si hacen una version de este juego para PAL que use la REU para lograr mejores efectos o tener mas niveles, y se aprovechan los ciclos al maximo, ya no se podra hacer una version NTSC del juego, porque se requeriria algo mas rapido que una REU o algun tipo de ayuda extra para compensar los 10 cuadros extra por segundo.

14
General / Re:Consulta sobre puertos
« en: Marzo 25, 2018, 01:06:07 »
Muchas de las cosas que no salen en el manual que viene con la C64, estan en el manual de referencia del programador, lo del puerto serie esta en esta seccion:
http://www.commodore.ca/manuals/c64_programmers_reference/c64-programmers_reference_guide-06-input_output_guide.pdf
Resumiendo, para abrir el puerto RS232 hay que ejecutar una instruccion OPEN, que lleva 3 numeros, el primero es el numero de canal, que puede ser cualquiera que no este ya abierto, en el arranque no hay ninguno abierto porque eso lo hacen las aplicaciones y el usuario, asi que se puede usar por ejemplo el canal 1. Los otros dos numeros son 2 (dispositivo RS232) y 0 (canal secundario, que en RS232 tiene que ser 0). En el mismo OPEN se especifica el tipo de conexion (cable, velocidad, cantidad de bits, etc.), esto se hace con un numero que define todos esos parametros, por lo que hay que calcular ese numero antes de escribir la instruccion. El numero despues se especifica con la instruccion CHR$, que convierte ese numero a un byte binario.
Ahi sale este ejemplo:
OPEN 1, 2, 0, CHR$(6): REM300 BAUD
En las paginas 16 y 17 de ese pdf estan las dos tablas que necesitas saber para calcular el numero para los parametros.
Segun eso, en el ejemplo se abre una conexion de 1200,8N1, full duplex, con un cable de 3 hilos.

15
General / Re:Consulta sobre puertos
« en: Marzo 25, 2018, 00:43:57 »
Que es lo que necesitas hacer? El puerto serie se abre con un OPEN al dispositivo 2, los parametros que pongas dependen del tipo de cable que tengas armado, la velocidad, cantidad de bits, paridad, etc.
Necesitas adaptar los voltajes si vas a conectar a un RS232 estandar, no se puede conectar el puerto de forma directa.
Tambien hay señales que en el puerto del usuario estan invertidas y requieren inversores.
El cable puede ser de 3 hilos (RX, TX, GND), que no requiere inversores, o puede usar mas hilos, por lo general se agregan RTS y CTS como minimo. Eso hay que especificarlo en la instruccion OPEN.
La velocidad mas alta para enviar y recibir con seguridad es 1200 bps, eso funciona bien desde el BASIC. Hay programas que permiten usar velocidades mas altas como 2400 bps, pero en el BASIC mas de 1200 bps empieza a perder datos.

Páginas: [1] 2 3 ... 30