¿Como empezar a programar para Commodore 64?

Si tienes alguna duda y crees que alguien podría resolverla, ponla aquí. || If you have any doubt about programming, post it here.

Moderador: Administradores

Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor na_th_an » 18 May 2011 13:23

Le estoy echando un vistazo y me gusta, el código está comentado y muy limpio :-) En cuanto tenga rato me instalo el target C64 del compilador y enredo un poco.

Creo que mirar cómo meter ASM en linea y "mezclarlo" con C (pasar valores y variables) podría venir muy bien, porque muchas de estas funciones son sencillas y se pueden pasar a ASM facilmente.

Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2235
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor josepzin » 18 May 2011 19:48

na_th_an escribió:Le estoy echando un vistazo y me gusta, el código está comentado y muy limpio :-) En cuanto tenga rato me instalo el target C64 del compilador y enredo un poco.


Me alegro :)
El código que está terminado creo que es bastante claro, lo que está en desarrollo es una guarrada :P
Si miras el .BAT es tan facil como cambiar las rutas y listo, funcionando!
O si necesitas una miniguia de uso aqui tienes esta de CC65: http://josezanni.com/444

na_th_an escribió:Creo que mirar cómo meter ASM en linea y "mezclarlo" con C (pasar valores y variables) podría venir muy bien, porque muchas de estas funciones son sencillas y se pueden pasar a ASM facilmente.

Está facilísimo para pasarlo a ensamblador (casi todos son peeks, pokes, desplazamientos, ors y ands), pero he resistido la tentación porque mi intención es hacer una librería en C, optimizada dentro de lo posible pero en C.
No sé como se mete código ASM en linea, pero si te interesa ir en esa dirección le damos un toque a Woodmaster o Carlos para que te orienten en ese sentido.

Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2235
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor josepzin » 19 May 2011 04:33

Hice un poco de limpieza de archivos en SourceForge, voy a acomodar un poco el ejemplo para que se vea algo más.

Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor na_th_an » 19 May 2011 10:29

Lo único que necesito es tiempo, y ahora no tengo demasiado :(

Sobre la optimización, me gustaría leer más sobre el compilador. Porque suele haber un montón de cosas que se pueden hacer en "C" para hacer que un programa vuele, como por ejemplo hacer que algunas funciones sean FASTCALL, codificar las más empleadas directamente en ensamblador (porque si tienes una función que simplemente es hacer seis o siete POKEs estás perdiendo tiempo precioso sólo en llamar a la función "Poke" que te ahorrarías si la pusieras directamente en ASM).

O ni siquiera en ASM. No sé cómo funcionará el CC65 este con respecto al poke, si será una función o simplemente una macro, pero en z88dk puedes hacer "POKEs" de una forma mucho más rápida, sin tener que llamar a una función "POKE" con la pérdida de tiempo que eso supone: con punteros:

Código: Seleccionar todo

unsigned char *address = (unsigned char *) (65368);

address [0] = 10;  // poke 65368,10


Opino que es buena práctica terminarla en C, probarla y testearla, y una vez validada, intentar pasar a ensamblador el cuerpo de las funciones que luego se empléen más veces durante el bucle de juego.

Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2235
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor josepzin » 24 May 2011 03:58

na_th_an escribió:Lo único que necesito es tiempo, y ahora no tengo demasiado :(

Yo también necesito instalar una ampliación de eso :P

na_th_an escribió:Sobre la optimización, me gustaría leer más sobre el compilador. Porque suele haber un montón de cosas que se pueden hacer en "C" para hacer que un programa vuele, como por ejemplo hacer que algunas funciones sean FASTCALL, codificar las más empleadas directamente en ensamblador (porque si tienes una función que simplemente es hacer seis o siete POKEs estás perdiendo tiempo precioso sólo en llamar a la función "Poke" que te ahorrarías si la pusieras directamente en ASM).

Tanto Carlos como Woodmaster pueden darte una buena mano en ese sentido, si decides ponerte les damos un toque.


na_th_an escribió:O ni siquiera en ASM. No sé cómo funcionará el CC65 este con respecto al poke, si será una función o simplemente una macro, pero en z88dk puedes hacer "POKEs" de una forma mucho más rápida, sin tener que llamar a una función "POKE" con la pérdida de tiempo que eso supone: con punteros:

Código: Seleccionar todo

unsigned char *address = (unsigned char *) (65368);
address [0] = 10;  // poke 65368,10

Si, en este sentido creo que está "optimizada" ya que usa unas macros para los peeks/pokes. En base.h #100 estan las definiciones.


na_th_an escribió:Opino que es buena práctica terminarla en C, probarla y testearla, y una vez validada, intentar pasar a ensamblador el cuerpo de las funciones que luego se empléen más veces durante el bucle de juego.

Convengamos que lo de hacerla en C es mas una cuestión "personal", incluso en C estoy seguro que se podrían hacer juegos que vayan bastante bien, pero está clarísimo que a la hora de obtener más rendimiento hay que pasar cosas a ASM.
Supongo que como dices, una vez obtenida una versión estable toca optimizarla. En este sentido la librería que se ha currado Woodmaster para Nanako y Uwol está hecha en Ensamblador y por lo que se ve funciona muy bien! No creo que Woodmaster tenga inconvenientes en que la uses.

Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2235
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor josepzin » 24 May 2011 04:05

He agregado algunas cosas mas para los registros de scroll.

Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor na_th_an » 24 May 2011 10:44

Genial.

Te prometo que en cuanto tenga rato la trasteo y hago algo :) (ahora estoy en 4 cosas abiertas a la vez - volvemos a las andadas :lol:)

Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2235
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor josepzin » 24 May 2011 16:48

Hay que ordenar las prioridades, primero el C64 :P

Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: ¿Como empezar a programar para Commodore 64?

Mensajepor na_th_an » 25 May 2011 14:53

Así sería en otro caso, pero este año tenemos dos aniversarios muy importantes que celebrar :D


Volver a “Programación | Programming”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado