@naxeras Intentaré responder lo mejor posible con lo que sabemos, lo que podemos ver, lo que se ha visto y lo que el debugger me muestra.
Empecemos sobre
lo que el debugger nos dice de Ki de SNES:
- El juego se ejecuta en mode 1, uno de los mejores modos gráficos de SNES y de los más utilizados. 2 fondos a 4bpp para el juego (15 colores por tile + 1 transparente de entre 8 paletas) y el fondo 3 a 2bpp para las barras de vida/nombres (3 colores por tile + 1 transparente de entre 8 paletas)

- El juego
está en FastROM.
Pero no sólo hay que fijarse en que el flag de FastROM esté habilitado; también hay que mirar que el código se esté ejecutando en la
zona de memoria rápida de la ROM. Entre los bancos $80 y $FF (los Bancos 83D... se encuentran en esa zona):

-
No usa Color Math ni Pseudo High Resolution Mode porque
ADEMÁS tener el flag de High Res Mode inactivo (registro $2133.3)

Tampoco muestran diferente información
Main Screen Layers y Sub Screen Layers:

Para que hubiera un pseudo High res mode en modo 1 (simular 512p de ancho), esos registros deberían mostrar configuración diferente. Tendría que verse algo así:
Main: A C E G I
Sub : B D F H J
Pero lo que tenemos es:
Main: A A A A A
Sub : A A A A A
- Utiliza los tamaños de sprites más pequeños:
8x8 y 16x16
- Los 16KBs máximos de VRAM reservada para tiles para sprites se dividen en 2 bancos,
1 banco de 8KB para el jugador 1 y un banco de 8KBs para el jugador 2.
- Los luchadores no se animan al mismo tiempo, esto es, si necesitan cambiar de postura al mismo tiempo, primero se anima uno en un frame y luego el otro (muy típico en juegos de lucha donde el tiempo de VBlank no da para todo) y la transferencia de tiles se hace EXACTAMENTE el frame anterior a cambiar de postura.
Esto es lo que sabemos con certeza.----------------------------------------------------------------------------------
Lo que seguramente te interesa especialmente: ¿Por qué KI no utiliza barras negras (aumento artificial de VBlank para ganar tiempo)?
Respuesta rápida:
Porque durante el frame entero tiene tiempo para los cálculos, transferencias de datos y preparación para el siguiente frame.El animar una vez a cada personaje ayuda mucho en este aspecto. ¿Qué podemos observar de esto?
Vemos qué ocurre durante 1 frame previo al cambio de postura:

¿Qué son esos puntos azules diagonales que vemos en lo que resta de VBlank? En la tabla de abajo de VBlank pone lo que se está haciendo en ese momento en cada scanline y vemos que cada 60 ciclos la CPU (puntos azules) está leyendo un registro... ¿Qué es? Entre el espacio de dos puntos azules... ¿La CPU está haciendo trabajo útil o está simplemente dando vueltas esperando algo del VBlank?

Para averiguarlo vamos a la dirección que se repite cada 60 ciclos (Address) buscando qué demonios pasa en
HVBJOY ($4212) y me llevó a la dirección
$81DF9A, que es la dirección del código donde se realiza esa lectura.
Entonces encontré este "wait loop"
$81DF98 SEP #$20
$81DF9A LDA $4212
$81DF9D BMI $81DF98
Lo que hace es que simplemente la CPU lee a cada rato HVBJOY para comprobar si el VBlank sigue activo o ya ha acabado: LDA $4212 lee el registro y BMI $81DF98 vuelve al principio del bucle mientras el bit 7 esté activo; cuando VBlank termina y ese bit pasa a 0, el salto no se ejecuta y la CPU continúa con el resto del código.
Esto es, la CPU no está haciendo
absolutamente nada más que esperar a que VBlank termine para ponerse con el código durante el siguiente frame. Y si alguien se lo pregunta, ese tiempo restante, no se puede aprovechar para nada, ya se ha hecho todo lo que había que hacerse en ese frame.

-------------------------------------------------------------------
¿Esto qué nos dice?Que tal y como esta configurado el juego,
NO es necesario tener bandas negras (aumento artificial de VBlank) porque tiene tiempo necesario para realizar sus cáculos/rutinas y transferencias durante todo el frame.
Ahora la pregunta que quizás alguno se haga
¿Teniendo tanto VBlank con la CPU esperando, por qué no se animan a los 2 jugadores?Volvamos a la imagen que hemos puesto antes con los colores de verde y morado de lo que ocurre en VBlank.
Lo que vemos es el gasto para 1 sólo personaje. Si hiciésemos transferencias de los 2 personajes a la vez, tranquilamente se duplican los puntos verdes de escritura/lectura en OAM y de transferencias gráficas necesarias a VRAM. ¿Cuánto Vblank nos queda? Aún parece que hay tiempo pero...
Pero aún hay más:
¿Y si a la CPU teniendo que calcular la postura del segundo jugador no le da tiempo a realizarlo mientras se dibuja la pantalla?
¿Y si la CPU pasa demasiado tiempo descomprimiendo/preparando gráficos para el P2?
¿Y si necesita comunicarse con el SPC700 y le pilla a este en una rutina que acaba de empezar y le hace esperar demasiado a la CPU para recibir órdenes?
(Para comunicarse con el sistema de sonido y decirle "ei! hay una colisión, haz el sonido de "Booom!!!", el SPC700 tiene que comprobar cada cierto tiempo si la CPU le espera para darle una orden, pero si en el momento que la CPU quiere decirle algo al SPC700 pero este, tras comprobar que no le han llamado está haciendo sus cosas hasta terminar sus bucles, es tiempo que se pierde).
¿Y si hay otro escenario donde también haya que calcular las animaciones de fondo por que hay más en él?
(La reducción de animación general ayuda, de ahí que juegos como Gundam o Power Rangers: The Fighting Edition muestren tan poca animación de fondo).
Conociendo esas posibles variables de otras tantas,
dejar espacio para imprevistos es algo necesario.No sabemos con certeza que, en el tiempo sobrante de VBlank que vemos, de tiempo a la CPU a terminar los cálculos si intentásemos animar simultáneamente a los dos jugadores
. Pero lo que sí sabemos es que no se configuró de esa manera cuando hacerlo ayuda visualmente a tener un juego más fluido. Luego teniendo ese tiempo sobrante, decidieron programar el juego de manera que no hubiera riesgo de quedarse sin Vblank y sin tener que tirar de bandas negras.
------------------------------------------------------------------------
Entonces entramos en la siguiente pregunta que haces Naxeras:
¿Es posible usar los gráficos del arcade en SNES sin el uso de bandas negras?Depende. Si da tiempo sí, si no da tiempo, no.
Parece sencillo pero me explico:
Esta imagen que han posteado
no es concluyente de si eso es posible o no.
¿Por qué?Por que si es para tan sólo animar dos personajes por turnos entre frames sin nada más no es prueba de capacidad.
¿Los personajes pueden realizar posturas diferentes además del base? No lo vemos, no está comprobado.
¿En esa imagen hay colisiones, cambios en la barra de vida de los personajes, y efectos cuando se golpean? No lo vemos, no los hay, no está comprobado que puedan hacerlo.
¿Está el sistema de sonido implementado para cuando golpean, caen, caminan, rugen?? No hay sonido, no está comprobado.
¿La CPU puede calcular todos las variables, datos, preparación previa de transferencia de tiles, escrituras OAM antes del tiempo de Vblank? No lo sabemos, no se muestra, no está comprobado.
----------------------------------------------------------------------------------
Entonces entramos en las hipótesis lo que conocemos y lo que no.
Pongamos como ejemplo juegos como Gundam o el de los Power Rangers:
No necesitas bandas negras para adaptar su Relación de Aspecto a algo proveniente de un arcade (meter un AR de 4:3 dentro de un AR de 8:7) como se hace con Street Fighter ya que
NO son ports sino juegos desarrollados para esta consola.
Luego: ¿Qué juegos de lucha a 60 fps (importante que no a 30) se han visto con tamaños de PJs de Gundam o Power Rangers o mayores que no usen bandas negras? ¿Que cantidad de animación hay de fondo? ¿Tiene tiempo la CPU de descomprimir gráficos, realizar sus rutinas, conectar con el SPC700 antes de llegar a VBlank para dedicarse exclusivamente a transferencias gráficas y lectura/escritura OAM?
Y por último habría que mirar si los sprites del KI de arcade son mayores a los juegos citados y podemos sacar
ciertas suposiciones (que no certezas absolutas) que pueden validar el punto de si es posible o no un juego de lucha en SNES con ese tamaño de PJs sin bandas negras.
Más que nada es preguntarse porqué ha existido una "misma" solución (aumento de Vblank, las bandas engras) llevado a cabo por diferentes compañías en diferentes épocas con diferentes devs, cuando se trata de juegos de lucha con personajes de tamaño considerablemente grandes con mucha exigencia DMA.
Vaya, espero que te haya servido. Si tienes dudas dime