Cuestiones técnicas sobre Neo Geo AES

Wenas. :)

Pues me gustaría aclarar una serie de dudas que tengo sobre mi sistema favorito a ver si alguien puede aclarármelas.

Antes de entrar en las cuestiones, agradecería que alguien me definiera lo que es un layer y un sprite y en que se diferencian.

Gracias. ;)

Bueno, a parte de esto aquí van mis dudas.

Bien, pues según tengo entendido la Neo Geo puede escalar sprites, osea aumentar y disminuir su tamaño ¿no?. La cuestión es, ¿puede también rotarlos?, esto puede parecer una tontería, pero creo que la capacidad de escalarlos o hacer morphing no implica la rotación. Yo en principio pienso que sí puede, pero como prueba o ejemplo solo puedo aportar este video del Pulstar.

http://www.youtube.com/watch?v=S-T4ezXN-4I

En él puede verse al principio, en la primera fase, lo que parecen sprites en forma de restos de basura espacial, los cuales parece que rotan, y digo parece porque no estoy seguro de si realmente lo hacen. Como los gráficos de este juego son todo a base de modelados prerenderizados, no si un sprite prerenderizado tiene esactamente las mismas propiedades y características de un sprite normal, tal vez el ejemplo que pongo no sirva como ejemplo de rotación. Me gustaría que alguien con conocimientos reales de esto me lo aclarara.

Aquí va otra.

¿Puede la Neo Geo trabajar con poligonos reales?. Esta cuestión se me ocurrió a raiz del tema que se abrió en clásicas preguntando lo mismo pero sobre la MegaDrive. Respecto a presentar ejemplos o pruebas, solo se me ocurren recuperar el video del Pulstar y poner de ejemplo el modelado 3D que se ve durante unos segundos en la pantalla de "press star" del juego. Puede verse claramente un modelo 3D de la nave protagonista, rotando y desapareciendo de la pantalla. Ahora, no se si el ejemplo sirve o yo estoy equivocado. Que alguien me lo aclare please.

Otra más.

También tengo entendido que Neo Geo, debido a su diseño y arquitectura no puede manejar layers, su capacidad grafica 2D se basa totalmente en sprites. Ahora bien, creo haber leído hace tiempo en este foro, no recuerdo a quien, pero se decía que aunque Neo Geo tiene que usar sprites para hacer fondos, lo que implica un derroche de recursos gráficos. Muchos más recursos que usando layers, esto, como punto positivo implicaba que podían hacerse fondos mucho más complejos y mejor animados de lo que se podría usando layers. ¿Esto realmente es así?, o estoy de nuevo equivocado. Agradeceré todas las respuestas constructivas para resolver mis dudas.

Espero vuestras respuestas.

Gracias a todos y un saludo. ;)
Si me equivoco que me corrijan :p

En fondo es un LAYER (o varios) y los personajes son SPRITES
Imagen
Bien, pues según tengo entendido la Neo Geo puede escalar sprites, osea aumentar y disminuir su tamaño ¿no?. La cuestión es, ¿puede también rotarlos?


No,toda rotacion q veas, es un sprite pre-hecho

¿Puede la Neo Geo trabajar con poligonos reales?. Esta cuestión se me ocurrió a raiz del tema que se abrió en clásicas preguntando lo mismo pero sobre la MegaDrive. Respecto a presentar ejemplos o pruebas, solo se me ocurren recuperar el video del Pulstar y poner de ejemplo el modelado 3D que se ve durante unos segundos en la pantalla de "press star" del juego. Puede verse claramente un modelo 3D de la nave protagonista, rotando y desapareciendo de la pantalla. Ahora, no se si el ejemplo sirve o yo estoy equivocado. Que alguien me lo aclare please.


Todo lo q veas en neogeo que parezca 3D, son animaciones prerenderizadas

Para calcular 3D, se necesita de un CPU que haga los calculos, y la neogeo, al igual que la MD, la NES, o una calculadora, tiene uno

Ahora, el problema es mostrarlo en pantalla. La neogeo solo puede representar sprites, no pixel individuales, asi que aunque el CPU pueda calcular 3D, el VPD te impide mostrar el resultado en pantalla. La neogeo no puede "dibujar" en pantalla


También tengo entendido que Neo Geo, debido a su diseño y arquitectura no puede manejar layers, su capacidad grafica 2D se basa totalmente en sprites. Ahora bien, creo haber leído hace tiempo en este foro, no recuerdo a quien, pero se decía que aunque Neo Geo tiene que usar sprites para hacer fondos, lo que implica un derroche de recursos gráficos. Muchos más recursos que usando layers, esto, como punto positivo implicaba que podían hacerse fondos mucho más complejos y mejor animados de lo que se podría usando layers. ¿Esto realmente es así?, o estoy de nuevo equivocado. Agradeceré todas las respuestas constructivas para resolver mis dudas.



Si la neogeo es una derrochadora de rom. En realidad a mi gusto, no tiene punto positivo

No confundas layers con tiles. Un layer es un plano generado por tiles (o sprites), la MD por ejemplo, tiene 2+1 fijos, y la neogeo los genera con sprites

La forma de trabajar de la MD por ejemplo, es muchisimo mas simple y mejor que el de la neogeo, simplemente que tiene un vdp mas limitado
theelf, el ejemplo que he puesto es valido o está mal, lo digo mas que nada para no confundir a nadie.
A ver, un layer es una capa fija que no afecta al funcionamiento de las restantes, por ejemplo el fondo de un escenario de un título de lucha... Permanece estable y no afecta en ningún momento a los sprites que "bailen" sobre el mismo.

Sprites son las imágenes construidas directamente en un ordenador. Desde un simple puntero del ratón a un complicado personaje de VideoJuego. Sprites son el Sprite en movimiento, ya puede ser la animación del personaje caminando o un simple puñetazo o llegando a un Desperation Move con decenas de sprites consecutivos en pantalla...

Hoy en día los Sprites ya pueden ser dibujados a mano y pasarlos a ordenador, como el Art of Fighting 3 o KOF XII...

Neo Geo por supuesto que puede rotar Sprites, si no sería imposible ver personajes de KOF girados hacia abajo como vemos en movimientos especiales o agarradas o, como podemos ver en muchos Shooters...

Neo Geo no trabaja con Polígonos reales, aunque al ver títulos como Shock Troopers 2 y Viewpoint podais llegar a esa conclusión...

Un Layer es casi como un simple Sprite pero que actúa como capa de fondo, así que...

Espero haberte ayudado con mis conocimientos mínimos sobre el sistema, sialguien controla más que yo no dudo en que tendrá el tiempo necesario para responderte...

Saludos!
theelf, el ejemplo que he puesto es valido o está mal, lo digo mas que nada para no confundir a nadie.


El Street Fighter 1, usaba la placa de capcom llamada 68000 Based (un hardware es similar a una Megadrive), justo cuando capcom estaba por sacar la CPS1 asi que supongo que usaba planos+sprites para representar al juego

En este caso, el ejemplo correcto seria, uno o mas planos de scroll fondo + sprites, creo lo q dijistes tu


Neo Geo por supuesto que puede rotar Sprites, si no sería imposible ver personajes de KOF girados hacia abajo como vemos en movimientos especiales o agarradas o, como podemos ver en muchos Shooters...


Lo has leido de algun documento tecnico? es que cuando estuve programando para neogeo, no encontre ninguna documentacion de rotacion en el VDP

Sobre lo de girar un sprite en 90 grados por ejemplo, lo mismo lo hace la MD, pero no es rotacion, porque no se hace pixel a pixel



Leyendo un poco, creo q hay alguna confucion entre layers y planos de scroll, la neogeo no tiene planos de scroll, pero si una capa fija de 40x32 tiles, que es la famosa capa de 8x8

Se podria decir que el plano window de la MD, es lo mas similar a esta capa de la neogeo
Gracias a todos por vuestras rápidas respuestas. Ya voy aclarando algunos conceptos. ;)

Ahora me doy cuenta que confundía layers con tiles. ¿Entonces, existe algún tipo de ventaja en crear un layer con sprites en lugar de tiles?. Es que creo que fuiste tú, theelf, el que comentó lo de que un layer hecho con sprites puede ser más complejo y detallado que uno hecho con tiles. ¿Es así?. Y otra cosa, ¿porqué hacer un layer con sprites supone un derroche de recursos?.

Gracias. ;)
Lo más seguro yo confunda conceptos, me baso en que puede rotar sprites por ejemplo en las secuencias en las que en KOF los personajes al caer se ve como un mismo sprite pasa de estar de 90º a 45º y muy cerca del suelo pasar a unos 10º....

O por ejemplo en las animaciones en las quelos personajes ruedan por el suelo, parece el mismo sprite siendo rotado...

Pero vamos que lo más seguro tu tengas razón pues dices haber programado en dicho sistema cuando yo nunca lo he hecho y, la esperiencia es la que vale...

Saludos!

Edito: En el tema de Layers mediante Sprites, será un derroche y todo o que querais, pero si los resultados son tan óptimos como el escenario de Genjuro en Samurai Spirits 2, que se quite la simplicidad que da MD...

Además, qué más da que haya derroche? Si los cartuchos iban a ser igualmente caros jajaja...

Lo malo sería para los usuarios de Neo Geo CD... :S
Gracias a todos por vuestras rápidas respuestas. Ya voy aclarando algunos conceptos. ;)

Ahora me doy cuenta que confundía layers con tiles. ¿Entonces, existe algún tipo de ventaja en crear un layer con sprites en lugar de tiles?. Es que creo que fuiste tú, theelf, el que comentó lo de que un layer hecho con sprites puede ser más complejo y detallado que uno hecho con tiles. ¿Es así?. Y otra cosa, ¿porqué hacer un layer con sprites supone un derroche de recursos?.

Gracias. ;)


Que llenes la pantalla con tiles o sprites, es lo mismo.

La diferencia, es que en caso de la NeoGeo, puedes llenar la pantalla de sprites diferentes sin saturar la vram

En MD por ejemplo, tienes q tener en cuenta que tienes un maximo de 1340 tiles de 8x8, o sea, que llenar una pantalla de 320x224 te sale a 1120 tiles, el 85% del total de recursos

Por eso, se recurre a repetir tiles, para bajar el consumo de vram, de ahi viene, lo que te decia, que en neogeo puedes tener mas detalles

Ahora, si no te importa gastar el 85% de la vram en el fondo, podras representar lo mismo en MD que en NG, uses tiles o sprites

La unica diferencia es que la MD normalmente usa un pelin mas de resolucion que NeoGeo, 56 tiles mas


Lo más seguro yo confunda conceptos, me baso en que puede rotar sprites por ejemplo en las secuencias en las que en KOF los personajes al caer se ve como un mismo sprite pasa de estar de 90º a 45º y muy cerca del suelo pasar a unos 10º....


Yo diria, que el VDP rota a 90/180/270 grados, y cualquier otro grado, es un sprite, no tiempo real


Por ejemplo, para generar rotacion en Megadrive, solo hay q dibujar un sprite, el de 45 grados, luego rotarlo por hardware e intercalarlo con el normal.

Imagino q lo mismo en NG, al menos es lo q hice yo en su momento



Cuando estaba aprendiendo a programar para NeoGeo me lei 2 o 3 veces esta guia, la recomiendo.

http://arcadedev.emuvibes.com/documents/neogeo_spex.zip


Creo q con esa guia y un compilador, no necesite mas, asi q es bastante completa si mal no recuerdo
theelf escribió:Que llenes la pantalla con tiles o sprites, es lo mismo.

La diferencia, es que en caso de la NeoGeo, puedes llenar la pantalla de sprites diferentes sin saturar la vram


OK, entonces ¿porqué en la NG la vram no se satura aunque llenes toda la pantalla de sprites?, ¿es por sus cartuchos que actuan como extensiones de la ram?. Por cierto, ¿en que lenguajes de programación se trabaja en la Neo Geo?, ¿ensamblador, C, C++, alguno propio...?

Saludos. ;)
OK, entonces ¿porqué en la NG la vram no se satura aunque llenes toda la pantalla de sprites?, ¿es por sus cartuchos que actuan como extensiones de la ram?. Por cierto, ¿en que lenguajes de programación se trabaja en la Neo Geo?, ¿ensamblador, C, C++, alguno propio...?


mm..como lo explico, para no escribir mucho.

Lo normal es que la MD por ejemplo, dibuje todo un escenario completo y lo carge en vram

y la neogeo, solo dibuja la pantalla visible con frajas de 16x224 pixeles, y cuando tiene q hacer scroll, dibuja una nueva franja, eliminando la antigua


Pero el mismo metodo se puede aplicar en megadrive si quieres, es mas, en el ejemplo del metal slug que programe en megadrive, use la misma forma de dibujar en pantalla de la neogeo


Sobre los compiladores, creo q hay de ASM y C
liondegrans escribió:OK, entonces ¿porqué en la NG la vram no se satura aunque llenes toda la pantalla de sprites?. Por cierto, ¿en que lenguajes de programación se trabaja en la Neo Geo?, ¿ensamblador, C, C++, alguno propio...?


ASM para las funciones de bajo nivel y con mucha suerte C para el resto. En general montaban todas las librerias en ASM y luego llaman las rutinas desde C y/o algún lenguaje de alto nivel propietario.

Usar C++ o cualquier otro lenguaje OOP en un 68k... se complica. :D
ASM para las funciones de bajo nivel y con mucha suerte C para el resto. En general montaban todas las librerias en ASM y luego llaman las rutinas desde C y/o algún lenguaje de alto nivel propietario.

Usar C++ o cualquier otro lenguaje OOP en un 68k... se complica. :D


Bueno, en general programo en Basic para 68k y va de marabilla
theelf escribió:Bueno, en general programo en Basic para 68k y va de marabilla


Y va bien porque desde BASIC estas llamando rutinas y librerías escritas a mas bajo nivel. De hecho los interpretes BASIC suelen estar escritos en C y los mas antiguos (que venían embebidos en las ROMs de los ordenadores) estaban escritos en ASM.

Supongo en SNK harían igual que tú, quizás en vez de Basic usarían algún DSL propietario especializado en el tipo de juego que desarrollaban.
13 respuestas