Super Mario Kart – Fullscreen Edition v3.1.1Lo que empezó como una idea bastante sencilla —quitar el mapa inferior de la pantalla para tener una vista de carrera mucho más grande— acabó convirtiéndose en uno de esos
hacks en los que cada solución abre tres problemas nuevos.
La diferencia fundamental con otros
hacks que se limitan a ocultar el mapa es que aquí no se ha tapado simplemente lo que había abajo.
La cámara de carrera se ha desplazado y recalculado para aprovechar las 224 líneas completas de la pantalla, acercando la acción y haciendo que el kart, el suelo, los rivales, las sombras, los objetos y las colisiones sigan siendo coherentes con esa nueva perspectiva.
La v2.0 llevó esa idea un paso más allá: incorporó una
cámara de horizonte amplio, con una vista más alta y abierta, un horizonte propio y los decorados adaptados para aprovechar la nueva perspectiva. Posteriormente, la v3.0 añadió una segunda cámara con una perspectiva diferente, además de un minimapa flotante y la migración del proyecto al chip SA-1.
Ahora es posible alternar entre las dos cámaras durante la carrera utilizando SELECT o X.
No es simplemente «quitar el mapa de abajo». La cámara cambia de verdad, y todo lo que depende de ella tiene que acompañarla.
Y aquí llegó uno de los puntos de inflexión del proyecto. Al principio estábamos intentando solucionar uno por uno los miles de problemas que aparecían al quitar simplemente el mapa y bajar el personaje a la parte inferior de la pantalla.
Hasta que se me encendió la bombilla: ¿y si aprovechábamos la lógica que el juego ya utilizaba para el Player 2, que colocaba su kart aproximadamente en la posición que necesitábamos, y la reutilizábamos para el Player 1 cuando jugaba en solitario?Aquella idea permitió dejar de pelear contra una buena parte de los problemas desde cero y avanzar muchísimo más deprisa. No resolvía todo, ni mucho menos, pero
nos ahorró una cantidad enorme de trabajo y nos dio una base coherente sobre la que seguir construyendo el hack.
La parte que no se vePara conseguirlo hubo que meterse bastante más abajo de lo que parecía al principio.
Aquí hay un matiz importante sobre lo de «acercar la cámara». Al principio, después de ampliar la superficie de Mode 7 para llenar las 224 líneas, la parrilla de salida quedaba demasiado adelantada respecto a Mario: el kart estaba en la posición que queríamos, pero sus rivales y la marca pintada en el suelo se habían quedado lejos, como si Mario estuviera empezando la carrera varios metros por detrás.
La solución no era seguir desplazando al personaje, sino hacer lo contrario:
acercar el escenario hacia él. Es el mismo efecto que se produce cuando aceleras en el juego: el kart permanece en su posición y es la pista la que avanza hacia él. Así conseguimos que la parrilla, los rivales y todo lo que rodea al kart vuelvan a ocupar la posición que les corresponde respecto a él, pero aprovechando la nueva pantalla completa.
A partir de ahí es cuando hubo que conseguir que esa nueva referencia de cámara fuese coherente con todo lo demás. El juego utiliza el DSP-1 para buena parte de la proyección de la pista, así que no bastaba con mover el sprite de Mario: había que
hacer que la posición real del kart, el suelo, la sombra, los rivales, los objetos y las colisiones siguieran hablando el mismo idioma.
La cámara se acerca progresivamente al comenzar la carrera, en lugar de pegar un salto brusco, y la nueva posición se mantiene también en cosas como la sombra, los efectos, los objetos, los saltos y las colisiones.
Y ahí empezaron a aparecer los cadáveres.
Rivales que atravesaban a Mario, tuberías que parecían no existir, objetos que desaparecían al acercarse demasiado, sprites que al salir por arriba reaparecían por abajo, cabezas de Lakitu asomando donde no tocaba, monedas y efectos que seguían apareciendo 88 píxeles por encima del kart, humo que se había quedado en la posición antigua...
Finales japoneses sin censura.
Cada uno de esos fallos obligó a localizar dónde los estaba generando el juego y corregirlo sin romper lo que ya funcionaba.
Incluso hubo que rehacer parte del orden de dibujado y estudiar cómo se construye la OAM para entender por qué determinados rivales podían solaparse mal. Se probaron soluciones que funcionaban aparentemente bien y luego resultaban demasiado costosas para el procesador.
En NTSC el margen de CPU es bastante menor que en PAL, así que también hubo que perfilar el código y eliminar trabajo innecesario.
La v2.0 incluyó además una resincronización del
attract mode y una reducción de ciclos de CPU que no alteraba el resultado visual. Las pruebas comparativas mostraron que el tartamudeo que aparece en determinados giros duros de Bowser Castle también se produce en la ROM original: no era una ralentización nueva introducida por aquella versión.
Con la v3.0 llegó otro cambio importante:
el proyecto se migró al chip SA-1, incorporando una arquitectura mejorada para el procesamiento y un mayor margen de rendimiento.
Y, por supuesto, tocar la pantalla completa significa que el HUD original ya no tiene mucho sentido.
Un HUD nuevo aprovechando el espacioEl contador de vidas, las monedas y los dígitos de posición se han recolocado para aprovechar la nueva distribución. También se han adaptado las tablas de tiempos, los puestos finales, los menús de
Retry / End,
Ranked Out,
Game Over y otros elementos que originalmente estaban diseñados pensando en una pantalla partida.
Y aquí ocurrió otra cosa curiosa: algunos elementos que parecían sprites normales resultaron depender de HDMA, ventanas, tablas de color y otros sistemas de la SNES que no tienen absolutamente nada que ver con «mover una imagen unos píxeles».
En otras palabras:
cuanto más se tocaba, más cosas descubríamos que dependían indirectamente de aquel mapa inferior que ya no existía.
¿Y el 2P?Una de las condiciones del
hack era no destrozar el modo para dos jugadores. Después de todo el trabajo realizado sobre la lógica de 1P,
la rama 2P se deja ejecutar con el código original. El
hack utiliza puertas que detectan cuándo se está en 1P y dejan pasar la ROM original en 2P.
Así que, en lugar de intentar rehacer también la pantalla partida, se conserva el funcionamiento original. Las pruebas comparativas en bsnes muestran el comportamiento 2P idéntico al de la ROM sin modificar en los escenarios comprobados.
¿Y el mapa y el retrovisor?Se llegó a investigar y prototipar también el conmutador de SELECT para recuperar esas vistas, y técnicamente se puede hacer. El problema es que el mapa y el retrovisor del juego original no son simplemente dos imágenes que puedas colocar en una esquina: utilizan Mode 7, HDMA y una serie de cálculos que estaban pensados para dividir la pantalla en dos.
Después de ver hasta dónde había que llevar el apaño para conservarlos, decidí que
esta versión debía apostar por una pantalla limpia y por una vista de carrera completa, en lugar de volver a llenar el espacio recuperado con elementos heredados de la distribución antigua.
El mapa y el retrovisor originales siguen ocultos durante las carreras a pantalla completa, mientras que el mapa de resultados de Time Trial sí se muestra cuando corresponde.
La v3.0 incorporó una solución diferente:
un minimapa flotante que muestra el trazado del circuito y las posiciones de los corredores, sin recuperar el mapa original ni ocupar la parte inferior de la pantalla.
La cámara de horizonte amplioLa principal novedad de la v2.0 fue una segunda cámara que ofrecía una perspectiva más alta y abierta, con su propio horizonte. Se incorporó como vista predeterminada en los 20 circuitos y también se utilizó en los momentos de presentación y transición de la carrera, incluida la intro, el acercamiento a la parrilla y el giro de cámara al terminar.
No se trata únicamente de cambiar la posición vertical de la vista. Los fondos y los elementos del decorado también tienen que encajar con el nuevo encuadre.
Por eso se adaptaron los 20 circuitos: los cielos se extendieron para evitar bandas negras y saltos de color, las zonas añadidas continúan el tono de la franja de degradado adyacente, las nubes de Koopa Beach aparecen en las tres alturas desde la parrilla de salida y los pilares de Ghost Valley se recortaron para evitar que se dibujasen fuera de los límites previstos.
Las dos perspectivas de carrera
La v3.0 añadió una segunda cámara con una perspectiva diferente, complementando la vista de pantalla completa existente.
Ahora se puede cambiar entre ambas durante la carrera utilizando
SELECT o X. El botón Y sigue funcionando como freno. No hay que entrar en ningún menú ni reiniciar la carrera. Cada pulsación alterna entre las dos vistas; en los menús los botones de cámara no tienen efecto.
El minimapa flotanteUna de las novedades más importantes de la v3.0 es la incorporación de un minimapa durante las carreras a pantalla completa.
Era una de las características que más se habían solicitado. Al principio parecía una tarea bastante complicada, pero finalmente se decidió abordar el problema de otra manera:
diseñar los mapas de los circuitos individualmente, desde cero, en lugar de intentar reutilizar directamente los gráficos originales.
Cada uno de los trazados se ha dibujado y adaptado manualmente, tomando como referencia mapas de GBA y otras fuentes. El resultado es un minimapa flotante que permite reconocer la forma del circuito y seguir las posiciones de los corredores sin recuperar el mapa inferior original.
El trabajo de ajuste y corrección de los mapas ha sido una parte importante del desarrollo. No basta con que el trazado tenga una forma reconocible: también tiene que representar correctamente cada circuito y mostrar las posiciones de los participantes de forma coherente.
Glitches y correcciones gráficasA lo largo de las distintas versiones se han corregido numerosos problemas visuales. Entre ellos:
- Cara duplicada del jugador al ganar: desaparece el resto de cara que podía quedarse dibujado durante la cámara de meta.
- Parpadeo de montañas durante la carga: corregido.
- Ghost Valley: corrección de las líneas negras y azules intermitentes.
- Mancha de aceite: la detección de contacto utiliza el umbral nativo del juego, evitando resbalones falsos.
- Letrero ROUND: vuelve a estar centrado en la vista nueva.
- Attract mode: las demos se han resincronizado para que los rivales aparezcan correctamente al arrancar en frío.
- Fondos y cielos: correcciones de degradados, bandas negras y artefactos gráficos en diferentes circuitos.
- Objetos y elementos del escenario: correcciones de problemas de representación y dibujado.
La v3.0 también incorporó correcciones específicas para los problemas gráficos detectados en flashcarts, incluidos los artefactos en el cielo y el parpadeo de las montañas.
Correcciones de Time Trial en la v3.1 y v3.1.1Las versiones posteriores a la v3.0 han permitido corregir varios detalles que habían quedado pendientes, especialmente en Time Trial.
- Menú CHANGE COURSE / RETRY: se ha corregido su posición cuando el jugador abandona una carrera.
- Tamaño del kart después de cruzar la meta: cuando se termina una vuelta sin establecer un récord, el kart vuelve a alejarse con el tamaño correcto, como en el juego original. Anteriormente conservaba parámetros de la perspectiva a pantalla completa y aparecía demasiado pequeño.
- Fantasma de Time Trial: se ha corregido su posición vertical para que coincida con la del kart del jugador. Ambos utilizan ahora la misma proyección, tanto con la cámara 1 como con la cámara 2.
- Mapa inferior de resultados: se han corregido las líneas desplazadas que podían aparecer después de cruzar la meta, incluso al reiniciar mediante RETRY. También se limpian los datos residuales que podían conservarse de sesiones anteriores.
- Tamaño del kart con la segunda cámara: la v3.1 había corregido el tamaño después de terminar una vuelta sin récord, pero el problema todavía persistía con la cámara 2. La v3.1.1 completa la corrección para ambas cámaras.
Se conserva de las versiones anterioresAdemás de las novedades y correcciones descritas, se mantienen las mejoras incorporadas durante el desarrollo:
- Resultados de Time Trial: se muestran correctamente todas las vueltas, sus resaltados, TOTAL y el mapa con BEST 5 / BEST LAP.
- Tamaño de los rivales: progresión geométrica corregida, con un factor aproximado de 1,3703 en las franjas T1–T10 y los once dibujos originales intactos.
- Parrilla de salida: corrección lateral desde el comienzo del acercamiento, conservando la intro, el zoom y la órbita.
- Sombras de Lakitu: corregidas en pantalla completa y en las dos vistas del modo para dos jugadores.
- Fondos de los circuitos: adaptación de los decorados a las diferentes perspectivas de cámara.
- Attract mode: resincronización de las demostraciones y correcciones de su comportamiento.
Sobre las ralentizacionesDurante el desarrollo aparecieron ralentizaciones que obligaron a perfilar y optimizar el código. Antes de empaquetar la v2.0, se comprobó también si el tartamudeo que se aprecia en ciertos giros duros a alta velocidad era consecuencia del
hack o un comportamiento que ya existía en el juego original.
Las pruebas se realizaron en bsnes, con estados reproducibles y maniobras guionizadas.
En
Bowser Castle 1, con una sesión de Time Trial arrancada en frío, la ROM original USA, la v1.5 y la v2.0 registraron
exactamente los mismos tics de reloj: 11640 de 12000. Los tiempos parciales y finales y la trayectoria también coincidieron.
En
Bowser Castle 3, utilizando un estado de carrera real, la v1.5 y la v2.0 registraron igualmente los mismos tics:
2993 de 3000, con idéntico tiempo final.
La conclusión de aquellas pruebas fue que las ralentizaciones observadas en esas maniobras eran un comportamiento nativo del juego, no una regresión introducida por la v2.0. Por ese motivo,
no se modificaron la planificación de la IA ni las físicas para intentar ocultarlo.
La posterior migración al SA-1 de la v3.0 supuso una mejora adicional del rendimiento.
Pruebas y compatibilidadEl hack ha pasado por numerosas pruebas de regresión mediante emulación, principalmente en bsnes y RetroArch.
Entre las comprobaciones realizadas durante el desarrollo:
- Comparación de 2950 fotogramas del attract mode arrancado en frío frente a la ROM original, con resultado idéntico salvo la firma del hack.
- 27 estados de carrera reales, con 120 fotogramas comprobados por estado, sin diferencias de renderizado en las comparaciones realizadas.
- OAM de las cámaras de meta idéntica a la de la versión aprobada.
- Baterías de regresión de miles de fotogramas en los circuitos protegidos.
- Comparaciones de rendimiento en Bowser Castle 1 y Bowser Castle 3 frente a las versiones anteriores y, cuando correspondía, frente a la ROM original.
- Comprobaciones de ambas cámaras, menús, transiciones, Time Trial, modo para dos jugadores y demostraciones del attract mode.
- Verificación de las correcciones de Time Trial de la v3.1 y v3.1.1 frente a la v3.1 y al juego original.
Compatibilidad con hardware:La compatibilidad con
FXPAK Pro y SD2SNES fue probada por jugadores durante la v3.0.
La corrección de la v3.1.1 se ha verificado mediante comparación con la v3.1 y la ROM original, utilizando ambas cámaras.
Si encontráis algún fallo, indicad el emulador y el core utilizados, el modo de juego y, si es posible, adjuntad un save state reproducible.
DESCARGAEl paquete contiene:
- Parche BPS.
- Parche IPS.
- LÉEME.txt.
- README.txt.
- Registro de cambios en español.
- Registro de cambios en inglés.
No incluye la ROM original.Instalación y datos de la ROMAplicad
uno solo de los dos parches, IPS o BPS, sobre una ROM USA original limpia y sin cabecera.
- ROM de origen: Super Mario Kart (USA).
- Tamaño original: 524.288 bytes.
- CRC32 original: CD80DB86.
- Parche recomendado: BPS, porque permite comprobar que la ROM de origen es la correcta antes de aplicar los cambios.
Resultado esperado después de aplicar el parche:- Tamaño: 4.194.304 bytes.
- CRC32: EA313F1C.
- SHA-1: 26A746D7177E948409576AA85BF716968F494F0E.
- Checksum interno SNES: 64CB.
- Complemento: 9B34.
Verificación de los parches:- BPS: verificado contra la ROM USA original limpia.
- IPS: generado a partir de la misma ROM de origen y verificado byte a byte frente a la ROM final mediante un decodificador propio. La compatibilidad con herramientas IPS de terceros todavía no se ha probado de forma independiente.
Importante: los parches son acumulativos y deben aplicarse directamente sobre la ROM original. No deben aplicarse encima de versiones anteriores de Fullscreen Edition.
Las versiones PAL no están soportadas.
Datos de la versión- Título: Super Mario Kart – Fullscreen Edition.
- Versión: 3.1.1.
- Autor: Psicopompo.
- Plataforma: Super Nintendo.
- Región: USA / NTSC (60 Hz).
- Categoría: Graphics / Gameplay.
- Chip: SA-1.
- Modo de un jugador: pantalla completa de 224 líneas.
- Cámaras: dos perspectivas seleccionables durante la carrera.
- Minimapa: flotante, con trazado y posiciones de los corredores.
- Modo de dos jugadores: conserva la pantalla partida original.
- Botones de cámara: SELECT y X.
- Freno: Y.
- Parches disponibles: BPS e IPS.
- Flashcarts probados por jugadores: FXPAK Pro y SD2SNES.
Super Mario Kart © Nintendo. Proyecto fan no oficial, sin afiliación con Nintendo. No se incluye ni distribuye la ROM original.