O gameboy original, GBP e GBC tinham resoluções de tela de 160×144 [1] enquanto o Game Boy Advanced tinha uma resolução de 240×160 [2]

Então, como ocorre o alongamento real? Parece bem uniforme, mas não consigo entender como é tecnicamente alcançável sem uma segunda tela.

Resposta

Em primeiro lugar, o alongamento não é feito na direção vertical: os jogos Game Boy (e Color) usaram apenas 144 linhas das 160 disponíveis na tela Advance, portanto, haveria barras pretas “letterbox” nas partes superior e inferior, se você esticou a tela panorâmica da imagem (com os botões de ombro) ou não.

Tela de título de golfe no GBA SP, não esticada Tela de título de golfe no GBA SP, esticada

Horizontalmente, a imagem está definitivamente esticada. Se o Advance tivesse o dobro da resolução horizontal do Game Boy, seria fácil esticar: cada coluna de pixels poderia ser repetida duas vezes. Significaria efetivamente que cada um dos pixels do Game Boy tinha o dobro da largura de antes. Nem sempre é possível dobrar a resolução da tela; é provável que tal resolução não estivesse disponível (ou acessível) em um tamanho de mão na época do Advance.

Em vez disso, a Nintendo selecionou uma tela para o Advance que tinha uma resolução e meia (ou 3/2) do Game Boy original (160 x 3/2 = 240). Cada duas colunas de pixels de um antigo jogo de Game Boy agora precisam ser “esticadas” em três colunas da tela do Advance.

Mas quais valores devem ser atribuídos aos pixels nessas terceiras colunas extras “Você poderia dobrar alguns pixels das colunas originais, dobrando a“ largura ”de todas as colunas ímpares, ou talvez as pares. É um método simples, mas não parece tão bom, porque algumas colunas não serão duplicadas, mas outras sim.

Uma abordagem alternativa é usar uma técnica chamada interpolação . [* 1] Neste caso, em vez de escolher duplicar uma coluna para preencher os pixels vazios, você obtém uma média dos valores nas colunas à esquerda e à direita de cada pixel vazio e, em vez disso, use este valor calculado.

Se você olhar atentamente para a tela do Advance com um jogo de Game Boy não esticado, depois um esticado, é possível identificar qual colunas tiveram seus valores calculados por esta interpolação de “média”.

Aqui estão algumas fotos detalhadas do “AY” do texto “1Player”:

Letras AY, não esticadas < -unstretched Letras AY, esticada < -estendida

No lado esquerdo do “A”, uma coluna de pixels foi interpolada entre os pixels escuros do “A” e os pixels claros do fundo. A média desses pixels foi calculada como cinza médio.

No lado direito do “A”, outra coluna de pixels interpolados acabou entre as duas colunas de pixels escuros. A média de dois pixels escuros também é escura, por isso é da mesma cor que o resto do “A”. Interpolações semelhantes são visíveis nos lados esquerdo e direito do “Y” e em outras partes da tela.

Aqui está um par de fotos de outro jogo, tiradas no modelo AGS-101 do Advance SP ( que tem uma tela mais clara e iluminada). [* 2] Você pode jogar adivinha se quiser!

Detalhe AGS-101, não alongado < – não alongado Detalhe AGS-101, esticado < – esticado

Por que a Nintendo optou por esticar a tela do Game Boy em uma direção, e não o outro? Uma razão é que interpolar em uma dimensão é muito mais simples do que fazer em duas . Mas esticar a tela verticalmente também criaria artefatos visuais desagradáveis no jogo.

Se a Nintendo tivesse decidido esticar as 144 linhas de pixels sobre as 160 linhas disponíveis na tela do Advance, eles teriam para inserir 16 linhas interpoladas de pixels. 16 é um fator de 160, então as linhas interpoladas podem ser espaçadas uniformemente: uma a cada 10 linhas. Mas das nove linhas originais, apenas duas estariam próximas a uma nova linha pf pixels, a outra sete não iriam. Como resultado, algumas linhas seriam “esticadas” pela interpolação, outras não. Isso faria com que o chapéu de Mario se esticasse e se comprimisse ligeiramente enquanto ele saltava, por exemplo, e seria uma distração para o jogador.


  1. Esta técnica (especificamente a interpolação bilinear bidimensional) é usada quando você redimensiona uma imagem em software de manipulação de imagem como Photoshop ou GIMP. Ele também é usado em monitores LCD de computador, se você selecionar uma resolução (por exemplo, 640×480) que não corresponda à resolução nativa do monitor (por exemplo, 1024×768). Mas porque o GBA estica a tela apenas em uma dimensão (horizontalmente), ele só precisa fazer uma interpolação linear mais simples da imagem.

  2. Cortesia de snips-n-snails

Comentários

  • @Tommy você ' estão ambos certos. O alongamento não é ' feito na direção vertical, portanto, Kaz está correto nisso. Na direção horizontal, alongamento é o vizinho mais próximo, como você disse, não interpolado (filtrado bilinear) como Kaz disse.
  • Além de seus comentários sobre a falta de alongamento vertical, seria necessário um grande buffer, uma vez que a varredura de linhas é sincronizada com em relação ao jogo. Você pode ' t voltar e escanear uma cópia extra de uma linha, mesmo que você queria fazer isso (o que seria horrível), porque o conteúdo pode ter mudado . Na verdade, muitos jogos gameboy utilizaram alterações no conteúdo de exibição do hblank para criar efeitos ou apenas para colocar mais sprites na tela.
  • @Kaz I couldn ' Não contei pelas suas fotos, então tirei as minhas e, mais uma vez, você está correto. imgur.com/a/5Cc6IY9
  • @ snips-n-snails essas fotos são ótimas! Eu ' consegui encontrar meu adaptador de lente macro e substituí minhas fotos originais, mas a tela de sua AGS-101 ' está a milhas mais nítido do que o meu Advance padrão do pântano. Posso adicionar suas fotos à resposta?
  • @Kaz Claro, vá em frente.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *