Autor Tema: Libreria Eightspriter para juegos C64  (Leído 41609 veces)

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Libreria Eightspriter para juegos C64
« Respuesta #30 en: Mayo 24, 2010, 15:19:23 »
Cita de: "josepzin"
Cita de: "Wood"
Ah vale, no sabia que intecionabas usar numeros negativos.

Sería lo lógico ¿no? Si quiero que el sprite se vaya por la parte de arriba de la pantalla debería poder poner números negativos, lo mismo para el lateral izquierdo.


Pues yo uso de 0 a 255. Parte de esas coordenadas estan bajo el borde. no necesito de coordenadas negativas para que salga de la area visible.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #31 en: Mayo 24, 2010, 15:48:14 »
Cita de: "Wood"
Pues yo uso de 0 a 255. Parte de esas coordenadas estan bajo el borde. no necesito de coordenadas negativas para que salga de la area visible.

Ostrassss... tienes razon! He dado por supuesto que el 0,0 de las coordenadas de los sprites era en la zona superior izquierda de la zona visible!!!

Ahora mismo lo cambio a unsigned char

?Como se puede agregar codigo assembler dentro de codigo C??

He probado con estas
[code]__asm   
...
__endasm;[/quote]


Pero el CC65 no las reconoce.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Libreria Eightspriter para juegos C64
« Respuesta #32 en: Mayo 24, 2010, 17:43:25 »
Cita de: "josepzin"
Cita de: "Wood"
Pues yo uso de 0 a 255. Parte de esas coordenadas estan bajo el borde. no necesito de coordenadas negativas para que salga de la area visible.

Ostrassss... tienes razon! He dado por supuesto que el 0,0 de las coordenadas de los sprites era en la zona superior izquierda de la zona visible!!!

Ahora mismo lo cambio a unsigned char

?Como se puede agregar codigo assembler dentro de codigo C??

He probado con estas
[code]__asm   
...
__endasm;



Pero el CC65 no las reconoce.[/quote]

Tienes que poner linea a linea asi: asm ("codigo");

Ejemplo:

asm ("lda #$03");
asm ("sta $d000");
.
.
.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #33 en: Mayo 24, 2010, 18:01:06 »
Gracias, ya lo probaré, aunque parece pensado para poner poquito codigo...

¿O quizas se puede hacer esto?
asm ("lda #$03
sta $d000
...
..
sta $d000
...

");
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #34 en: Mayo 26, 2010, 15:50:04 »
Una pregunta sobre C, estoy obteniendo el mensaje "Error: Too many local variables"... ?Que significa? Que he llenado la memoria para almacenar variables???
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Libreria Eightspriter para juegos C64
« Respuesta #35 en: Mayo 26, 2010, 19:16:14 »
Cita de: "josepzin"
Una pregunta sobre C, estoy obteniendo el mensaje "Error: Too many local variables"... ?Que significa? Que he llenado la memoria para almacenar variables???


Uff, nunca me ha sucedido eso... hmmm

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Libreria Eightspriter para juegos C64
« Respuesta #36 en: Mayo 26, 2010, 19:28:28 »
Da una mirada a cuanto te comen las variables locales, el limite es 256 bytes.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #37 en: Mayo 27, 2010, 08:16:42 »
256 bytes... pero si eso es nada?!??! :D :D

Me imagino que para usar mas memoria tengo que acceder directamente a la memoria, verdad? A ver si encuentro algun ejemplo de como hacerlo.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #38 en: Mayo 27, 2010, 16:24:48 »
Misterio resuelto, en lugar de crear una variable hay que crear un puntero, !Estoy entrando en el mundo de los punteros de C!! :D

Wood, he probado el ejemplo de tu libreria, aunque muestra unos tiles en pantalla, me da error en estas lineas:
[code]   setCharsPointersLo(&pCharsLo);
   setCharsPointersHi(&pCharsHi);
   setTiles16x16PointersLo(&pTiles16x16Lo);
   setTiles16x16PointersHi(&pTiles16x16Hi);[/quote]
Mas o menos el mismo Unresolved external "_pCharsHi" referenced in...
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Libreria Eightspriter para juegos C64
« Respuesta #39 en: Mayo 27, 2010, 19:50:50 »
es punteros tienen que indican donde estan los dados de los chars y de las tiles, y los tienes que pasar al la libreria con

void __fastcall__ setCharsPointersLo(unsigned int *);
void __fastcall__ setCharsPointersHi(unsigned int *);
void __fastcall__ setTiles16x16PointersLo(unsigned int *);
void __fastcall__ setTiles16x16PointersHi(unsigned int *);

conforme necesario.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #40 en: Mayo 30, 2010, 16:46:12 »
Sigo por aqui.

Llegado a este punto, veo que no tengo idea como incluir datos de sprites, chars o lo que sea dentro de un programa, me refiero a datos importados desde alguna aplicacion y desde un archivo independiente.

Asi que me he estado dedicando a aprender como funciona eso, me costo un poco pero creo que mas o menos ya lo tengo.

He visto varios ejemplos publicados por esta web http://www.microarcade.net/c64/c64demos.html concretamente el del Walker (mueve un personaje no sprite sobre un fondo, muy interesante) que me han sido de mucha utilidad, ademas el make.bat tambien me fue de mucha utilidad.
Creo que voy a hacer un minitutorial sobre este proceso de aprendizaje que estoy haciendo, porque seguramente para los que ya estan metidos en el tema resulta muy obvio, pero yo que no tocaba un .BAT desde hace AL MENOS 10 anios, no resulta nada obvio. Y eso sin hablar de la parte de C, CC65 y cosas del C64. Voy a hacer el tutorial que me hubiera gustado encontrar a mi :D

Y mientras aprendo sigo avanzando con mi EightSpriter, de a poco, porque tengo que asimilar mas conocimientos a medida que avanzo.

Tengo pendiente probar la lib de Wood, pero antes tengo que terminar de aprender algunos conceptos del direccionamiento del VIC, sus bancos y donde almacena las definiciones de los graficos.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #41 en: Junio 03, 2010, 08:49:00 »
Experimentando con el ECM mode... que cosas que tiene el VIC!!
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Libreria Eightspriter para juegos C64
« Respuesta #42 en: Junio 04, 2010, 09:59:15 »
Me alegro que avances  :D , por cierto he visto que en computeremuzone ya se te ha ofrecido un grafista y todo.

Tienes algún proyecto entre manos? me refiero más allá de la propia librería, algo que programar con ella una vez la termines...

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Libreria Eightspriter para juegos C64
« Respuesta #43 en: Junio 04, 2010, 10:20:35 »
Voy avanzando de a poco, "descubriendo" como funcionan los modos gráficos, tiene tela el tema de los colores de los UDG, que si el bit no se que entonces el caracter esta en hires, que si el bitnosecuanto entonces es el color ECM pero solo 4 colores... dios... :D

Pero todo me sirve para ir tomando agilidad.

Sobre proyecto, no, no tengo nada en mente, en todo caso, cuando esté un poco mas ágil con todo esto, quizas me atreva a portar alguno de los juegos mojones, que al estar libres los gráficos, mapas, tiles facilita mucho. Por ejemplo el Uwol me parece un lindo juego, con pantallas independientes y ademas teniendo los códigos fuentes de guia/base para portar o usar comop referencia... pero me adelanto a los hechos, me queda un buen camino todavía...
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Libreria Eightspriter para juegos C64
« Respuesta #44 en: Junio 07, 2010, 19:54:11 »
Cita de: "josepzin"
Voy avanzando de a poco, "descubriendo" como funcionan los modos gráficos, tiene tela el tema de los colores de los UDG, que si el bit no se que entonces el caracter esta en hires, que si el bitnosecuanto entonces es el color ECM pero solo 4 colores... dios... :D

Pero todo me sirve para ir tomando agilidad.

Sobre proyecto, no, no tengo nada en mente, en todo caso, cuando esté un poco mas ágil con todo esto, quizas me atreva a portar alguno de los juegos mojones, que al estar libres los gráficos, mapas, tiles facilita mucho. Por ejemplo el Uwol me parece un lindo juego, con pantallas independientes y ademas teniendo los códigos fuentes de guia/base para portar o usar comop referencia... pero me adelanto a los hechos, me queda un buen camino todavía...


Es verdad ese modo ECM es muy interesante, yo he empezado un juego en ese modo pero despues lo pasé a bitmap multicolor porque me han dicho que se parecia mucho a spectrum los graficos en modo ECM. Pero en ese modo solo se pueden usar 64 characteres diferentes, ya que los 256 son divididos por 4 para los 4 colores de fondo extra.