Commodore manía

Commodore 64 => Desarrollo => Mensaje iniciado por: R. INTERNATIONAL en Julio 09, 2012, 23:53:30

Título: CALIGULA
Publicado por: R. INTERNATIONAL en Julio 09, 2012, 23:53:30
(http://a3.sphotos.ak.fbcdn.net/hphotos-ak-ash3/575714_393802094011780_979013579_n.jpg)

  Como ya sabeis estoy intentando dar el salto al Ensamblador, poco a poco la Churufleta va cogiendo mas color, tanto es así que hasta le he puesto ya nombre definitivo ya que sus mejoras cada vez son mayores e incluso empieza a parecerse a "algo"...

  Abro este hilo para mostraros los avances y nuevos conocimientos aplicados que vaya adquiriendo y tambien para resolver dudas que puediera tener, en breve os adjuntare el programa donde las mejoras han sido bastante apreciables...

  AL HIERRO!!!
Título: Re: CALIGULA
Publicado por: josepzin en Julio 10, 2012, 01:02:39
Buenísimo Raúl!
Título: Re:CALIGULA
Publicado por: josepzin en Julio 10, 2012, 08:42:04
¿Calígula será el juego de la nave?
Título: Re:CALIGULA
Publicado por: Zonacas en Julio 10, 2012, 13:02:00
Muy interesante, lo seguiré de cerca :)
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 11, 2012, 00:44:59
En éste post adjunto la ultima actualizacion de Caligula, que no es mas que un ejercicio donde pongo en práctica la Teórica,...intento darle un cieto aire Arcade que es algo que me encanta, entre otras le he hecho éstas mejoras:

- Inclusión de Pantalla de Presentación en Modo Bitmap
- Interacción de Pulsar Espacio para Comenzar
- Inclusion de Mini Intro antes de comenzar partida: Ready!
- Nuevo fondo de Estrellas durante juego a base de Chars por Defecto
- Creación de un nuevo Gráfico de Nave Enemiga a Escala mas apropiada
- Aparación de una Nave Enemiga a Doble Sprite
- Mas Enemigos en Pantalla utilizando el Nuevo Sprite Standar para Enemigos sencillos

  La Rutina del Disparo de momento ha sido Ocultada ya que no estaba OK y "Emborronaba" el trabajo,..en breve os haré un Batallon de preguntas para seguir aprendiendo y yo como siempre os agradezco mucho vuestras aclaraciones..

  Recordad que Caligula se juega con Joystick,..si no teneis en ese momento conectado podeis configurar el Vice para que funcione con las teclas que querais a modo de Joystick en la siguiente opción:

SETTING > JOYSTICKSETTINGS > ( En los menus ocultos que aparecen tanto en el puerto 1 como 2 activar KEYSET A) > KEYSET A > (Ahora configuramos los teclas a nuestro gusto) > ACEPTAR

 NO adjunto Captura de P. Presentación para no chafaros el "Efecto Sorpresa", de momento moveros por la pantalla esquivando naves enemigas,..imaginaros el disparo (que esta en construccion) y la colision de sprites que está sin hacer.

   Adjunto Archivo en éste Post y me contais que os parece...
 
Título: Re:CALIGULA
Publicado por: Zonacas en Julio 11, 2012, 08:55:17
Muy Bueno

La Pantalla de presentación está genial.

Va tomando forma el juego. Me parce haber visto naves estilo Star Trek :D



Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 11, 2012, 09:43:06
Aquí os dejo con una Parrilla en la que se ven las Naves Enemigas convertidas a Commodore y las Fuentes de las que vienen,..todas son Naves de Xain´d Sleena Arcade...

(http://a4.sphotos.ak.fbcdn.net/hphotos-ak-ash4/483999_394396427285680_446786898_n.jpg)

 La nueva nave Enemiga (la ultima de abajo) todavia esta en Construccion, luego quiero superar la barrera de los 255 en X y también cambiar la posicion de inicio del programa en la memoria y la de los Sprites (y cambio de punteros tambien), por no hablar de la Intro que tambien la tengo que mejorar bastante.
Título: Re:CALIGULA
Publicado por: lobogris en Julio 11, 2012, 17:17:58
¡ Muy chulas las nuevas naves !

Estaré pendiente del desarrollo por aquí ;)
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 15, 2012, 20:18:58
Nueva actualización con las siguientes Mejoras:

- INTRO construida de nuevo, con la inclusion del letrero Ready por medio de dos Sprites y una pequeña animacion en la que la Nave comienza su aventura
- Inclusion de una nueva Nave Enemiga a un sprite
- Todos los Sprites han sido retocados
- Durante el juego se puede volver a la Pantalla de Presentación si con la Nave nos salimos completamente de la pantalla tanto por arriba como por abajo

Os adjunto el Programa en éste Post (jugad con Joystick)

   Saludos
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 15, 2012, 20:37:42
Aqui la Secuencia en Imagenes...

(http://a1.sphotos.ak.fbcdn.net/hphotos-ak-ash4/376852_395941343797855_859129082_n.jpg)
Título: Re:CALIGULA
Publicado por: josepzin en Julio 16, 2012, 08:26:39
¿Pudiste superar los 255 pixel en el desplazamiento X?
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 16, 2012, 19:49:18
No Jose, como habras podido comprobar si has probado el Programa, todavia no lo he conseguido pero porque todavia no me he puesto con ello, (la verdad es que no paro con esto), recordad que yo soy Carnicero 25 años y no tengo ni papa de programacion en Ensamblador, demasiado estoy avanzando...

  Entre las proximas cosas que quiero hacer estan:
- Superar la barrera de los 255 en X
- Incluir rutina de Disparo
- Crear animacion de Desintegracion de Naves
- Deteccion de colision de Sprites
- Y seguro que algo mas se me ocurrira,..porque mas en el futuro quiero meter musica y cambiar todo al Banco 1 de memoria, porque en el 0 ya me estoy quedando justo de sitio con lo poco libre que queda, pero eso sera mas adelante...

Ya que estoy aqui os dejo con la Parrilla de Sprites, vereis que todavia hay 5 que no utilizo, lo proximo que quiero hacer es la Animacion de la Desintegracion (que lleva 4 Frames en un Sprite)...

(http://a8.sphotos.ak.fbcdn.net/hphotos-ak-ash3/555963_396283590430297_1301660547_n.jpg)
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 16, 2012, 20:04:11
Ya que estoy aqui os lanzo una pregunta, en realidad me falta probar unas cosas para ver si doy con ello, pero no quita que lo planteé tambien por aqui:

  Tengo un programita que se me mando cuando empece en ensamblador hará unos meses, en ese programa se mostraba un marcianito (estilo Galaxian) con una animacion a dos Frames en el Sprite, vamos, la tipica animacion de las naves enemigas en Galaxian o en Space Invaders....

  He aislado el programa para trabajar la rutina que me interesa que es en donde esta la animacion...lo que pasa es que yo quiero ponerle 4 Frames al Sprites,...dos mas que en el programa, para con esto montar la animacion de la desintegracion de la nave y luego incluirla en Caligula para utilizarla cuando una nave enemiga es destruida por un disparo...

  Aqui el listado que maneja la animacion (el pasar de Frames) en el Sprite en el programa que me mandaron, aviso que los graficos se cargan en $2000 (8192), con lo cual la direccion del primer Frame esta en el bloque $80 (128) y como no podiaa ser de otra forma el puntero del Sprite en $07F8 (2040):

Código: [Seleccionar]
; ANIMACION DEL SPRITE
LDA FRAMES ; CARGAR NUMERO DE FRAME ACTUAL
LSR A ; DIVIDIR POR 2...
LSR A ; 4...
LSR A ; 8...
LSR A ; ... Y 16
AND #$01
ORA #$80
STA $07F8

  Mas o menos creo que tengo que probrar a incluirle mas ORA con las tres posiciones siguiente a $80 (es decir $81, $82 y $83)...pero no lo puedo asegurar, tengo que ver tambien el AND.

  Nos contamos...

Edito: Se me olvido deciros que al principio de ésta rutina vienen estas lineas que incrementan el Frame:

Código: [Seleccionar]
; INCREMENTAR CONTADOR DE FRAMES DE VIDEO

INC FRAMES
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 16, 2012, 20:20:26
Ya puesto, no me cuesta nada adjuntaros el Archivo Ensamblado para que veais la animacion que se hace con esa Rutina, cargadla en el Vice y lo veis..
Vereis que con ella ya animo los dos primeros Frames de la Desintegracion (Explosion),.lo que quiero es que aparezcan los Cuatro...

  Os lo adjunto en esta ultima respuesta, (Hay que estar Registrado para acceder a las Descargas).
Título: Re:CALIGULA
Publicado por: lobogris en Julio 16, 2012, 21:27:23
pon AND #$03 :)

Edito: Otra cosa, para otros sprites, que usen otro puntero inicial de sprite... deberás cambiar el ORA

En este de la explosión lo tienes en 128 ($80) por eso hace ORA #$80, ¿me sigues?
o sea

Código: [Seleccionar]
        INC FRAMES
; ANIMACION DEL SPRITE
LDA FRAMES ; CARGAR NUMERO DE FRAME ACTUAL (OJO= FRAMES = FRAME DE CADA PAGINA, NO CONFUNDAS CON FRAME SPRITE)
LSR A ; DIVIDIR POR 2...
LSR A ; 4...
LSR A ; 8...
LSR A ; ... Y 16
        AND #NUM_FRAMES_SPR-1
        ORA #PTR_SPR
        STA  PTR_SPR_VIC    ; cambia el puntero del sprite correspondiente en puntero sprite del VIC
Título: Re:CALIGULA
Publicado por: josepzin en Julio 16, 2012, 22:01:18
Seguro que todo esto me sirve mucho!!!
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 16, 2012, 22:26:05
Joder Lobo...

   FUNCIONA!!!

  Lobo dijo:  "Edito: Otra cosa, para otros sprites, que usen otro puntero inicial de sprite... deberás cambiar el ORA

En este de la explosión lo tienes en 128 ($80) por eso hace ORA #$80, ¿me sigues?"


  Por supuesto, ya sabes que me manejo minimamente en este tema,...como no te voy a seguir!,...sino no estaría aquí, ahora!!!

  AL HIERRO!!!

  Os adjunto el archivo con el programa modificado y compilado para que veais la animacion de la Desintegracion completa (aunque ahora que la veo, creo que hay que quitarle NOP para hacerla mas Dinamica, o incluirla un minimo retardo con los sprites apagados al final de la secuencia),..ahora vamos a ver si me entra en el programa (que no os había dicho que estos 4 Frames no estaban incluidos en el archivo de Sprites),..que alomejor ya tengo problemas, recordad que me estoy moviendo solo en sitios libres con 1K para el Programa y 1K para el Set de Sprites (16) y estoy teniendo problemas,..voy a intentar reducir el programa creando subrutinas...

  Asi todo tarde o temprano creo que tengo que trasladar todo al Bank 1 de Memoria, con lo cual supondria incremetear en unos 5K (imagino), el espacio libre que tendria para trabajar, lo cual sería toda una BARBARIDAD!!!, teniendo en cuenta que sobre 2K estoy metiendo el Programa y los Sprites, por otro lado van las 8K de la Bitmap y como supletorio me quedaria el bufer de Cassette con un tercio de K antes de llegar a la posicion $400 (1024 Video Memory)

  Os adjunto la animacion en ésta respuesta, podeis descargarla, (como digo tengo que reducirla de NOP y hacerla mas dinamica)...
Título: Re:CALIGULA
Publicado por: lobogris en Julio 16, 2012, 23:34:32
  Lobo dijo:  "Edito: Otra cosa, para otros sprites, que usen otro puntero inicial de sprite... deberás cambiar el ORA

En este de la explosión lo tienes en 128 ($80) por eso hace ORA #$80, ¿me sigues?"


  Por supuesto, ya sabes que me manejo minimamente en este tema,...como no te voy a seguir!,...sino no estaría aquí, ahora!!!
no lo decia en el sentido de que no me prestaras atención o que no te enteraras, si no más bien si yo me estaba explicando bien...

;)
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 16, 2012, 23:39:22
(Tampoco yo lo decia por eso, sino porque "Pillo" las enseñanzas!, osea que estamos de acuerdo!),..mas que nada la Frase es un Encomio hacia tu Persona,..por tu Trabajo y Dedicación, la cual Deslumbra ante tanta,.."Potrona!!"
  Yo la verdad es que no tengo mas que palabras de Agadecimiento hacia todas las horas que hemos pasado de BATALLA juntos y que me has enseñado por el Camino!!!

  AL FRIEND!!!
Título: Re:CALIGULA
Publicado por: lobogris en Julio 16, 2012, 23:46:04
De nada ya sabes que me encanta ayudar. Las horas que hemos pasado de BATALLA y las que pasaremos !! :D Sigue dandole al HIERRO!
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 17, 2012, 00:03:07
Mañana Libro,..osea que voy a estar de Tranki en casa y seguro que intentare meter la rutina en el Programa,(que vamos a ve si me entra que estoy muy justo de Espacio)..me voy a sobar que estoy trillado tras un finde movido...
Título: Re:CALIGULA
Publicado por: lobogris en Julio 17, 2012, 00:20:06
Ok, buenas noches. Te pongo esto para que lo mires mañana, respecto a la velocidad de las animaciones, y te adjunto una modificación de animación2 en este mensaje mismo.

Estos son los cambios que he hecho a la rutina, para que vaya más rápida:
Código: [Seleccionar]
BUC     LDA $D012    ;Raster Position
        CMP #$FF
        BNE BUC
        INC FRAMES
        LDA FRAMES
        LSR
        LSR
        LSR
        AND #$03
        ORA #$80
        STA a07F8
        JMP BUC
Lo que enlentece la animación no son los NOP, es la división /16, es decir si quieres que vaya más rápido
quita un LSR, si los quitas todos, no habrá "retardo" alguno.

Yo he quitado uno, y he forzado un salto al bucle ignorando los NOP

Lo dicho, para que veas como queda aqui te paso animacion3.prg
Título: Re:CALIGULA
Publicado por: R. INTERNATIONAL en Julio 17, 2012, 10:34:32
Ya la he perfeccionado y le he puesto una velocidad optima, con ásta rutina se te abre un nuevo campo a la imaginacion, por ejemplo el primer enemigo que hice puedo hacer ahora que cuando se desplaza de derecha a izquierda.vaya girando sobre si mismo y asi no queda tan estatico...

Hoy le dare y le introducire todo lo aprendido ayer...