@psicopompo Le he pedido a Gemini que lo explique ella, ya que yo soy muy torpe explicándome (ahora sí lo ha dejado claro). A continuación, pongo dos explicaciones de por qué está fallando el aumento o disminución automática de los rivales según si están lejos o cerca de nosotros. Y me parece a mí que le está sucediendo lo mismo al personaje que manejamos, que se ha quedado con el tamaño mínimo.
1º Explicacion:
La imagen es una infografía dividida en cuatro paneles que explica visualmente por qué los enemigos en el hack de Mario Kart SNES tienen un tamaño incorrecto y cómo solucionar el problema de la escala matemática al pasar a pantalla completa.
* **Arriba a la izquierda (Perspectiva original en pantalla partida):** Muestra cómo funciona el juego original de Super Nintendo. La pantalla está dividida por la mitad. La lógica matemática que calcula si un enemigo debe verse grande o pequeño (Scaling Logic) está limitada y configurada exclusivamente para funcionar dentro del recuadro de la mitad superior.
* **Arriba a la derecha (Intento actual a pantalla completa):** Ilustra el error que estás experimentando. Aunque has logrado que la pista (el circuito en Modo 7) ocupe toda la pantalla, los enemigos como Bowser siguen atrapados en la lógica antigua. El juego sigue calculando su tamaño basándose en el límite de la antigua pantalla superior, por lo que se ven diminutos y mal posicionados en relación con el nuevo entorno.
* **Abajo a la izquierda (Explicación por capas):** Muestra el origen técnico del problema visualizándolo en 3D. Tienes una "Capa Visual" (la pista) que ya ocupa el 100% de la pantalla, pero por debajo existe una "Capa de Lógica" invisible. Esta capa de lógica sigue dividida en dos zonas antiguas (zona superior e inferior) y no coincide con la imagen que estás viendo.
* **Abajo a la derecha (Solución correcta):** Representa lo que hay que hacer a nivel de código o datos. Debes unificar esa capa lógica invisible y estirarla verticalmente para que abarque toda la pantalla, al igual que hiciste con la imagen de la pista. Al aplicar una única zona de escala continua, el juego calculará correctamente que el enemigo es muy pequeño en el horizonte y debe ir haciéndose progresivamente más grande hasta llegar a la parte inferior de tu nueva pantalla completa.
2º Explicacion:
----------------------------
Explicacion de como antuan el aumento o disminutcion del tamaño de los rivales segun en que linea de la pantalla se encuentre de las 224 lineas
Esta infografía es una guía técnica excelente que detalla cómo funciona el "Modo 7" de la SNES y los desafíos que presenta para un "hack" de pantalla completa. A continuación, te explico detalladamente lo que sucede con el escalado de los rivales si no se corrige la lógica, basándonos en la línea de escaneo (scanline) en la que se encuentran, dado que la pantalla tiene un total de 224 líneas desde arriba hasta abajo:
El Efecto de las Líneas de Escaneo en un Hack No Corregido
Como se muestra en el Panel 1 (Perspectiva original de pantalla partida), el juego original está dividido físicamente y lógicamente en la línea ~112. Las matemáticas que calculan el tamaño de los rivales (Scaling Logic) solo están programadas para funcionar en la mitad superior de la pantalla (líneas 0 a 111). La mitad inferior (líneas 112-223) no tiene esta lógica porque antes solo mostraba un mapa estático.
Si no se corrige esta lógica, esto es lo que sucede:
Zona Superior (Líneas de Escaneo 0 a ~111): Escalado Distorsionado y Diminuto
Como se ve en el Panel 2 (Intento actual: Modo 7 a pantalla completa), el fondo de Modo 7 (la pista) se ha estirado verticalmente para ocupar toda la pantalla.
Sin embargo, la lógica de escalado de los rivales (como Boxer) sigue "atrapada" en los parámetros de la pantalla pequeña original.
Consecuencia por línea: Un rival que esté, por ejemplo, en la línea 50, se calculará con el tamaño que tendría en la línea 50 de la pantalla partida (donde parecería estar a la mitad de la pista). Pero en la pantalla completa estirada, la línea 50 está mucho más cerca del horizonte. El resultado es que el rival se ve diminuto, mucho más pequeño de lo que dictaría la perspectiva de la pista estirada. A medida que se acerca (baja por las líneas), crecerá, pero muy poco a poco, mucho menos de lo que debería. (Esto es lo que visualiza el Panel 2 con un Boxer "diminuto"). Un rival en el horizonte (líneas 0-20) sería casi invisible o un solo píxel.
La "Línea del Corte" (Línea de Escaneo ~112): El Fin abrupto de la Lógica
Esta línea es el límite donde termina la lógica original. Al cruzar esta línea, el juego no sabe qué hacer.
Zona Inferior (Líneas de Escaneo ~112 a 223): "Escalado Congelado" y Sin Perspectiva
Como visualiza el Panel 3 (Explicación: Capas y lógica dual), la capa lógica simplemente no existe para estas líneas inferiores.
Consecuencia por línea: Al cruzar la línea del corte (línea ~112), es muy probable que el juego "congele" el último valor de escalado válido. Esto significa que el rival dejará de crecer. Se moverá de lado a lado por la pantalla, pero con un tamaño de sprite estático, como un cartón recortado. Si cruza esta línea y sigue bajando (acercándose más), no crecerá, lo cual rompería completamente la inmersión y la perspectiva 3D del Modo 7. (Por ejemplo, si un Boxer pequeño pasara la línea 112, se quedaría pequeño el resto de la pista). El Panel 3 lo llama "ZONA INFERIOR (SIN ESCALADO)". Si el rival se acercara más allá de esta línea, su tamaño no cambiaría.
En resumen: Sin la corrección, los rivales se moverían por un mundo Modo 7 que tiene una perspectiva completa (como se ve en el Panel 2), pero sus sprites se comportarían de forma errática. Serían demasiado pequeños en la mitad superior y se "congelarían" en tamaño al cruzar el límite antiguo de la mitad de la pantalla, volviéndose imágenes de tamaño fijo en un mundo que sigue teniendo perspectiva.
La Solución Correcta (Panel 4) es unificar y re-escalar verticalmente la lógica para que sea continua de la línea 0 a la 223, permitiendo que el rival crezca progresivamente y de forma correcta en perspectiva, desde ser diminuto en el horizonte hasta tener un tamaño completo cerca de la parte inferior de la pantalla.