Autor Tema: Tutorial para comenzar a programar C en C64  (Leído 20320 veces)

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 9979
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Tutorial para comenzar a programar C en C64
« Respuesta #45 en: Octubre 30, 2017, 13:04:18 »
Nuestro juego no necesitaría muchos recursos, la verdad, aunque tenemos que saber si es viable hacerlo sin tocar apenas el ensamblador.

Seguramente algo de ensamblador vas a necesitar, a menos que no hagas interrupciones, sea con caracteres redefinibles y sin superar los 8 sprite. Por ejemplo muchos de los juegos Mojontwins son un buen ejemplo de juegos que se podrían hacer.

Tengo un intento de hacer una librería básica para juegos en C65, pero no la terminé por falta de tiempo y conocimientos... http://nautilus.commodoremania.com/2016/01/EightSpriter.html

Al final te das cuenta que programar con C es lo mismo (o mas complicado) que hacerla directamente en ensamblador :P, excepto para la lógica del juego, en eso seguro que C lo hace mas fácil.

@Wood , que bueno que tuviste el código fuente de los juegos!

Wood

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 137
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #46 en: Octubre 30, 2017, 13:12:54 »
@Wood , que bueno que tuviste el código fuente de los juegos!
Sí todos los juegos en el sítio de los mojones vienen con el código si no me equivoco.

Los mojones no han sacado más juegos c64 pienso por falta de una librería para cc65 como hay para NES por ejemplo.

Wood

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 137
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #47 en: Octubre 30, 2017, 13:15:21 »
Me acordé ahora de una cosa, hay otro lenguaje de alto nivel algo tipo C para c64, llamada Slang, quizá seria buena para quien quiere programar para la máquina sin usar asm.
« última modificación: Octubre 30, 2017, 13:17:13 por Wood »

Wood

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 137
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #48 en: Octubre 30, 2017, 13:29:18 »
Lo que sí, los juegos hechos en CC65 de Wood tienen rutinas hechas en ensamblador para mover bloques gráficos y tareas mas exigentes.

En la verdad la librería es muy cencilla y no me parece que tenga algo que no se pueda hacer en C. Lo que veo que podría ser más pesado son rutinas para pintar tiles, lo que en modo texto se puede hacer bien en C, en bitmap será más pesado. Y la otra cosa son las rutinas de interrupción que yo no he programado de modo genérico y hay que crear librerías nuevas para cada juego si hay cambios en la rutina de interrupción. Las interrupciones se pueden crear y llamar desde C pero yo como sabía hacer en asm lo hizo así para no perder tiempo mirando documentación. Por eso no veo cualquier problema para que no se programe más juegos en C sin uso de asm. Eso sí hay que conocer el hardware muy bien y eso puede que sea lo que lleve más tiempo para los nuevos programadores.

Mode 2

  • Commodorista
  • ***
  • Mensajes: 94
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #49 en: Octubre 30, 2017, 13:37:31 »
Gracias por vuestros aportes.

Todo depende, lo que vi yo es que el código que genera CC65 no era muy eficiente; pero eso no quiere decir que no puedas usarlo.

Dependiendo del tipo de juego, si programas en C "simple", atendiendo a las extensiones de CC65 (por ejemplo, puedes definir una variable local con "register" para que use la página cero), y las partes que necesiten velocidad están en ensamblador... creo que sí se podría, quizás a costa de usar un poco más de espacio.

Cuando uso C en una plataforma de 8-bits es para la parte de la lógica sobretodo, las rutinas gráficas van en ensablador normalmente. Pero eso es en ZX Spectrum y Amstrad CPC, que no tienen el soporte hardware del C64.
Efectivamente, eso es lo que dice Wood abajo, el hardware de C64 ayuda a que no te tengas que pegar con todas esas rutinas gráficas y demás.

Cuales son los problemas principales que tenéis en usar el código máquina? el 6510 es muy sencillo y tiene muy pocos mnemónicos al contrario del z80 por ejemplo?
Pues, no sé si es más difícil o más fácil pero mi único contacto ha sido con ensamblador de CPC y veo el 6510 bastante distinto al Z80. Lo mismo si me pongo no me cuesta tanto, pero el factor tiempo ahora es muy importante, por eso lo de hacerlo en C.  Y no solo eso sino entender el interior del C64 que cuando programas en ensamblador tienes que conocerlo mejor que con C u otro lenguaje de alto nivel.
Por otro lado, es cierto que acabo de descubrir un blog de desarrollo paso a paso de un juego en ensamblador gracias a josepzin que lo comenta en otro hilo. Además está otro (este en inglés) de "Guns & Ghosts" o algo así. Sobretodo es el factor tiempo, Wood.

Muchas gracias a ambos por vuestra respuesta. ;-)
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1 y 25, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

Wood

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 137
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #50 en: Octubre 30, 2017, 13:42:55 »
Por otro lado, es cierto que acabo de descubrir un blog de desarrollo paso a paso de un juego en ensamblador gracias a josepzin que lo comenta en otro hilo. Además está otro (este en inglés) de "Guns & Ghosts" o algo así. Sobretodo es el factor tiempo, Wood.
Entiendo, yo también he empezado en Z80 depués aprendi la programación de 6502, 6809 etc. El tutorial "Guns & Ghosts" es realmente muy bueno.

Has sacado juegos para CPC, tienes alguno link. Gracias

Mode 2

  • Commodorista
  • ***
  • Mensajes: 94
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #51 en: Octubre 30, 2017, 14:04:13 »
Entiendo, yo también he empezado en Z80 depués aprendi la programación de 6502, 6809 etc. El tutorial "Guns & Ghosts" es realmente muy bueno.

Has sacado juegos para CPC, tienes alguno link. Gracias
Pues publicamos hace un tiempo "Zombi terror reloaded" para Amstrad CPC. Empecé a hacerlo en BASIC, luego en C y finalmente lo hice en Ensamblador que es como está programado.
Video parte 1:
https://www.youtube.com/watch?v=oyCqWsiWOwY
Video parte 2:
https://www.youtube.com/watch?v=jxrDF-oIDS4

También estoy inmerso en acabar "Babaliba" que saldrá bajo ESP soft, a ver si para la edición de Amstrad eterno 3 puede ser, que ya se demora demasiado. Este empecé haciéndolo en C con Z88dk pero lo he rehecho en ensamblador. El video que te enlazo es muy antiguo, estaba hecho en C y no tenía implementado los tres pasos al moverse el protagonista por lo que parece que se "teletransporta" ¡¡Ja,ja!!
https://www.youtube.com/watch?v=o0VZoCcPIvw



Finalmente, ahora estamos inmerso en un proyecto multiplataforma que nos va a traer mucho curro y unos cuantos dolores de cabeza. Te dejo el enlace a la noticia en nuestro blog:
https://lunaticoretro.000webhostapp.com/hwgar-lo-nuevo-de-bitzarro-games/

¡Saludos!
« última modificación: Octubre 30, 2017, 14:10:08 por Mode 2 »
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1 y 25, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

Wood

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 137
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #52 en: Octubre 30, 2017, 14:05:51 »
Pues publicamos hace un tiempo "Zombi terror reloaded" para Amstrad CPC. Empecé a hacerlo en BASIC, luego en C y finalmente lo hice en Ensamblador que es como está programado.
Video parte 1:

Video parte 2:


También estoy inmerso en acabar "Babaliba" que saldrá bajo ESP soft, a ver si para la edición de Amstrad eterno 3 puede ser, que ya se demora demasiado. Este empecé haciéndolo en C con Z88dk pero lo he rehecho en ensamblador. El video que te enlazo es muy antiguo, estaba hecho en C y no tenía implementado los tres pasos al moverse el protagonista por lo que parece que se "teletransporta" ¡¡Ja,ja!!


Finalmente, ahora estamos inmerso en un proyecto multiplataforma que nos va a traer mucho curro y unos cuantos dolores de cabeza. Te dejo el enlace a la noticia en nuestro blog:
https://lunaticoretro.000webhostapp.com/hwgar-lo-nuevo-de-bitzarro-games/

¡Saludos!
Muchas gracias Mode 2

Mode 2

  • Commodorista
  • ***
  • Mensajes: 94
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #53 en: Octubre 30, 2017, 14:08:49 »
De nada.

Se me olvidaba, Wood échale un ojo a este tutorial que tiene muy buena pinta ;-)
https://mscifu.wordpress.com/
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1 y 25, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

Wood

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 137
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #54 en: Octubre 30, 2017, 14:11:31 »
De nada.

Se me olvidaba, Wood échale un ojo a este tutorial que tiene muy buena pinta ;-)
https://mscifu.wordpress.com/
Gracias no conocía.

Mode 2

  • Commodorista
  • ***
  • Mensajes: 94
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #55 en: Octubre 30, 2017, 14:27:43 »
Gracias a ti, Wood. ;)
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1 y 25, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 9979
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Tutorial para comenzar a programar C en C64
« Respuesta #56 en: Octubre 30, 2017, 14:44:59 »
Hay unos tutoriales muy buenos por ahí, en el hilo de Desarrollo tendría que poner algunas de estas referencias. Me lo apunto

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 9979
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Tutorial para comenzar a programar C en C64
« Respuesta #57 en: Octubre 30, 2017, 14:47:17 »
Amstradianos haciendo spam... habrá que banear gente... :P

Mode 2

  • Commodorista
  • ***
  • Mensajes: 94
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #58 en: Octubre 30, 2017, 14:57:38 »
Amstradianos haciendo spam... habrá que banear gente... :P
No era mi intención, J. Por cierto, cepeceros, si no te importa. ;-)
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1 y 25, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

Mode 2

  • Commodorista
  • ***
  • Mensajes: 94
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #59 en: Octubre 30, 2017, 15:05:42 »
Acá tienes otro, Josepzin. ;-)
http://www.6502.org/tutorials/
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1 y 25, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.