¿Como empezar a programar para Commodore 64?
Moderador: CEZ
- na_th_an
- 256 bits
- Mensajes: 11874
- Registrado: 22 Abr 2005 13:25
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
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.
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.
- josepzin
- 128 bits
- Mensajes: 2238
- Registrado: 25 Oct 2005 18:03
- Ubicación: Carthagonova
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
Me alegrona_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.
El código que está terminado creo que es bastante claro, lo que está en desarrollo es una guarrada
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
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.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.
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.
- josepzin
- 128 bits
- Mensajes: 2238
- Registrado: 25 Oct 2005 18:03
- Ubicación: Carthagonova
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
Hice un poco de limpieza de archivos en SourceForge, voy a acomodar un poco el ejemplo para que se vea algo más.
- na_th_an
- 256 bits
- Mensajes: 11874
- Registrado: 22 Abr 2005 13:25
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
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:
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.
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
- josepzin
- 128 bits
- Mensajes: 2238
- Registrado: 25 Oct 2005 18:03
- Ubicación: Carthagonova
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
Yo también necesito instalar una ampliación de esona_th_an escribió:Lo único que necesito es tiempo, y ahora no tengo demasiado
Tanto Carlos como Woodmaster pueden darte una buena mano en ese sentido, si decides ponerte les damos un toque.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).
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ó: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
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.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.
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.
- josepzin
- 128 bits
- Mensajes: 2238
- Registrado: 25 Oct 2005 18:03
- Ubicación: Carthagonova
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
He agregado algunas cosas mas para los registros de scroll.
- na_th_an
- 256 bits
- Mensajes: 11874
- Registrado: 22 Abr 2005 13:25
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
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 )
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 )
- josepzin
- 128 bits
- Mensajes: 2238
- Registrado: 25 Oct 2005 18:03
- Ubicación: Carthagonova
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
Hay que ordenar las prioridades, primero el C64
- na_th_an
- 256 bits
- Mensajes: 11874
- Registrado: 22 Abr 2005 13:25
- Contactar:
Re: ¿Como empezar a programar para Commodore 64?
Así sería en otro caso, pero este año tenemos dos aniversarios muy importantes que celebrar