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

Mode 2

  • Commodorista
  • ***
  • Mensajes: 97
    • Ver Perfil
    • brick Fabrik
Re:Tutorial para comenzar a programar C en C64
« Respuesta #30 en: Octubre 28, 2017, 10:44:17 »
Buenas,
Sí, libros de C hay muchos. En cuanto a los ejemplos, muchas gracias por el ofrecimiento, ¿son de juegos en C de C64? ¿son amplios? Es que si son rutinas cortas posiblemente no me sirva para montar algo desde 0 al no tener demasiadas referencias (es para no molestarte para nada, hombre).
https://brickfabrik.webador.es/

BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #31 en: Octubre 28, 2017, 11:19:38 »
¡Hola estoy desaparecido pero no estoy muerto  Y el grito de Josepzin ha llegado a mí! XD.

Lo que yo he hecho para aprender a programar en C para C64 fue ir a este sitio http://csdb.dk/release/?id=74653 y bajar tanto el juego como el código fuente pues este juego está programado en C usando CC65.

Estudar muy bien el fichero .cfg y mirar el manual de CC65 para ver como se usa. Tambien mirar claro el .c y el h.

Hacer cópias de eses ficheros y jugar con ellos cambiando cosas y ver que pasa.

Ya ha pasado mucho tiempo y si yo quiero programar en C otra vez tendría que hacer ese proceso otra vez porque desgraciadamente ya no me acuerdo bien como funciona cc65 y no sé si han salido nuevas versiónes desde que lo usé y que podrán haber cambiado como funciona.

Bueno espero que esto sea de ayuda y un buen finde para todos y perdonad mi castellano.



Mode 2

  • Commodorista
  • ***
  • Mensajes: 97
    • Ver Perfil
    • brick Fabrik
Re:Tutorial para comenzar a programar C en C64
« Respuesta #32 en: Octubre 28, 2017, 12:14:23 »
Hola Wood!
¿Perdonar por tu castellano? Jolin, no había notado que eras de fuera. Es muy bueno. ;-)
Precisamente encontré este juego en otra web pero no había visto lo de los fuentes.  Voy a hacer lo que dices, muchas gracias por la orientación.
Buen finde para tí también. ;-)
https://brickfabrik.webador.es/

BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #33 en: Octubre 28, 2017, 12:24:18 »
Hola Wood!
¿Perdonar por tu castellano? Jolin, no había notado que eras de fuera. Es muy bueno. ;-)
Precisamente encontré este juego en otra web pero no había visto lo de los fuentes.  Voy a hacer lo que dices, muchas gracias por la orientación.
Buen finde para tí también. ;-)

Mira no te olvides de mirar el fichero Makefile que és muy importante para saberes como compilar todo y incluso como usar dos herramientas más si las necesitas c1541(crear disco .d64) y exomizer (compactar).

danytoon

  • Visitante
Re:Tutorial para comenzar a programar C en C64
« Respuesta #34 en: Octubre 29, 2017, 15:31:22 »
Wood, tú eras de Portugal, no? No eras el programador de algo de los Mojon Twins para C64?

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Tutorial para comenzar a programar C en C64
« Respuesta #35 en: Octubre 29, 2017, 21:04:48 »
Si, Wood hizo el Uwol y Sir Ababol.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Mode 2

  • Commodorista
  • ***
  • Mensajes: 97
    • Ver Perfil
    • brick Fabrik
Re:Tutorial para comenzar a programar C en C64
« Respuesta #36 en: Octubre 29, 2017, 22:49:17 »
Hola de nuevo, Wood!

Aunque me imagino que lo sabrás comentarte que en el siguiente enlace puedes bajarte una versión final con intro y trainer incorporadas ;-) :
http://csdb.dk/release/?id=102217

Saludos.
« última modificación: Octubre 29, 2017, 23:02:11 por Mode 2 »
https://brickfabrik.webador.es/

BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

HyLian

  • Commodorero
  • **
  • Mensajes: 25
  • SYS 0
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #37 en: Octubre 30, 2017, 12:01:29 »
En mis ratos libres voy avanzando con mi juego en ASM, pero ando muy tentado por C, creo que aceleraría bastante lo que quiero hacer, aunque siempre tengo dudas por el rendimiento.

@josepzin , puedes subir esos ejemplos que tienes :)

Pienso que quizas C+ASM puntual puede ser suficiente para el juego que tengo en mente.

Por cierto, el visual studio code es una pasada para tener casi un IDE multiplataforma, solo le falta un buen editor grafico (sprites, tilemaps, tiles...)

Mode 2

  • Commodorista
  • ***
  • Mensajes: 97
    • Ver Perfil
    • brick Fabrik
Re:Tutorial para comenzar a programar C en C64
« Respuesta #38 en: Octubre 30, 2017, 12:11:51 »
Pienso que quizas C+ASM puntual puede ser suficiente para el juego que tengo en mente.
Eso es lo que me estoy temiendo yo pero al revés, Hylian. Que el C no sea suficiente y necesite ASM, entonces la cosa pintará jodida.

Saludos.
https://brickfabrik.webador.es/

BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

HyLian

  • Commodorero
  • **
  • Mensajes: 25
  • SYS 0
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #39 en: Octubre 30, 2017, 12:15:44 »
Eso es lo que me estoy temiendo yo pero al revés, Hylian. Que el C no sea suficiente y necesite ASM, entonces la cosa pintará jodida.

Saludos.

Justo, es mi gran duda, pero luego veo juegos como los de Mojon Twins que estan hechos en C, y no creo que mi juego sea "mas" que eso.

Yo creo que aun programando en C, es clave ser consciente de lo que estas haciendo e intentar escribir un C lo mas "simple" posible, sin millones de funciones, variables y sin millones de bucles/ifs anidados.

En el fondo si mantienes un C sencillo, el compilador puede generar un ASM muy similar a lo que escribirias tu mismo.

Mode 2

  • Commodorista
  • ***
  • Mensajes: 97
    • Ver Perfil
    • brick Fabrik
Re:Tutorial para comenzar a programar C en C64
« Respuesta #40 en: Octubre 30, 2017, 12:18:00 »
Yo creo que aun programando en C, es clave ser consciente de lo que estas haciendo e intentar escribir un C lo mas "simple" posible, sin millones de funciones, variables y sin millones de bucles/ifs anidados.
Totalmente de acuerdo, está claro.

A ver, porque los fuentes que he visto del "Zoo mania" tiene más líneas de ensamblador que de C. :-(
https://brickfabrik.webador.es/

BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Tutorial para comenzar a programar C en C64
« Respuesta #41 en: Octubre 30, 2017, 12:28:37 »
Yo solo toco de oidas eh...

Hace poco @reidrac comentó que no le gustó el código generado por CC65 y por eso se decidió a hacer su Resucing orc directamente en ensamblador.

Pero existiendo los juegos de Wood está la prueba que juegos se pueden hacer y muy bien, aunque el código no sea el mas optimizado.

Al final tambien dependerá del tipo de juego y del programador.

Lo que sí, los juegos hechos en CC65 de Wood tienen rutinas hechas en ensamblador para mover bloques gráficos y tareas mas exigentes.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Mode 2

  • Commodorista
  • ***
  • Mensajes: 97
    • Ver Perfil
    • brick Fabrik
Re:Tutorial para comenzar a programar C en C64
« Respuesta #42 en: Octubre 30, 2017, 12:32:12 »
Nuestro juego no necesitaría muchos recursos, la verdad, aunque tenemos que saber si es viable hacerlo sin tocar apenas el ensamblador.
https://brickfabrik.webador.es/

BUSCO: VideoPac+, Jaguar, Saturn, Micromanía 1, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

reidrac

  • Commodorero
  • **
  • Mensajes: 21
  • jmp *
    • Ver Perfil
    • Página personal
Re:Tutorial para comenzar a programar C en C64
« Respuesta #43 en: Octubre 30, 2017, 12:57:26 »
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.

Me suena que los mojones no han usado C en C64 (porque creo que sus juegos los ha portado alguien), pero es cierto que sus producciones para NES están en C usando el CC65. No sé cómo compara la NES en ese aspecto o si la librería que usan les da el empujón que el juego necesita.

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.

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Re:Tutorial para comenzar a programar C en C64
« Respuesta #44 en: Octubre 30, 2017, 13:00:44 »
En las maquinitas de 8 bits lo más pesado de programar en los juegos es generalmente los sprites(calcular posición de desplazamiento horizontal o tenerle precalculado, guardar fondo, pintar sprite, restaurar fondo) y todo esto gasta mucho tiempo de procesador y memoria pero en c64 no tenemos eses problema porque vienen ya implementados en el hardware luego es muy posible de crear juegos aceptables o incluso buenos en C. Yo he usado assembler con C en mis juegos pero porque yo no tengo problemas en usar código máquina y me se me hizo más fácil así porque he podido usar el código de los Mojones sin cambiarle mucho y no me ha sido necesario mirar como usar ciertas cosas en C porque lo sabia hacer en asm y así he ahorrado tiempo. Ha sido necesario ralentizar mucho los juegos con bucles de espera porque iban demasiado rápidos.


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?