Commodore manía
Commodore 64 => Desarrollo => Mensaje iniciado 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!!!
-
Buenísimo Raúl!
-
¿Calígula será el juego de la nave?
-
Muy interesante, lo seguiré de cerca :)
-
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...
-
Muy Bueno
La Pantalla de presentación está genial.
Va tomando forma el juego. Me parce haber visto naves estilo Star Trek :D
-
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.
-
¡ Muy chulas las nuevas naves !
Estaré pendiente del desarrollo por aquí ;)
-
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
-
Aqui la Secuencia en Imagenes...
(http://a1.sphotos.ak.fbcdn.net/hphotos-ak-ash4/376852_395941343797855_859129082_n.jpg)
-
¿Pudiste superar los 255 pixel en el desplazamiento X?
-
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)
-
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):
; 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:
; INCREMENTAR CONTADOR DE FRAMES DE VIDEO
INC FRAMES
-
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).
-
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
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
-
Seguro que todo esto me sirve mucho!!!
-
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)...
-
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...
;)
-
(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!!!
-
De nada ya sabes que me encanta ayudar. Las horas que hemos pasado de BATALLA y las que pasaremos !! :D Sigue dandole al HIERRO!
-
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...
-
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:
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
-
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...