Empezando a portar Metal Slug de Atari STE a MegaDrive

Avatar de Usuario
robotnik16
Mensajes: 68
Registrado: 22 Dic 2015 00:16
Agradecido : 5 veces
Agradecimiento recibido: 7 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor robotnik16 » 18 Nov 2021 20:30

Último mensaje de la página anterior:

Qué bueno, ¿pero todo ya con sus animaciones o son sólo los sprites a groso modo? En cualquier caso, parece que progresa muy bien.

Con el margen que dices que queda, explicado para ignorantes en la materia como yo, ¿hasta dónde se podría llegar en cuanto a enemigos, balas y elementos en general? A 30 o 60 fps? (con sus lógicas caídas doy por hecho...).

Avatar de Usuario
masteries
Mensajes: 970
Registrado: 30 May 2018 11:33
Ubicación: Espaciando
Agradecido : 130 veces
Agradecimiento recibido: 538 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor masteries » 18 Nov 2021 20:56

robotnik16 escribió:Qué bueno, ¿pero todo ya con sus animaciones o son sólo los sprites a groso modo? En cualquier caso, parece que progresa muy bien.

Con el margen que dices que queda, explicado para ignorantes en la materia como yo, ¿hasta dónde se podría llegar en cuanto a enemigos, balas y elementos en general? A 30 o 60 fps? (con sus lógicas caídas doy por hecho...).


Con sus animaciones y todo :)

Toda esa cantidad de sprites que ves, animados, moviéndose, colisionando y con 3 - 4 voces de sonido digital a 50 / 60 fps... en NTSC lo hago también funcionar a 50 cuadros, para que no me descabale el engine del juego, que es el mismo del STE


Lo de los 30 fps en NeoGeo debe tener una explicación, debido a alguna limitación técnica.

No olvidemos que en NeoGeo, los fondos presentan animaciones gigantescas, que aquí no podemos tener ... no por falta de potencia gráfica, sino más bien por falta de RAM de vídeo. Si hubiesen mantenido el plan original de mantener los 128 KB del arcade system 16, padre de MegaDrive, pero decidieron dejarlo a la mitad.
La maestría interior...

Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115

Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo

Avatar de Usuario
Mlake
Mensajes: 130
Registrado: 27 Mar 2019 19:54
Agradecido : 59 veces
Agradecimiento recibido: 260 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor Mlake » 18 Nov 2021 21:32

Cada vez se va poniendo mejor. -thumbup

La verdad es que hace años que no hago nada con la Megadrive, aun asi me surgen dudas.

La CRAM de la Mega tiene 4 paletas de 16 colores.
Con 32 (2x16) para los sprites, ¿como le das 64 (4x16) al fondo si solo te quedan 2 paletas de 16? Imagino qur cambiando los colores al vuelo durante el Hblank.¿No?

Si solo usas un plano, ademas de los cambios al vuelo ¿tambien cambias de paleta? ¿O te mantienes con la misma?

¿Que te pareció la idea de mezclar el plano A y el B para poder usar las dos paletas a la vez?


Que te ocupe menos vram que en el ST es normal, los gráficos son de 16 colores en MD y de 32 en el ST.
Yo hice la prueba en amiga y el fondo de la mission 1 se chupa 650kb de chip a 16 colores.

Otra cosa, ¿Puedes usar el plano W para hacer el hud? Seria un detalle resulton.



Sobre la neo geo, la magia no son los cartuchos gigantes (que tambien) , es el hecho de que los sprites van directos del cartucho al VDP, no hay que cargarlos en vram. Por eso la consola tiene 2 ranuras.

Avatar de Usuario
robotnik16
Mensajes: 68
Registrado: 22 Dic 2015 00:16
Agradecido : 5 veces
Agradecimiento recibido: 7 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor robotnik16 » 18 Nov 2021 21:34

Pues joderrr, muchas ganas de verlo acabado en movimiento, tiene que ser una pasada.

En una entrevista a uno de los diseñadores de la consola, comentan que hubo aspectos que no se pudieron implementar, como por ejemplo, una paleta mayor, porque eso conllevaba aumentar a su vez otros elementos del hardware, imagino que uno podría ser la mayor ram, y que todo ello conllevaría un aumento considerable del precio, por lo que decidieron cerrar el grifo para vender más máquinas. Ya tal y como es, el precio de salida fue alto en su lanzamiento.

Lo que comentas de los 80 sprites (o 79), los programadores del Paprium dijeron haber encontrado para el juego una 'puerta trasera' que les permitió llegar a 96, pero no explicaron exactamente a qué se referían. Según con tus referencias, 62 ya dan para bastante.

Enhorabuena por el trabajo, es un todo un logro.

Avatar de Usuario
Mlake
Mensajes: 130
Registrado: 27 Mar 2019 19:54
Agradecido : 59 veces
Agradecimiento recibido: 260 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor Mlake » 18 Nov 2021 21:46

robotnik16 escribió:[...]

Lo que comentas de los 80 sprites (o 79), los programadores del Paprium comentaron que encontraron una 'puerta trasera' que les permitió llegar a 96, pero no explicaron exactamente a qué se referían. Según con tus referencias, 62 ya dan para bastante.

Enhorabuena por el trabajo, es un todo un logro.


La megadrive tiene una tabla para 80 sprites, pero solo tiene 40 "reales" (32 si trabajas a 256px de ancho).

Puedes actualizar la tabla y tener 200 pseudo sprites si quieres, pero no son de verdad.

Avatar de Usuario
robotnik16
Mensajes: 68
Registrado: 22 Dic 2015 00:16
Agradecido : 5 veces
Agradecimiento recibido: 7 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor robotnik16 » 18 Nov 2021 22:01

Mlake escribió:
robotnik16 escribió:[...]

Lo que comentas de los 80 sprites (o 79), los programadores del Paprium comentaron que encontraron una 'puerta trasera' que les permitió llegar a 96, pero no explicaron exactamente a qué se referían. Según con tus referencias, 62 ya dan para bastante.

Enhorabuena por el trabajo, es un todo un logro.


La megadrive tiene una tabla para 80 sprites, pero solo tiene 40 "reales" (32 si trabajas a 256px de ancho).

Puedes actualizar la tabla y tener 200 pseudo sprites si quieres, pero no son de verdad.

Lo de la tabla de 80 sí lo conocía, en lo de sprites reales o pseudo ya me pierdo, supongo que a los segundos no se les podrá dotar de propiedades tipo colisiones o cosas así?? Por cierto, curioso que a menor resolución rinda menos, pero también lo había oído.

No sé en qué consistirá lo de los 96 sprites, pero es cierto que el juego muestra muchísimos más enemigos que cualquier otro juego similar del sistema, y además con muy poquito parpadeo. Quizás sólo sea optimización, aunque si no recuerdo mal, precisamente las barras de vida, puntuación y demás (que no están en el plano reservado para el hud) creo que disponían justamente de 16 sprites, tal vez lo destinaran para ésto.

Avatar de Usuario
masteries
Mensajes: 970
Registrado: 30 May 2018 11:33
Ubicación: Espaciando
Agradecido : 130 veces
Agradecimiento recibido: 538 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor masteries » 18 Nov 2021 22:07

Mlake escribió:Cada vez se va poniendo mejor. -thumbup

La verdad es que hace años que no hago nada con la Megadrive, aun asi me surgen dudas.

La CRAM de la Mega tiene 4 paletas de 16 colores.
Con 32 (2x16) para los sprites, ¿como le das 64 (4x16) al fondo si solo te quedan 2 paletas de 16? Imagino qur cambiando los colores al vuelo durante el Hblank.¿No?

Si solo usas un plano, ademas de los cambios al vuelo ¿tambien cambias de paleta? ¿O te mantienes con la misma?

¿Que te pareció la idea de mezclar el plano A y el B para poder usar las dos paletas a la vez?


Que te ocupe menos vram que en el ST es normal, los gráficos son de 16 colores en MD y de 32 en el ST.
Yo hice la prueba en amiga y el fondo de la mission 1 se chupa 650kb de chip a 16 colores.

Otra cosa, ¿Puedes usar el plano W para hacer el hud? Seria un detalle resulton.



Sobre la neo geo, la magia no son los cartuchos gigantes (que tambien) , es el hecho de que los sprites van directos del cartucho al VDP, no hay que cargarlos en vram. Por eso la consola tiene 2 ranuras.



En los sistemas planares, para obtener el mejor rendimiento, has de pre-desplazar los gráficos; el skew vde los blitter tiene un precio, también en Amiga, y si multiplicas ese precio por X, pues mal...

Además de que las optimizadas instrucciones para el blitter, por cada fotograma de cada sprite, hace que todo ocupe mucho más

Volviendo a Megadrive,

Son sólo 16 colores para los sprites,
y el coloreado del fondo tiene otros secretillos,

Así cómo la gestión propia de los sprites... Son de verdad 79 sprites de 32x32 píxeles; pero no intentes cambiar el fotograma de todos los sprites a la vez, porque eso no es posible. xD

Para eso he escrito el gestor, para que no siempre sean dinámicos, unos pocos son estáticos, y otros va rotando entre dinámicos y pseudo-estaticos.

Hay un poquito más de ciencia en el engine, que he ido añadiendo; lo que viene por defecto en SGDK se te queda corto, al menos a los discípulos de DML y Anima
La maestría interior...

Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115

Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo

Avatar de Usuario
Mlake
Mensajes: 130
Registrado: 27 Mar 2019 19:54
Agradecido : 59 veces
Agradecimiento recibido: 260 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor Mlake » 18 Nov 2021 22:36

masteries escribió:
En los sistemas planares, para obtener el mejor rendimiento, has de pre-desplazar los gráficos; el skew vde los blitter tiene un precio, también en Amiga, y si multiplicas ese precio por X, pues mal...

Además de que las optimizadas instrucciones para el blitter, por cada fotograma de cada sprite, hace que todo ocupe mucho más

[...]


Grqcias por la respuesta.

¿En el ST el shifting y el masking no son gratis?

Avatar de Usuario
masteries
Mensajes: 970
Registrado: 30 May 2018 11:33
Ubicación: Espaciando
Agradecido : 130 veces
Agradecimiento recibido: 538 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor masteries » 18 Nov 2021 23:40

Mlake escribió:
masteries escribió:
En los sistemas planares, para obtener el mejor rendimiento, has de pre-desplazar los gráficos; el skew vde los blitter tiene un precio, también en Amiga, y si multiplicas ese precio por X, pues mal...

Además de que las optimizadas instrucciones para el blitter, por cada fotograma de cada sprite, hace que todo ocupe mucho más

[...]


Grqcias por la respuesta.

¿En el ST el shifting y el masking no son gratis?


Es que en ningún blitter son gratis, xD

Tienes que configurar el shifting y los masking deseados primero, y pueden ser distintos para cada línea del gráfico, tanto para el principio, medio o final del gráfico... y esos datos hay que escribirlos, cuanto menos escribas, mejor.

Cuando hay masking tiene que realizar la operación lógica, y eso le consume unos pocos ciclos; muchos menos que si lo hace una CPU, pero ahí están, es una máquina de estados...

Cómo crees qué se logran los 50 fps en el Metal Slug del STE, rascando ciclos de todas partes (compartiendo máscaras de inicio y final y dibujando el sprite con las líneas salteadas xD, qué locura eh?) y activando un modo en los que la parte media de un sprite puede medir 256 píxeles y no requiere máscara, ni la envías/configuras, sólo transfieres mediante DMA. Formato de sprites EMX2, como 3 veces más rápido que los sprites blitter comunes en STE o A500

Por cierto es un modo sólo disponible en el blitter de los STE, los MegaSTE y los Falcon. Los Amiga se ven limitados ahí,

A eso se le suma un algoritmo que recalcula lo que se debe limpiar y lo que no, y le sacas un rendimiento más propio de consolas

Tengo que hacer un video explicando todo esto, también muchas de éstas características nunca fueron documentadas por Atari, eso sí que es triste,
La maestría interior...

Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115

Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo

Avatar de Usuario
Mlake
Mensajes: 130
Registrado: 27 Mar 2019 19:54
Agradecido : 59 veces
Agradecimiento recibido: 260 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor Mlake » 19 Nov 2021 00:28

masteries escribió:
Es que en ningún blitter son gratis, xD

Tienes que configurar el shifting y los masking deseados primero, y pueden ser distintos para cada línea del gráfico, tanto para el principio, medio o final del gráfico... y esos datos hay que escribirlos, cuanto menos escribas, mejor.

Cuando hay masking tiene que realizar la operación lógica, y eso le consume unos pocos ciclos; muchos menos que si lo hace una CPU, pero ahí están, es una máquina de estados...

Cómo crees qué se logran los 50 fps en el Metal Slug del STE, rascando ciclos de todas partes (compartiendo máscaras de inicio y final y dibujando el sprite con las líneas salteadas xD, qué locura eh?) y activando un modo en los que la parte media de un sprite puede medir 256 píxeles y no requiere máscara, ni la envías/configuras, sólo transfieres mediante DMA. Formato de sprites EMX2, como 3 veces más rápido que los sprites blitter comunes en STE o A500

Por cierto es un modo sólo disponible en el blitter de los STE, los MegaSTE y los Falcon. Los Amiga se ven limitados ahí,

A eso se le suma un algoritmo que recalcula lo que se debe limpiar y lo que no, y le sacas un rendimiento más propio de consolas

Tengo que hacer un video explicando todo esto, también muchas de éstas características nunca fueron documentadas por Atari, eso sí que es triste,



Te refieres entonces a la "preparación" via CPU del blit, no del "bliteo" en si. Ahora me queda mas claro. Gracias

Es que hay algo que no me cuadraba:

“Cuando hay masking tiene que realizar la operación lógica, y eso le consume unos pocos ciclos; muchos menos que si lo hace una CPU, pero ahí están, es una máquina de estados..."

Mi comentario iba por ahi. En amiga el bliteo tarda lo mismo uses el shifit y el mask, o no.

Lo dicho. Muchas gracias y quedo pendiente de esa explicacion sore el bliter del ste.

Avatar de Usuario
explorer
Mensajes: 472
Registrado: 10 Ene 2016 18:43
Ubicación: Valladolid, España
Agradecido : 14 veces
Agradecimiento recibido: 453 veces
Contactar:

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor explorer » 19 Nov 2021 08:25

¿Hay algún código o documento donde explique el formato EMX2? La otra vez estuve mirando por los archivos del proyecto y no encontré mucho.

Avatar de Usuario
masteries
Mensajes: 970
Registrado: 30 May 2018 11:33
Ubicación: Espaciando
Agradecido : 130 veces
Agradecimiento recibido: 538 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor masteries » 19 Nov 2021 12:39

explorer escribió:¿Hay algún código o documento donde explique el formato EMX2? La otra vez estuve mirando por los archivos del proyecto y no encontré mucho.


Estoy preparando un vídeo, en el que también expondré otro formato, el SLAB;

éste incluso requiere atender una trap que surge la primera vez que intentas hacer que el blitter mezcle desplazamiento o shift con transferencias DMA; útil para sprites enormes sin usar ni configurar máscara alguna.

Si no se atiende la trap, te salen un porrón de bombas xD

Ahora bien, nunca he ido a ver en que consiste el código que resuelve la trap;
me he quedado con la explicación que me dió DML y con saber cómo usar este formato.
La maestría interior...

Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115

Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo

Avatar de Usuario
masteries
Mensajes: 970
Registrado: 30 May 2018 11:33
Ubicación: Espaciando
Agradecido : 130 veces
Agradecimiento recibido: 538 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor masteries » 24 Nov 2021 14:34

robotnik16 escribió:


Un update,

He conseguido gestionar en pantalla a la vez:

-Hasta 15 sprites de 32x32 píxeles (o 16 tiles de 8x8 píxeles), éstos comprenden los torsos de los soldados, chatarrilla volando, explosiones pequeñas, la bomba que lleva el avión, el cartelito de Go-> , y bastantes más

-Hasta 4 sprites más grandes, de 60 tiles cada uno (helicópteros,tanques o explosiones más grandes)

-Hasta 2 soldados de los exóticos: como los que llevan escudo, el del bazzoka, el que está encaramado a un árbol...

-El jugador y el HUD minimalista

-La piernas de los soldados, los disparos, las granadas, los proyectiles de mortero y los impactos en el suelo/agua de los disparos, están cargados de forma constante en la RAM de vídeo

-Y el frame buffer con el escenario ultradetallado, + 110 tiles para un scroll parallax


Y ya no cabe más,

Los sprites enormes como el Slug, comparten su espacio con 3 vehículos/explosiones grandes y los soldados poco comunes.
La maestría interior...

Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115

Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo

Avatar de Usuario
robotnik16
Mensajes: 68
Registrado: 22 Dic 2015 00:16
Agradecido : 5 veces
Agradecimiento recibido: 7 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor robotnik16 » 24 Nov 2021 21:38

masteries escribió:
robotnik16 escribió:


Un update,

He conseguido gestionar en pantalla a la vez:

-Hasta 15 sprites de 32x32 píxeles (o 16 tiles de 8x8 píxeles), éstos comprenden los torsos de los soldados, chatarrilla volando, explosiones pequeñas, la bomba que lleva el avión, el cartelito de Go-> , y bastantes más

-Hasta 4 sprites más grandes, de 60 tiles cada uno (helicópteros,tanques o explosiones más grandes)

-Hasta 2 soldados de los exóticos: como los que llevan escudo, el del bazzoka, el que está encaramado a un árbol...

-El jugador y el HUD minimalista

-La piernas de los soldados, los disparos, las granadas, los proyectiles de mortero y los impactos en el suelo/agua de los disparos, están cargados de forma constante en la RAM de vídeo

-Y el frame buffer con el escenario ultradetallado, + 110 tiles para un scroll parallax


Y ya no cabe más,

Los sprites enormes como el Slug, comparten su espacio con 3 vehículos/explosiones grandes y los soldados poco comunes.

Todo eso es el tope tolerable? O sea, sin que pete y haya festival de parpadeos y ralentizaciones?

Avatar de Usuario
masteries
Mensajes: 970
Registrado: 30 May 2018 11:33
Ubicación: Espaciando
Agradecido : 130 veces
Agradecimiento recibido: 538 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor masteries » 25 Nov 2021 12:28

robotnik16 escribió:
masteries escribió:
robotnik16 escribió:


Un update,

He conseguido gestionar en pantalla a la vez:

-Hasta 15 sprites de 32x32 píxeles (o 16 tiles de 8x8 píxeles), éstos comprenden los torsos de los soldados, chatarrilla volando, explosiones pequeñas, la bomba que lleva el avión, el cartelito de Go-> , y bastantes más

-Hasta 4 sprites más grandes, de 60 tiles cada uno (helicópteros,tanques o explosiones más grandes)

-Hasta 2 soldados de los exóticos: como los que llevan escudo, el del bazzoka, el que está encaramado a un árbol...

-El jugador y el HUD minimalista

-La piernas de los soldados, los disparos, las granadas, los proyectiles de mortero y los impactos en el suelo/agua de los disparos, están cargados de forma constante en la RAM de vídeo

-Y el frame buffer con el escenario ultradetallado, + 110 tiles para un scroll parallax


Y ya no cabe más,

Los sprites enormes como el Slug, comparten su espacio con 3 vehículos/explosiones grandes y los soldados poco comunes.

Todo eso es el tope tolerable? O sea, sin que pete y haya festival de parpadeos y ralentizaciones?


Más o menos ese es el límite en el que empiezas a notar que se cae a 49 - 48 cuadros por segundo... de todas formas, no cabe más en la VRAM (más de la mitad se la lleva el frame buffer del escenario con calidad Neo Geo).

Para que empiece a parpadear, bueno más bien para que notes que le faltan líneas a algunos sprites, tienes que ser muy burro; los 20 sprites por línea dan bastante de sí.

Vamos, que lo que se ve en el STE es posible en MD, en incluso más.
A excepción de que si quisieras sacar en pantalla dos super-jefes, tendrías que asegurarte antes de que no hay otras cosas por ahí pululando... no habría VRAM para dos jefazos y 5 soldados por ejemplo.


También todo es currárselo orientado a la plataforma, puedes hacer que cuando haya jefe, o te vayas a enfrentar a un jefazo; los tiles del escenario sean menos de 1000 (y no haya parallax, otros 110 tiles disponibles), y así puedas disponer de más VRAM.
La maestría interior...

Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115

Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo

Avatar de Usuario
amakuja
Mensajes: 269
Registrado: 01 Nov 2010 14:42
Ubicación: Santurce Antiguo
Agradecimiento recibido: 2 veces

Re: Empezando a portar Metal Slug de Atari STE a MegaDrive

Mensajepor amakuja » 29 Nov 2021 19:54

Fantástico trabajo. Yo lo podría probar también en everdrive a 50 y 60hz.

Saludos
El que nada emprendió, nada terminará.


Volver a “Consolas Clásicas”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado