El gameboy original, GBP y GBC tenían resoluciones de pantalla de 160×144 [1] mientras que Game Boy Advanced tenía una resolución de 240×160 [2]

Entonces, ¿cómo se produce el estiramiento real? Parece bastante uniforme, pero no puedo entender cómo se puede lograr técnicamente sin una segunda pantalla.

Respuesta

En primer lugar, el estiramiento no se realiza en dirección vertical: los juegos de Game Boy (y Color) solo usaron 144 filas de las 160 disponibles en la pantalla Avanzada, por lo que habría barras negras en la parte superior e inferior, ya sea que hayas estirado la imagen en pantalla ancha (con los botones laterales) o no.

Pantalla de título de golf en GBA SP, sin estirar Pantalla de título de golf en GBA SP, ampliada

Horizontalmente, la imagen está definitivamente estirada. Si el Advance tuviera el doble de resolución horizontal que el Game Boy, sería fácil de estirar: cada columna de píxeles podría repetirse dos veces. Efectivamente, significaría que cada uno de los píxeles de la Game Boy era el doble de ancho que antes. No siempre es posible duplicar la resolución de la pantalla; Es probable que dicha resolución no estuviera disponible (o no fuera asequible) en un tamaño de computadora de mano en el momento del Advance.

En cambio, Nintendo seleccionó una pantalla para el Advance que tenía una resolución de uno y media (o 3/2) que la del Game Boy original (160 x 3/2 = 240). Cada dos columnas de píxeles de un antiguo juego de Game Boy ahora deberán «estirarse» en tres columnas de la pantalla de Advance.

Pero, ¿qué valores deben asignarse a los píxeles en estas terceras columnas adicionales? ? Podría duplicar algunos de los píxeles de las columnas originales, duplicando el «ancho» de todas las columnas impares, o quizás las pares. Es un método simple, pero no parece tan bueno, porque algunas columnas no se duplicarán en absoluto, pero otras sí.

Un enfoque alternativo es utilizar una técnica llamada interpolación . [* 1] En este caso, en lugar de elegir duplicar una columna para llenar los píxeles vacíos, toma un promedio de los valores en las columnas de la izquierda y la derecha. de cada píxel vacío, y utilice este valor calculado en su lugar.

Si observa de cerca la pantalla de Advance con un juego de Game Boy sin estirar, luego uno estirado, es posible identificar cuál se han calculado los valores de las columnas mediante esta interpolación de «promediado».

Aquí hay algunas fotos detalladas del «AY» del texto «1Player»:

Letras AY, sin estirar < -unstretched Letras AY, estiradas < -estiradas

En el lado izquierdo de la «A», se ha interpolado una columna de píxeles entre los píxeles oscuros de la «A» y los píxeles claros del fondo. Estos píxeles se han promediado como un gris medio.

En el lado derecho de la «A», otra columna de píxeles interpolados ha terminado entre las dos columnas de píxeles oscuros. El promedio de dos píxeles oscuros también es oscuro, por lo que es del mismo color que el resto de la «A». Se pueden ver interpolaciones similares en los lados izquierdo y derecho de la «Y», y en otras partes de la pantalla.

Aquí hay un par de imágenes de otro juego, tomadas en el modelo AGS-101 del Advance SP ( que tiene una pantalla más brillante y retroiluminada). [* 2] ¡Puedes jugar a adivinar el juego si quieres!

Detalle de AGS-101, sin estirar < – sin estirar Detalle de AGS-101, estirado < – estirado

¿Por qué Nintendo eligió estirar la pantalla de Game Boy en una dirección y no el otro? Una razón es que interpolar en una dimensión es mucho más simple que hacerlo en dos . Pero estirar la pantalla verticalmente también habría creado artefactos visuales antiestéticos en el juego.

Si Nintendo hubiera decidido extender las 144 filas de píxeles en las 160 filas disponibles en la pantalla del Advance, lo habrían hecho para insertar 16 filas interpoladas de píxeles. 16 es un factor de 160, por lo que las filas interpoladas podrían espaciarse uniformemente: una cada 10 filas. Pero de las nueve filas originales, solo dos estarían junto a una nueva fila pf píxeles, la otra siete no lo harían. Como resultado, algunas filas se «estirarían» por la interpolación, otras no. Esto resultaría en que el sombrero de Mario se estiraría y comprimiría levemente al saltar, por ejemplo, y distraería al jugador.


  1. Esta técnica (específicamente la interpolación bilineal bidimensional) se utiliza cuando se cambia el tamaño de una imagen en software de manipulación de imágenes como Photoshop o GIMP. También se utiliza en pantallas LCD de computadora, si selecciona una resolución (por ejemplo, 640×480) que no coincide con la resolución nativa de la pantalla (por ejemplo, 1024×768). Pero debido a que el GBA solo estira la pantalla en una dimensión (horizontalmente), solo necesita hacer una interpolación lineal más simple de la imagen.

  2. Cortesía de snips-n-snails

Comentarios

  • @Tommy You ' ambos a la derecha. El estiramiento no se ' t realizado en la dirección vertical, por lo que Kaz tiene razón en eso. En la dirección horizontal, estirar es el vecino más cercano como dijiste, no interpolado (filtrado bilineal) como dijo Kaz.
  • Además de tus comentarios sobre la falta de estiramiento vertical, requeriría un búfer grande, ya que el escaneo de líneas es sincrónico con respecto al juego. No puedes ' simplemente volver atrás y escanear una copia adicional de una línea, incluso si quería hacer eso (que se vería horrible), porque el contenido podría haber cambiado . De hecho, muchos juegos de gameboy utilizaron cambios en el contenido de la pantalla en hblank para crear efectos o simplemente para ajustar más sprites en la pantalla.
  • @Kaz No pude ' No sé por tus fotos, así que tomé las mías y una vez más tienes razón. imgur.com/a/5Cc6IY9
  • @ snips-n-snails ¡esas fotos son geniales! ' logré encontrar mi adaptador de lente macro y reemplacé mis imágenes originales, pero la pantalla de tu AGS-101 ' es millas más nítido que mi Advance estándar de pantano. ¿Puedo agregar tus fotos a la respuesta?
  • @Kaz Claro, adelante.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *