Mega Final Fight en MegaDrive!

En cuanto Mauro termine que se ponga con el Captain Commando, o una conversión no chinosa decente del Cadillacs and dinosaurs o mejorar la del punisher....por soñar...
Papitxulo escribió:
VEGASFII escribió:
Gelion escribió:
Joven?? Mauro tiene pinta de pasar los 50 en la foto de perfil. Además, dudo que alguien, por ejemplo de mi edad, guardase ese cariño a Final Fight...


Mauro es joven e inmortal hasta con marcapasos. [fumando]

Nuevo vídeo:


Parece que el juego está quedando bastante bien, al menos visualmente. Eso sí, me parece raro que no se hable de las evidentes desapariciones de sprites cuando se juntan cinco enemigos en pantalla. A mí personalmente no me parece un problema, pero en otros casos, como el del hack de Final Fight 2 es algo sobre lo que recuerdo que se habló bastante en el subforo.


Hasta que no tengamos otra demo jugable supongo que no le podremos sacar más fácilmente los "defectos". Pero vamos, a mí me encanta cómo está quedando.
O´Neill escribió:A mejorado mucho se lo esta currando


Jamás pensé que podría a llegar a leer esto de ti...
Vareland escribió:
O´Neill escribió:A mejorado mucho se lo esta currando


Jamás pensé que podría a llegar a leer esto de ti...

Tratándose de unil, yo tampoco. Me esperaba más faltas de ortografía en 7 palabras…
Cuando algo está bien hecho,se dice.
Otra cosa es que haya gente unidireccional,que solo piensa "estás conmigo o contra mi".Como el balón de oro de este año.
@mcfly haci e, pero los FRS no entienden eso.
mcfly escribió:Cuando algo está bien hecho,se dice.
Otra cosa es que haya gente unidireccional,que solo piensa "estás conmigo o contra mi".Como el balón de oro de este año.

100% de acuerdo. Los peores, los que van de "neutros" y huelen a leguas...
yamauchi escribió:
mcfly escribió:Cuando algo está bien hecho,se dice.
Otra cosa es que haya gente unidireccional,que solo piensa "estás conmigo o contra mi".Como el balón de oro de este año.

100% de acuerdo. Los peores, los que van de "neutros" y huelen a leguas...

Si dices por mi lo de neutro,vas muy equivocado.
Yo no soy neutro ni por asomo.Pero si hay que reconocer algo,no tengo problema.
No puedo pensar lo mismo de otros

O´Neill escribió:@mcfly haci e, pero los FRS no entienden eso.

Que te voy a contar.
mcfly escribió:
yamauchi escribió:
mcfly escribió:Cuando algo está bien hecho,se dice.
Otra cosa es que haya gente unidireccional,que solo piensa "estás conmigo o contra mi".Como el balón de oro de este año.

100% de acuerdo. Los peores, los que van de "neutros" y huelen a leguas...

Si dices por mi lo de neutro,vas muy equivocado.
Yo no soy neutro ni por asomo.Pero si hay que reconocer algo,no tengo problema.
No puedo pensar lo mismo de otros

O´Neill escribió:@mcfly haci e, pero los FRS no entienden eso.

Que te voy a contar.

Giño giño...
yamauchi escribió:
mcfly escribió:
yamauchi escribió:100% de acuerdo. Los peores, los que van de "neutros" y huelen a leguas...

Si dices por mi lo de neutro,vas muy equivocado.
Yo no soy neutro ni por asomo.Pero si hay que reconocer algo,no tengo problema.
No puedo pensar lo mismo de otros

O´Neill escribió:@mcfly haci e, pero los FRS no entienden eso.

Que te voy a contar.

Giño giño...

Darkness falls across the land, the midnight hour is close at hand, creatures crawl in search of blood, to terrorize y'all's neighborhood!
Técnicamente impecable.

Más allá de la jugabilidad que puede que haya cosas que no cuadren.. creo que da igual ya.

Es una pasada ver esto.

Por pedir? Modo 3 players.

😎
O modo 4 players VS con arenas, cada escenario estático en una localización.
Ufff Me he puesto cachondo
(mensaje borrado)
A mi me parece increible que ahora mismo con este port la Mega esté moviendo más personajes simultaneos que la X68000.

Eso si yo intentaria controlar un poco esos parpadeos que en vez de parpadear el personaje principal por ejemplo lo hagan los enemigos o incluso aun mejor los sprites cuando están en el suelo.

Yo por lo que he visto estan todas las animaciones, tal vez yo hubiera recortado al estilo SNES o tal vez un poco menos para enviar ralentizaciones, pero bueno Mauro está haciendo un buen trabajo.

Un Saludo.
@naxeras hablo de recuerdos del pelo largo, pero creo que en SNES se ralentizaba también y, creo que en el arcade había momentos en que podía también ralentizarse algo.
Hay un método, pero de seguro tiene que ser costoso.

Cada personaje tiene una prioridad, y por lo tanto sus sprites. Cuando se precalcula que el límite por línea va a ser superado, se hacen desaparecer los sprites de los personajes que están mas por detrás que el resto, y así evitas unos parpadeos generalizados.

Lo mejor sería identificar que sprites de cualquier personaje han sido completamente tapados, frame a frame, y no dibujarlos, pero este es muy bestia. Sin embargo, es uno de los pocos modos en que un chip de apoyo permitiría compensar limitaciones de vídeo, desde que es posible puentear todo excepto el vdp.

Yo me lo plantearía. Generalmente cuando mas se parpadea es cuando están tumbados, que es justo cuando mas se apilan, y mas permitiría usar este truco sin que se note.

Es mas, le daría un margen, y en lugar de no dibujar los sprites cuando estén 100% ocultos, omitiría el dibujado cuando lo estuviesen al 75%.

El método es sencillo de implementar, aunque complejo para estas cpus. Se determina cada inicio y fin de cada coordenada leyendo la posición X e Y de la tabla OAM (contando con que se pueda hacer eso), y se compara con las del resto de sprites de prioridades superiores.

Si coincide, se elimina el sprite de menos prioridad, y si no, se mantiene.

Si no puedes leer coordenadas de la tabla de atributos de los sprites, cada vez que toque especificar la posición de uno, se interpreta por duplicado en una base de datos de la ram (un buffer de coordenadas, vamos), y desde ahí se trabaja directamente.

Sería un bit-x buffer de la OAM, el equivalente a un Z-buffer de sistemas 3D xD

Así, a groso modo.
Señor Ventura escribió:Hay un método, pero de seguro tiene que ser costoso.

Cada personaje tiene una prioridad, y por lo tanto sus sprites. Cuando se precalcula que el límite por línea va a ser superado, se hacen desaparecer los sprites de los personajes que están mas por detrás que el resto, y así evitas unos parpadeos generalizados.

Lo mejor sería identificar que sprites de cualquier personaje han sido completamente tapados, frame a frame, y no dibujarlos, pero este es muy bestia. Sin embargo, es uno de los pocos modos en que un chip de apoyo permitiría compensar limitaciones de vídeo, desde que es posible puentear todo excepto el vdp.

Yo me lo plantearía. Generalmente cuando mas se parpadea es cuando están tumbados, que es justo cuando mas se apilan, y mas permitiría usar este truco sin que se note.

Es mas, le daría un margen, y en lugar de no dibujar los sprites cuando estén 100% ocultos, omitiría el dibujado cuando lo estuviesen al 75%.

El método es sencillo de implementar, aunque complejo para estas cpus. Se determina cada inicio y fin de cada coordenada leyendo la posición X e Y de la tabla OAM (contando con que se pueda hacer eso), y se compara con las del resto de sprites de prioridades superiores.

Si coincide, se elimina el sprite de menos prioridad, y si no, se mantiene.

Si no puedes leer coordenadas de la tabla de atributos de los sprites, cada vez que toque especificar la posición de uno, se interpreta por duplicado en una base de datos de la ram (un buffer de coordenadas, vamos), y desde ahí se trabaja directamente.

Sería un bit-x buffer de la OAM, el equivalente a un Z-buffer de sistemas 3D xD

Así, a groso modo.


Pero haría falta inventarse ese chip de apoyo, en MD no existen de la época para apoyarse en uno. Además el objetivo de Mauro era probar que MD pudo tener este juego sin el addonCD, si cambiamos el addonCD por un coprocesador estamos en la misma. Para eso directamente hacer un port al 32X.
Hola a todos:

Primero, quiero agradecer todos los comentarios y el reconocimiento a mi trabajo.

Perdón por mi ausencia, pero realmente tuve que alejarme un tiempo para cuidar de mi salud, que se ha ido deteriorando desde hace 3 años (incluso antes de empezar FFMD ya no gozaba de buena salud). Pensaba que era estrés, burnout, COVID (me contagié 6 veces), dengue (me dio 2 veces), y solo me empeoraba, hasta que después de varios exámenes descubrí un bloqueo cardíaco que me obligó a colocar un marcapasos. Todavía necesito hacer otros exámenes para ajustar mis medicamentos, ya que también podría tener insuficiencia cardíaca.

Viéndome en esta situación complicada, entregué los códigos fuente de todo lo que ya he hecho a Master Linkuei (Paulo Ferreira), avisándole que si algo me pasaba, él u otra persona podrían hacer lo que quisieran, dejándolo a su criterio.

De todas formas, sigo por aquí y logré encontrar algo de tiempo para programar y avanzar en el juego durante casi 20 días, que es la suma de mis vacaciones y parte de mi baja médica. (Esto significa que me llevó unos 20 días programar las rondas 4 y 5, incluyendo los gráficos).

Aprovechando, para quien tenga curiosidad, ya que leí todos los comentarios desde mi ausencia, aunque parezca mayor, nací el 12/11/77 y actualmente tengo 46 años, pero con alma de adolescente y el corazón de una persona de más de 60.

En fin, pronto publicaré un video con las diferencias de todas las fases, ya que cambié varios detalles que faltaban y mejoré otras cosas, y seguiré con el desafío de la ronda 6, que es la más grande del juego y, para mí, se vuelve hasta una fase agotadora porque, además de larga, las músicas son repetitivas (pues sí, en esa época Capcom estaba al límite del espacio de ROM para finalizar el juego).

Un gran abrazo a todos.
Qué alegría saber de ti Mauro. Antes de ayer te dejé un mensaje en Patreon animando a que te pasaras por EOL y no sé si lo leíste o solo ha sido casualidad. Una alegría tenerte por acá.

Y bueno, ante todo lamentar tus problemas de salud y esperar que te vayas recuperando. Programar, aunque arduo, debe ser también una terapia para ti mientras te lo tomes con calma. Así que duro con ello pero sin prisa. Estás haciendo un trabajo de puta madre.

La última fase del juego es la más larga y la más repetitiva (y menos inspirada). Pero bueno, no hay juego perfecto. La cosa era llegar hasta allí sin dejarse la paga por el camino😋
SuperPadLand escribió:@naxeras hablo de recuerdos del pelo largo, pero creo que en SNES se ralentizaba también y, creo que en el arcade había momentos en que podía también ralentizarse algo.


En SNES se ralentiza mucho más que ése vídeo aunque las ralentizaciones desaparecen en cuanto usas el Fast ROM.

El de arcade claro pero rara vez y sólo con mucha tralla.

@MXRetroDev

Gracias Mauro por pasarte, mejora es salud.

Una pregunta, ¿cuantos personajes a la vez estás moviendo ahora mismo a 60fps? parece que has hecho mucha optimizacion de rendimiento desde la última beta, ¿Como lo has conseguido?
@MXRetroDev

Muchas gracias por escribirnos Mauro, espero que la salud mejore o al menos no empeore y sobre todo que sigas disfrutando de la Megadrive. [inlove]

Un abrazo
Voy a responder en orden algunas cosas:

@bart_simpson
¿3 jugadores en el modo campaña? Quién sabe... 4 jugadores en modo arena también sería buena idea. Pero para dar estos recursos, primero necesito terminar el juego estándar y ver cuánto espacio me quedará, ya que quiero mantener todo en 32 Mbits.

@Señor Ventura
Ya estoy implementando algunas optimizaciones para reducir la desaparición de sprites y también para crear un parpadeo real (al final, es mejor que el sprite parpadee a que desaparezca). Sin embargo, como esto afecta la organización de los sprites y “baraja” las prioridades, tengo que hacerlo con cuidado para no causar lentitud y, al mismo tiempo, evitar errores extraños de profundidad incorrecta entre los personajes, objetos y partículas.

@naxeras
Quité la opción de 30 FPS y dejé por defecto 5 enemigos a 60 FPS. Se han hecho varias optimizaciones que se comentarán en el próximo changelog, que por cierto es bastante extenso. Simplifiqué cálculos, reduje bucles, optimicé sprites, entre otros detalles. Aún creo que hay espacio para mejorar, pero no creo que pueda mantener 5 enemigos en pantalla con 2 jugadores sin ninguna ralentización durante todo el juego.

@gaditanomania
Vine aquí y publiqué porque leí tu mensaje en Patreon. Pensé que este tema había sido olvidado por la gente, me sorprendió ver tantos comentarios.
MXRetroDev escribió:Quité la opción de 30 FPS y dejé por defecto 5 enemigos a 60 FPS. Se han hecho varias optimizaciones que se comentarán en el próximo changelog, que por cierto es bastante extenso. Simplifiqué cálculos, reduje bucles, optimicé sprites, entre otros detalles. Aún creo que hay espacio para mejorar, pero no creo que pueda mantener 5 enemigos en pantalla con 2 jugadores sin ninguna ralentización durante todo el juego.


Has tomado la decisión correcta, 5 enemigos a 2 jugadores está genial incluso con alguna ralentización de vez en cuando en las zonas con más carga.
@MXRetroDev Mucho ánimo y mil gracias por pasar por aquí y explicar la situación. Ante todo y lo primero, es la salud de uno mismo y sus allegados, así que calma, tranquilidad y reposo.

Mucho ánimos y fuerza!!

Saludos.

P.D: Buen año 1977, el que escribe también es del mismo año igual que: Star Wars, Encuentros en la tercera fase, Capricornio Uno,etc.. jejejeje
Me uno al club de los del 77, y te deseo lo mejor @MXRetroDev , muchas gracias por tu trabajo [tadoramo] .
@MXRetroDev Mi más sincera admiración por usted y su trabajo Don Mauro. [beer] Cuide mucho su salud que es lo más importante.
@MXRetroDev cuídate Mauro! la salud es lo primero. Pintan de maravilla los proyectos que tienes encaminados en Mega Drive, que no pare el amor por la negrita de Sega. Final Fight nos ha dejado con la boca abierta. Y se agradece mucho poder leerte por EOL y que respondas detalles técnicos.
Salud.
Mauro alegra mucho saber que te encuentras mejor, recupérate todo lo posible. Muchísimas gracias por el desarrollo de mega final fight, mucho ánimo y cuídate mucho!!
@MXRetroDev estás haciendo un grandísimo trabajo, no dejo de seguir el progreso pero la salud es lo primero. Mucha fuerza.
@MXRetroDev

Gracias por tu trabajo y el esfuerzo que estás haciendo. La salud por supuesto lo primero.
Esperamos con ilusión las demos y, cómo no, del otro proyecto que llevas en paralelo de carreras de motos.
@MXRetroDev Al juego le pueden dar mucho por el culo si te va a afectar la salud. Lo primero es estar bien. Cuídate.
1532 respuestas
127, 28, 29, 30, 31