Toqueteando las tripas del OCS en ASM. Nivel -1

Avatar de Usuario
Mlake
Mensajes: 75
Registrado: 27 Mar 2019 19:54
Agradecido : 34 veces
Agradecimiento recibido: 165 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Mlake » 28 Abr 2019 21:35

Último mensaje de la página anterior:

Chema escribió:Me has dejado atrás!!! :) Este finde no he podido hacer nada y ni he comenzado con los playfields… Prometo ponerme al día en cuanto tenga un hueco...

De todas formas, ¿no es posible que subas tus fuentes en un zip aquí a retrowiki como adjunto? No es que sea necesario, pero es una idea, para que quede todo junto...

No hay que alarmarse. -grin

No es nada que no hayamos tocado, esperas de copper, cambios de color y scroll (00-FF), DDF, punteros...

Simplemente es para dar ideas y salir de la tipica pantalla 320x256.
Con esto ya hay para echar un buen rato delante del teclado y empezar a entender articulos mas elaborados que hay disponibles por las redes.

Mas adelante miraré una forma mas amena de seguir con el hilo.

Las fuentes son una chusta llena de copia/pegas y cambios para hacer el codigo mas legible. Simplemente sirven para entender como "meterle mano" al hard.
Se pueden hacer mucho mejor (los cracks del ASM en M68K te aconsejaran) a cambio de ser menos entendible para el profano.

Avatar de Usuario
Chema
Mensajes: 2263
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1911 veces
Agradecimiento recibido: 604 veces
Contactar:

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Chema » 30 Abr 2019 00:25

No he tenido todo el tiempo que quisiera, pero voy paso a paso... Crear logo, convertirlo con modo entrelazado y 2 bitplanes, y comenzar a jugar con el copper para crear el efecto de espejo (el reflejo es un poco más pequeño que el original).

Me falta cambiar la paleta, crear el movimiento con la tabla de senos y poner otro playfield por algún sitio...

Poco a poco... -grin
agua.png
agua.png (12.54 KiB) Visto 1171 veces

Avatar de Usuario
Mlake
Mensajes: 75
Registrado: 27 Mar 2019 19:54
Agradecido : 34 veces
Agradecimiento recibido: 165 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Mlake » 30 Abr 2019 12:03

Chema escribió:No he tenido todo el tiempo que quisiera, pero voy paso a paso... Crear logo, convertirlo con modo entrelazado y 2 bitplanes, y comenzar a jugar con el copper para crear el efecto de espejo (el reflejo es un poco más pequeño que el original).

Me falta cambiar la paleta, crear el movimiento con la tabla de senos y poner otro playfield por algún sitio...

Poco a poco... -grin
agua.png

Pues asi en negro queda chulo,no se si yo le cambiaría la paleta o aplicaría los senos ya.

El tema de los reflejos es para practicar los módulos negativos que no habíamos visto.
Como ya has comprobado, depende del salto, el bitmap se estrecha más o menos.


Va por buen camino.

tolkien
Mensajes: 51
Registrado: 20 Oct 2016 06:49
Agradecido : 31 veces
Agradecimiento recibido: 14 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor tolkien » 30 Abr 2019 19:15

Impresionante hilo que me estaba perdiendo!
Menudo currazo!
-coam1

Avatar de Usuario
Chema
Mensajes: 2263
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1911 veces
Agradecimiento recibido: 604 veces
Contactar:

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Chema » 01 May 2019 23:15

Hala... ya tengo mi versión simplificada.

Claramente he copiado tu tabla y tu rutina de Agua, que he tenido que adaptar poco, pero se entiende bien lo que haces gracias a los comentarios.

Tengo dos dudas: la primera es que parece que el agua a mí me ondea más rápido, aunque no acabo de entender muy bien por qué. La segunda es cómo creas la tabla. Dices que es una tabla de senos, pero viendo los valores no me encaja del todo bien :)

Bueno, sé que prometí probar el dual playfield y todavía no lo he hecho, pero el día se me ha quedado en nada. En todo caso enseño orgulloso el resultado intermedio. Como ves toqué un poco la paleta del reflejo. Creo que queda bien.

MyMovie.gif
MyMovie.gif (466.42 KiB) Visto 1092 veces

Avatar de Usuario
Mlake
Mensajes: 75
Registrado: 27 Mar 2019 19:54
Agradecido : 34 veces
Agradecimiento recibido: 165 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Mlake » 02 May 2019 00:10

Chema escribió:Hala... ya tengo mi versión simplificada.

Claramente he copiado tu tabla y tu rutina de Agua, que he tenido que adaptar poco, pero se entiende bien lo que haces gracias a los comentarios.

Tengo dos dudas: la primera es que parece que el agua a mí me ondea más rápido, aunque no acabo de entender muy bien por qué. La segunda es cómo creas la tabla. Dices que es una tabla de senos, pero viendo los valores no me encaja del todo bien :)

Bueno, sé que prometí probar el dual playfield y todavía no lo he hecho, pero el día se me ha quedado en nada. En todo caso enseño orgulloso el resultado intermedio. Como ves toqué un poco la paleta del reflejo. Creo que queda bien.

MyMovie.gif

Te ha quedado cojonuda -thumbup

A lo mejor es mi gif o la propia forma de mi "logo", pero yo veo bien la tuya. No la veo tan rapida. Siempre puedes llamarla cada x frames.

La tabla es un poco curiosa.Para evitar que las ondulaciones sean "perfectas", genero ondas distintas y las mezclo para no parezca la tipica senoidal.
En PC uso esta y va de lujo.

http://www.pouet.net/prod.php?which=14718

Configuras una onda

Imagen

Despues la otra

Imagen

Y te sale el resultado en "combined"

Imagen

Todo es cuestion de toquetear valores. Mis mates no dan para tanto.

Lo dicho, te ha quedado muy chula.

Avatar de Usuario
Chema
Mensajes: 2263
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1911 veces
Agradecimiento recibido: 604 veces
Contactar:

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Chema » 05 May 2019 23:28

Mecachis, me acabo de dar cuenta que se me pasó meter el segundo playfield al final... Es que esto de no tener tiempo es un rollo... Por cierto, me parece muy interesante ese programa para mezclar senoidales :)

Avatar de Usuario
falken
Mensajes: 658
Registrado: 05 Ene 2011 08:50
Agradecido : 9 veces
Agradecimiento recibido: 4 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor falken » 05 May 2019 23:48

Espectacular hilo, me apunto!

Avatar de Usuario
Mlake
Mensajes: 75
Registrado: 27 Mar 2019 19:54
Agradecido : 34 veces
Agradecimiento recibido: 165 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Mlake » 07 May 2019 12:02

Chema escribió:Mecachis, me acabo de dar cuenta que se me pasó meter el segundo playfield al final... Es que esto de no tener tiempo es un rollo... Por cierto, me parece muy interesante ese programa para mezclar senoidales :)

El segundo playfield es de relleno,tampoco tiene.importancia.

La idea hasta ahora es saber montar un playfield simple y dual. Este ultimo,aunque no lo uses, te puede ayudar a acelerar los.bobs de hasta 8 colores por aquello de no tener que copiar al fondo.

Avatar de Usuario
Mlake
Mensajes: 75
Registrado: 27 Mar 2019 19:54
Agradecido : 34 veces
Agradecimiento recibido: 165 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Mlake » 08 May 2019 02:12

Cap 4 Introduccion a los Sprites

Un sprite es una imagen que funciona de forma INDEPENDIENTE al fondo.

Imagen

Cada cacharro los maneja como le conviene pero todos tienen una cosa en comun:

El dibujo propiamente dicho, la posicion donde debe mostrarse y una paleta que le de color.

La intencion de este capitulo es dejar esas 3 minimas cosas claras.



EL DIBUJO:

Un Sprite en Amiga tiene que tener 16 pixels de ancho. La altura la puedes escoger a tu gusto.
Debe estar compuesto de 2 bitplanes (4 colores). RECORDAMOS QUE LOS BITMAPS EN AMIGA SIEMPRE VAN CON LOS BITPLANES ENTRELAZADOS.

Imagen

En ASM

dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000
.
.
.


Espero que quede claro.



Ya tenemos el primer paso, la imagen.

UN BITMAP DE 16 PIXELS DE ANCHO Y LOS QUE QUERAIS DE ALTO (en el ejemplo son 150) CON 4 COLORES.




Ahora necesitamos el paso 2, la POSICION.

En otros sistemas, los Sprites tienen una altura fija. Por eso solo necesitan una coordenada.
Como el Amiga te da libertad en la altura, tambien necesita saber donde termina nuestro sprite.

Imagen

La posicion inicial deberia ser facil. Un byte para Y, otro para X. ($YYXX)
Lo hacemos un griton de veces con el copper, no deberia haber problema.

DC.W $AC50 Linea $AC, posicion $50
DC.W $2C85 Linea $2C, posicion $85
.
.
.


La posicion final depende el largo de nuestro sprite.

Lo normal seria sumarle a la Y el largo de nuestro Sprite y sumarle 16 (el ancho) a la X. Ya tenemos nuestra posicion final.

Pero vamos a hacer un ejercicio mental:

La Y tenemos que declararla porque el ordenador no sabe el largo que le hemos dado al sprite. Pero la X siempre va a ser 16 pixels mas que la inicial. ¿Que conseguimos con eso?
Si tenemos un word para guardar la posicion final $YYXX y hemos visto que el byte $XX no nos hace falta, ese byte se usa para "configurar" el sprite.


Resumiendo, al final tenemos dos words.
POSICION INICIAL Y inicio,X inicio
POSICION FINAL Y inicio + largo del sprite, byte configuracion

En ASM
DC.W $AC60,$BC00

Posicion inicial Y =$AC
Posicion inicial X =$60
Posicion final Y =$BC (el sprite seria de 16 pixels de alto $AC+16=$BC)
Byte de configuracion = $00 (Todo por defecto)

Espero que se entienda.

Ya hemos terminado el paso 2 .

POSICION INICIAL Y inicio,X inicio
POSICION FINAL Y inicio + largo del sprite, byte configuracion





Ahora nos queda el ultimo tramo del post, la paleta....


Hagamos otro ejercicio mental:

Abro deluxe paint a 4 colores.
Hago un sprite de 4 colores (repito)
El 0 es un magenta chillon, lo uso de fondo para destacar el sprite mientras lo pinto
El 1 es el marron de la piel de mi personaje.
El 2 es el amarillo del pelo.
El 3 es el azul de la ropa.

¿Como replico los colores en mi programa si el bitmap no tiene color?

Cuando montabamos un playfield, el fondo guardaba sus colores en COLOR00, COLOR01, COLOR02, COLOR03,COLOR04, COLOR05, COLOR06, COLOR07, COLOR08, COLOR09, COLOR10, COLOR11, COLOR12.........

Si haciamos dual playfield:
el PF1 se quedaba con COLOR00, COLOR01, COLOR02, COLOR03, COLOR04, COLOR05, COLOR06 y COLOR07
y el PF2 con COLOR08,COLOR09,COLOR10,COLOR11,COLOR12,COLOR13,COLOR14 y COLOR15

Esto estaba entendido, ¿no? ¿Que tiene que ver con los sprites?

De la misma forma que habia que declarar la paleta del fondo, tambien pasa con los sprites.
¿Y que colores usan? Del 16 en adelante (por eso el dual playfield termina en COLOR15).

Vamos a la practica.
Si quiero vover a tener el magenta que tenia como color 0 en el paint, lo declaro en COLOR16
Si quiero vover a tener el marron para la piel del personaje que tenia como color 1 en el paint, lo declaro en COLOR17
Si quiero vover a tener el amarillo para el pelo que tenia como color 2 en el paint, lo declaro en COLOR18
Si quiero vover a tener el azul para la ropa que tenia como color 3 en el paint, lo declaro en COLOR19

Una vez hecho eso, corremos nuestro programa.

¡Vaya! el magenta de fondo no se ve ¿por que?
Porque el color 0 del sprite (QUE PARA EL CHIPSET ES COLOR16) se tiene que usar como transparencia. Da igual que cambie el magenta por negro, azul, rosa, blanco..... lo que esté en COLOR16, desaparece de la pantalla.




De momento hay que tener estas tres cosas claras:

La imagen: Bitmap de 16 pixels de ancho y 4 colores (dos bitplanes etrelazados)
Un word para la posiscion inicial
Otro word para la posicion final+configuracion
Los colores de los sprites se situan desde COLOR16 para arriba.

Avatar de Usuario
Chema
Mensajes: 2263
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1911 veces
Agradecimiento recibido: 604 veces
Contactar:

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Chema » 09 May 2019 00:00

Vale, ya llevo retraso :( pero en el rato que tuve libre hoy estuve haciendo el post sobre cómo configurar el toolchain. Prometo buscar un hueco en cuanto pueda...

Parezco un chaval diciendo al profe que se le han olvidado los deberes XD

Avatar de Usuario
Chema
Mensajes: 2263
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1911 veces
Agradecimiento recibido: 604 veces
Contactar:

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Chema » 11 May 2019 19:00

Vale, tengo algo que parece que funciona, pero mis sprites son un desastre porque no acabo de dar con la paleta adecuada :) así que no pongo pantallazo, todavía.

Tengo algunas dudas...
1/ La posición del sprite se coloca en 16 bits. ¿Cómo se codifica?
2/ ¿Hay manera de especificar cuál es el color transparente? En tu paleta no me pareció verlo... ¿Basta con ponerlo en el color 16,20,24, etc?
3/ Supongo que los sprites tienen que tener el mismo número de planos que la pantalla y modo entrelazado si lo tiene así el playfield, ¿no?

En cuanto tenga algo presentable, pongo un pantallazo, pero ya te digo que creo que todo está bien (tamaños, las rutinas que los mueven, el copper...), excepto que mis sprites son una nube de puntos (eran de más de 16 pixels -se me pasó- y la paleta no está bien...)

A ver si averiguo cómo usar el KingCon para generar los sprites, que tiene un modo para eso... :)

Avatar de Usuario
kikems
Mensajes: 3415
Registrado: 30 May 2013 19:23
Agradecido : 996 veces
Agradecimiento recibido: 1368 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor kikems » 11 May 2019 19:50

Me encantan los gif animados que os curráis para las explicaciones.

Avatar de Usuario
Mlake
Mensajes: 75
Registrado: 27 Mar 2019 19:54
Agradecido : 34 veces
Agradecimiento recibido: 165 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Mlake » 11 May 2019 22:14

Chema escribió:Vale, tengo algo que parece que funciona, pero mis sprites son un desastre porque no acabo de dar con la paleta adecuada :) así que no pongo pantallazo, todavía.

Tengo algunas dudas...
1/ La posición del sprite se coloca en 16 bits. ¿Cómo se codifica?
2/ ¿Hay manera de especificar cuál es el color transparente? En tu paleta no me pareció verlo... ¿Basta con ponerlo en el color 16,20,24, etc?
3/ Supongo que los sprites tienen que tener el mismo número de planos que la pantalla y modo entrelazado si lo tiene así el playfield, ¿no?

En cuanto tenga algo presentable, pongo un pantallazo, pero ya te digo que creo que todo está bien (tamaños, las rutinas que los mueven, el copper...), excepto que mis sprites son una nube de puntos (eran de más de 16 pixels -se me pasó- y la paleta no está bien...)

A ver si averiguo cómo usar el KingCon para generar los sprites, que tiene un modo para eso... :)


Viendo que la explicacion ha sido un desastre, intentaré rehacer la entrada de nuevo.

Avatar de Usuario
Chema
Mensajes: 2263
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1911 veces
Agradecimiento recibido: 604 veces
Contactar:

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Chema » 12 May 2019 13:02

No, no. Te he entendido. Creo :)

Es que no pude ponerme (con el móvil es un rollo contestar, por eso solo di las gracias). A ver esta tarde...

Fui yo el que me perdí un poco, por leer demasiado deprisa :)

Avatar de Usuario
Chema
Mensajes: 2263
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1911 veces
Agradecimiento recibido: 604 veces
Contactar:

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Chema » 12 May 2019 21:36

Muy mal no te explicarías cuando ya tengo la cosa hecha :)

Mis mayores problemas (además de ajustar las constantes con los tamaños de los datos de mis sprites) han sido a la hora de crear y convertir las imágenes y manejar la paleta.

Voy a necesitar un programa que me deje editar la paleta a usar, porque el KingCon me pone el color 0 como transparente y siempre está asignado al negro. Claro, estoy usando el Paint y no sé si se puede reorganizar la paleta siquiera...

Luego recordar que hay que usar dos bitplanos y poner el modo entrelazado, como el playfield.

El resultado es:
MyMovie (2).gif
MyMovie (2).gif (651.67 KiB) Visto 794 veces

-thumbup

EDIT: Bajada la resolución del gif, para que ocupe menos.

Avatar de Usuario
Mlake
Mensajes: 75
Registrado: 27 Mar 2019 19:54
Agradecido : 34 veces
Agradecimiento recibido: 165 veces

Re: Toqueteando las tripas del OCS en ASM. Nivel -1

Mensajepor Mlake » 14 May 2019 01:23

Esto me pasa por meterme en foros atarianos.... -rofl

Imagen
quiero ver mis fotos

Por fin me ha dejado editar el post. :lol:


Volver a “Software & OS Amiga”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados