Demo técnica de Street Fighter II para Neo Geo

[Jun] escribió:Sceptre_JLRB escribió:
Por cierto, como curiosidad, hay por ahí un Columns de MegaDrive convertido a Neo-Geo por el mítico Jeff Kurtz.


Muchas gracias por la info , voy a devorar todo el material que encuentre..

(https://www.youtube.com/watch?v=eojKmi3hmmg)


Sobre el Columns de MD en Neo-Geo, probé también la versión que tengo con el NeoSD y se veía la pantalla en verde. Lo conté en Neo-Geo.com, junto con bastantes homebrews que probé, y su creador, Jeff Kurtz (JMKurtz en Neo-Geo.com, modera allí), dice que ya ni se acuerda de dónde tiene la primera versión, pero que la perfeccionó con música, sonido y para que en hardware real los colores se mostraran correctamente. Igual le da por hacerla pública pronto...

Aquí un wiki con un listado de desarrollos homebrew (tipo demo, pruebas, cosas "sencillitas") en Neo-Geo:
https://wiki.neogeodev.org/index.php?ti ... w_software
En hardware real con NeoSD, las demos de intros con vídeo y música funcionan parcialmente, sólo el sonido, ya que el vídeo creo que usa la RAM para ir haciendo streaming desde ella, y esto aún no lo soporta el NeoSD (pero sus creadores dicen que es factible).

Como curiosidad, hay un australiano (el mítico tcdev, en Neo-Geo.com) que tiene una versión del Donkey Kong arcade para Neo-Geo, y está trabajando en más conversiones arcade antiguas, que dice que mostrará más adelante porque quiere ser él el primero en probarlas en hardware real.

Personalmente, yo con lo que me cagaría las patas abajo y arriba sería si viera algún día un Sonic en Neo-Geo... [babas]
Sceptre_JLRB, muchísimas gracias por los enlaces, desconocia que la escena en Neo Geo fuese tan nutrida..

Sceptre_JLRB escribió:Como curiosidad, hay un australiano (el mítico tcdev, en Neo-Geo.com) que tiene una versión del Donkey Kong arcade para Neo-Geo, y está trabajando en más conversiones arcade antiguas, que dice que mostrará más adelante porque quiere ser él el primero en probarlas en hardware real.


Abre muchas esperanzas a ver "de todo" en Neo Geo, desde un GetStar, Vigilante, R-Type o Dragonninja, hasta títulos 2D mucho más recientes... estos son más interesantes desde el punto 'salsero' (morboso), porque habría que hacer bastantes cambios para adaptarlos a la máquina.

Sceptre_JLRB escribió:Personalmente, yo con lo que me cagaría las patas abajo y arriba sería si viera algún día un Sonic en Neo-Geo..


Sin duda yo tambien :) aunque clásicos y juegos "modernos" aparte, los dos juegos que más me gustarían ver son Virtua Racing y Killer Instinc, y no es por ser cabroncete con el sistema, ya sé que son dos títulos diametralmente opuestos a la forma de trabajar del sistema, pero precisamente por eso, querría ver hasta qué punto volcándose en la programación una Neo Geo es capaz de tener su propia versión adaptada a las circunstancias, y qué cambios habrían de producirse para llevar estos juegos a buen puerto.



Saludos
Señor Ventura escribió:
Manveru Ainu escribió:
chinitosoccer escribió:Neogeo no tiene la potencia suficiente para mover la mayoría de títulos de CPS1, y menos Sreet Fighter 2.
El estrifa de CPS1 lo puede mover hasta la Mega Drive (quitando el número de planos y de colores), no digamos la NeoGeo.


Este es el argumento.

Con 7,22KB por frame, podrías acercarte tanto al arcade original, que asusta.
Yo creo que en el tema personajes se podría hacer un 1:1. Hice una vez una prueba y aguantaba 2 Ryus cambiando de frame a la vez sin problema. Además sobraba un tiempo respetable, había margen de maniobra de optimización y no usé tiempo fuera del VBlank para mandar tiles. La duda sería ver si aguantaría tochos tipo Sagat, Zangief o Dalshim. Yo creo que estaría justo al límite. Eso en NTSC claro, en PAL la mega iría sobradísima para mover 4 personajes jejeje.
Manveru Ainu escribió:Yo creo que en el tema personajes se podría hacer un 1:1. Hice una vez una prueba y aguantaba 2 Ryus cambiando de frame a la vez sin problema. Además sobraba un tiempo respetable, había margen de maniobra de optimización y no usé tiempo fuera del VBlank para mandar tiles. La duda sería ver si aguantaría tochos tipo Sagat, Zangief o Dalshim. Yo creo que estaría justo al límite. Eso en NTSC claro, en PAL la mega iría sobradísima para mover 4 personajes jejeje.


Se puede calcular. Creo que mencionaste que podías actualizar 200 tiles por frame dentro del VBLANK, y dos zangiefs/Bison/Sagat/Balrog no necesitan 100 tiles ni de coñísima.

A lo mejor estoy pasando algo por alto, pero siempre que estés dentro de esos 200 tiles, podrías meter animaciones a 1 TIC perfectamente (hablamos de casos como el street fighter 2, donde apenas tienes que compartir ancho de banda para algunos efectos de sonido, y los escenarios ya están metidos dentro de la VRAM).
Señor Ventura escribió:
Manveru Ainu escribió:Yo creo que en el tema personajes se podría hacer un 1:1. Hice una vez una prueba y aguantaba 2 Ryus cambiando de frame a la vez sin problema. Además sobraba un tiempo respetable, había margen de maniobra de optimización y no usé tiempo fuera del VBlank para mandar tiles. La duda sería ver si aguantaría tochos tipo Sagat, Zangief o Dalshim. Yo creo que estaría justo al límite. Eso en NTSC claro, en PAL la mega iría sobradísima para mover 4 personajes jejeje.


Se puede calcular. Creo que mencionaste que podías actualizar 200 tiles por frame dentro del VBLANK, y dos zangiefs/Bison/Sagat/Balrog no necesitan 100 tiles ni de coñísima.

A lo mejor estoy pasando algo por alto, pero siempre que estés dentro de esos 200 tiles, podrías meter animaciones a 1 TIC perfectamente (hablamos de casos como el street fighter 2, donde apenas tienes que compartir ancho de banda para algunos efectos de sonido, y los escenarios ya están metidos dentro de la VRAM).
Sí, unos 200 suelo poner como cantidad segura, pero algo más puede entrar. El ancho total en el VBlank da para 235 tiles, pero la gestión del VINT consume un poco de tiempo. Habría que mirar además el caso concreto en una partida del estrifa, si hay más cosas funcionando en el VINT como el uso del PSG o algo así.

Pongamos así a ojo de buen cubero que se pudieran mandar 210 tiles. Eso daría para mandar un bloque de memoria a VRAM de 210 tiles, pero el uso del DMA requiere un tiempo también. Al ser 2 luchadores, tendríamos que mandar 2 bloques y no uno, y eso resta un poco de tiempo también. En vez de 1 bloque de 210 tiles o 2 de 105, solo podemos mandar 2 de 100 por ejemplo

Los luchadores tochos pueden superar fácil los 100 tiles en algunos de sus frames. Aparte de esos, miedo me da Dhalsim cuando estira brazos y piernas... jejeje. Espero que reciclen sprites, hacer buenas apps es esencial. Habría que usar el tiempo fuera del VBlank. El estrifa hace poco uso del 68k y demás y necesita poco proceso en el "main". Lo único es tener cuidado que no se moleste con las interrupciones horizontales para tema añadir colorido a la Mega o para simular planos extra.
Manveru Ainu escribió:Sí, unos 200 suelo poner como cantidad segura, pero algo más puede entrar. El ancho total en el VBlank da para 235 tiles, pero la gestión del VINT consume un poco de tiempo. Habría que mirar además el caso concreto en una partida del estrifa, si hay más cosas funcionando en el VINT como el uso del PSG o algo así.


Si no hubiese tiempo de proceso para que todo quedara encuadrado dentro del frame, siempre puedes quitar algún que otro scanline para ganar algunos ciclos... pero, ¿cada cuántos frames los sprites actualizan los tiles?, tiene que dar tiempo de sobra.

Los problemas que están teniendo con el port del street fighter 2 de CPS1, no vienen por el tamaño y animación de los personajes, parece ser, sino porque quieren usar los nuevos drivers de sonido para tener un huevo de PCM's en varios canales.

Manveru Ainu escribió:Pongamos así a ojo de buen cubero que se pudieran mandar 210 tiles. Eso daría para mandar un bloque de memoria a VRAM de 210 tiles, pero el uso del DMA requiere un tiempo también. Al ser 2 luchadores, tendríamos que mandar 2 bloques y no uno, y eso resta un poco de tiempo también. En vez de 1 bloque de 210 tiles o 2 de 105, solo podemos mandar 2 de 100 por ejemplo


Y hablaríamos de que estaría muy justito solo si quieres cambiar las tiles a cada frame, a 2 TICS te da tiempo seguro, y ya es una pedazo de animación.

Con todo, personajes mas pequeños que un zangief si podrían animarse perfectamente a 1 TIC.

Manveru Ainu escribió:Los luchadores tochos pueden superar fácil los 100 tiles en algunos de sus frames. Aparte de esos, miedo me da Dhalsim cuando estira brazos y piernas... jejeje. Espero que reciclen sprites, hacer buenas apps es esencial. Habría que usar el tiempo fuera del VBlank. El estrifa hace poco uso del 68k y demás y necesita poco proceso en el "main". Lo único es tener cuidado que no se moleste con las interrupciones horizontales para tema añadir colorido a la Mega o para simular planos extra.


Tal vez estirar los brazos y piernas pueda hacerse copiando y pegando varias veces las tiles que ya están en VRAM, así te ahorras tener que mandar mas por DMA.

Sobre lo de las interrupciones horizontales, esa sería una ventaja en la snes, ya que se encarga el HDMA paralelamente, sin molestar a nadie.
@Señor Ventura Sí claro, por eso decía que fuera del VBlank se puede mandar tiles extra. Quizás 50, 60, 70, depende de la carga de procesos.

La idea, la mía al menos aunque no sea de momento un proyecto real, es cambiar de frame al tick. Si se hace con un búffer retrasando el cambio de frame no hay problema, pero ya es un parche que no me molaría.

¿El dríver de sonido te refieres a NeoGeo o Mega? Para la Mega ya hay uno hace un par de años que saca 4 PCMs, para el estrifa de sobra creo yo jejeje. De hecho Stef, su autor, subió roms del SF2 y el SSF2 parcheados con el driver nuevo

Sobre lo de copiar la VRAM, el modo DMA de VRAM copy no se suele usar, no parece tener mucha utilidad (por lo visto se pensó para el modo a 128kb de VRAM). Es igual prácticamente de rápido que copiar desde ROM/RAM. Decía lo de copiar por lo de reciclar tiles para varios sprites iguales, hacer una app que detecte y minimice el número de tiles por frame al máximo.
Manveru Ainu escribió:¿El dríver de sonido te refieres a NeoGeo o Mega? Para la Mega ya hay uno hace un par de años que saca 4 PCMs, para el estrifa de sobra creo yo jejeje. De hecho Stef, su autor, subió roms del SF2 y el SSF2 parcheados con el driver nuevo


Si, me refiero a la megadrive. Se hablaba de usar varios canales PCM para meter muchos sample para música y voces simultáneas, y eso ya se come el ancho de banda hasta el punto de hacer peligrar el respetar que los personas y sus animaciones sean como las del juego original.

Manveru Ainu escribió:Sobre lo de copiar la VRAM, el modo DMA de VRAM copy no se suele usar, no parece tener mucha utilidad (por lo visto se pensó para el modo a 128kb de VRAM). Es igual prácticamente de rápido que copiar desde ROM/RAM. Decía lo de copiar por lo de reciclar tiles para varios sprites iguales, hacer una app que detecte y minimice el número de tiles por frame al máximo.


Me referá a que cuando los brazos de dhalsim son muy largos, en vez de que cada tile haya sido transferido desde la ROM, se utilice ese mismo tile varias veces, así evitas tener que transferir un bloque extra de tiles por DMA.

Si hablamos de 15 o 20 tiles extras, tal vez no sea tan mala idea, aunque dudo que aún así suponga un problema.
@Señor Ventura no pero con el driver XGM el sonido lo gestiona el Z80 al 100%, no es problema. Solo el tema sonidos con el PSG va aparte, aunque hace tiempo que lo toqué e igual ya no es así. Es cierto que hablaban algo de usar más canales para samples, usar el FM y tal pero no he leído nada por ahora de meterlo en el driver. Es ciertoque el XGM tiene cosas buenas y cosas que limitan, pero bueno particularmente al sonido sería a lo último a lo que le daría prioridad.

Lo de los tiles repes hablamos de lo mismo, de reciclar sprites repetidos con sus tiles repetidos. Los sprites en mega tienen que tener todos sus tiles consecutivos así que sólo se pueden reciclar si son sprites iguales, o uno es "subsprite" de otro. Una buena app puede ahorrar unos cuantos tiles con eso a costa de incrementar el número de sprites de cada luchador. En principio 80 sprites sobran para un estrifa, excepto si hay que tirar de ellos para simular planos claro...
Manveru Ainu escribió:@Señor Ventura no pero con el driver XGM el sonido lo gestiona el Z80 al 100%, no es problema. Solo el tema sonidos con el PSG va aparte, aunque hace tiempo que lo toqué e igual ya no es así. Es cierto que hablaban algo de usar más canales para samples, usar el FM y tal pero no he leído nada por ahora de meterlo en el driver. Es ciertoque el XGM tiene cosas buenas y cosas que limitan, pero bueno particularmente al sonido sería a lo último a lo que le daría prioridad.


Esa es la cuestión, que un sample no pesa precisamente poco, y al transferirlo por DMA, le quita espacio a los tiles.

Según oí, tenían problemas consiguiendo el mismo tamaño y animaciones de la versión CPS1 por culpa de la tralla que exigía el sonido con varios canales PCM, y tal.
@Señor Ventura Los samples no tienen que ocupar tanto. Cuando son sonidos y tal sí que ocupan más por tema duración, pero en la música no deben ocupar tanto. En Antarex hemos tenido ese debate de cuánto ocupan los samples y tal y parece que no es para tanto cuando están bien escogidos para la música.

Supongo que será otro driver porque el XGM libera al 68k totalmente del sonido. Lo único que hay que controlar es no pasarse con el DMA en el VBlank porque durante el DMA el z80 no debe acceder al 68k, y si el VBlank acaba antes de acabar el DMA, el sonido se entrecortará.
60 respuestas
1, 2