Autor Tema: Programando en C64 real  (Leído 40381 veces)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #45 en: Marzo 03, 2026, 02:44:41 »
Aquí os dejo el Rally!

Que lo disfrutéis.

En el disco hay dos versiones:Rally, que es la versión completa y RallySCR, que es uno de los intentos (fallidos) de usar scroll hardware desde BASIC.
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #46 en: Marzo 03, 2026, 02:54:50 »
El problema de hacer un scroll por hardware decente desde basic es cuando llega el momento de hacer el movimiento de datos en la VideoRam (y en la ColorRam si el juego es multicolor). Es mover 2000 bytes rápido para que no te pille el raster

Las rutinas de scroll disponibles (la que se ejecuta al hacer un print en la línea 25 de la PANTALLA y la que está en la dirección 59.626 ($E8EA), que sospecho que es la misma, no son lo suficientemente rápidas para evitar el glitching. Y es MUY molesto además. Aún coordinando con el raster, se sigue produciendo, ya que estas rutinas tardan como unos 1/25 segundos en ejecutarse, y el raster va a 1/60 segundos

La opción del doble buffer en BASIC me dio algo de pereza, ya que definir unos bucles llenos de pokes no me seducía mucho. Además, con el movimiento de la carretera en bloques de 8 pixels, no me pareció mala opción y de velocidad estaba bastante bien. Con un scroll por hardware, habría tenido que usar saltos de 3-4 pixels para que hubiera ido a una velocidad más o menos decente y me pareció mucho curro para poca ganancia
« última modificación: Marzo 03, 2026, 02:58:01 por SingletonJohn »
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #47 en: Marzo 03, 2026, 02:59:12 »
Por último, resaltar que el coche está hecho con la superposición de 3 sprites monocromos para que quede vacilón!  8)  ;D
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #48 en: Marzo 04, 2026, 09:26:45 »
Por cierto, haciendo este juego de Rally me he dado cuenta de que el BASIC o el Kernal han de tener un bug o algo raro, ya que el scroll de PRINT a veces avanza dos líneas y a veces una. Después vi un vídeo de 8 Bit Show and Tell (que por cierto he colgado aquí, el del programa de basic del dado en 1 línea)en el que habla de él.

Alguien sabe a qué es debido?
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #49 en: Marzo 04, 2026, 20:32:23 »
jejeje....una cosa interesante para el que le molen los retos!
El juego de Rally tiene un fallo por el que el juego se "come a si mismo". Acaban fallando gráficos, sonido, definicion de caracteres,etc.....sin embargo el fallo no sobreescribe el programa y, si se da al RUN_STOP+RESTORE y se vuelve a hacer RUN, todo "se arregla"

El fallo en si es un fallo un tanto sutil y difícil de ver si no estás acostumbrado a ver basic o no sabes muy bien cómo funciona "a bajo nivel" (Tampoco hay que tener un conocimiento SUPER profundo).....

Mientras, voy mandando la versión corregida a la MicroHobby
;)
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #50 en: Marzo 13, 2026, 23:31:58 »
Nuevo port de Spectrum a C64

Esta vez toca el Base Omega. Una aventura en BASIC que me ha gustado MUCHO MUCHO.
Después del UBoot, mi favorito

Saludos y que lo disfrutéis
« última modificación: Marzo 15, 2026, 11:55:57 por SingletonJohn »
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #51 en: Marzo 13, 2026, 23:46:23 »
Como detalles técnicos más relevantes, tuve que copiar el charset tipo Máquina de escribir en el banco 2, posición 4($8000+$2000=$A000). Tuve que copiar los 2048 bytes para tan sólo definir y poder usar texto y los 3 tiles que se necesitan definir para el juego(en posición de los caracteres <,= y >). Como la copia del charset la he hecho con una subrutina de basic, es MUY LENTA....pero sólo se ejecuta cuando le das al RUN. Podría haber usado la rutina de copia del Kernal, que es más rápida, la verdad

La VRAM la dejé en posición relativa de $+400(por defecto), por lo que pasa a $8400. Para evitar que la memoria dinámica de BASIC "pise" pantalla y charset, pongo la variable de MEMSIZ(End of Basic RAM) en $8000.Por lo tanto, la memoria dinámica se hinchará desde $8000 hacia la Low Ram

Podría haber creado una interrupción ráster para mostrar los gráficos en una zona de la pantalla y otra para mostrar los textos....Esto me evitaría copiar el CharSet, pero en la horizontal del mapa (que es donde se muestran los gráficos) hay también textos, y gestionar rupturas raster en horizontal y vertical mediante BASIC es imposible. Necesitas un timming ultrapreciso.

Saludos
« última modificación: Marzo 13, 2026, 23:50:05 por SingletonJohn »
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 14828
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programando en C64 real
« Respuesta #52 en: Abril 08, 2026, 00:29:42 »
Por cierto, haciendo este juego de Rally me he dado cuenta de que el BASIC o el Kernal han de tener un bug o algo raro, ya que el scroll de PRINT a veces avanza dos líneas y a veces una. Después vi un vídeo de 8 Bit Show and Tell (que por cierto he colgado aquí, el del programa de basic del dado en 1 línea)en el que habla de él.

Alguien sabe a qué es debido?
Ni idea, parece raro que a estas alturas haya un error asi! ¿no podría ser un tema del barrido? que parece que da un salto pero no.
De todos modos en este juego del Rally no ocurre, al menos en lo que yo he durado vivo no :P
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #53 en: Mayo 27, 2026, 22:04:13 »
Hola chicos!

Pues ahí os va otro port de juego de listado de la MicroHobby: esta vez es desde BASIC de MSX1, el Dugeon Golf.
Teclas:
           Q,A Aumentar/disminuir fuerza
           O,P Disminuir/aumentar ángulo
           SPACE, lanzar
« última modificación: Mayo 27, 2026, 22:35:20 por SingletonJohn »
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #54 en: Mayo 27, 2026, 22:18:07 »
La única cosa interesante es que para copiar el charset y luego customizarlo (para hacer los tiles del juego) he usado una rutina de la ROM para mover de sitio bloques de memoria (es la rutina que se usa para insertar o borrar líneas en BASIC) en vez del clásico bucle FOR...NEXT. Como veréis, es MUY VELOZ. El tiempo que tarda exactamente es el tiempo que el VIC se desconecta (pantalla y borde en azul claro)  hasta que aparece el menú. En ese tiempo se han copiado nada menos que 2K´s!
« última modificación: Mayo 27, 2026, 22:36:14 por SingletonJohn »
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #55 en: Mayo 27, 2026, 22:25:25 »
Ahí va una buena aportación del uso de una rutina de copia rápida de bloques de memoria del ROM del BASIC.

El uso de esta rutina se puede consultar en el tema Cosas Interesantes...
« última modificación: Mayo 27, 2026, 22:27:05 por SingletonJohn »
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

Dany

  • Commodoremaníaco
  • ****
  • Mensajes: 148
  • SYS 0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #56 en: Mayo 30, 2026, 13:17:51 »
Oye, ahora que paro un poco más por aquí, nadie se atreve con esto? Molaría ver al menos los "andamios" del Toi Acid Game para #c64


https://archive.org/details/CommodoreWorld/Commodore_World_64/page/6/mode/2up


josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 14828
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programando en C64 real
« Respuesta #57 en: Mayo 30, 2026, 16:16:53 »
Son muchos DATAs!! un OCR ahí podría ayudar mucho.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

SingletonJohn

  • Commodore Master
  • *****
  • Mensajes: 291
  • Poke 35136,0
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #58 en: Mayo 31, 2026, 02:43:27 »
A qué os referis? Teclearlo???
"Ya al final de mi vida de pecador, mientras espero el momento de perderme en el abismo..." pues me lío y me pongo a hacer lo que no pude de pequeño! ;)

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 292
    • Ver Perfil
Re:Programando en C64 real
« Respuesta #59 en: Mayo 31, 2026, 11:48:00 »
Si no recuerdo mal no estaban todas las rutinas necesarias en el artículo, el resto estaba en el diskette que publicaba la revista