A casa de notícias para os fãs da Nintendo

O milagre de Resident Evil 2 no 64: Uma mentira acreditada até hoje

“Resident Evil 2 no Nintendo 64 foi um milagre da compressão!”

Essa é uma das mentiras mais famosas que ja vi no mundo dos games. O que se acredita é que a empresa responsável pelo port, a Angel Studios, conseguiu, usando técnicas avançadas de “compressão”, colocar o conteúdo de 2 CD-ROM inteiros (em torno de 1320 MB) em um cartucho de 64 MB. Para completar o grande feito, o jogo ainda inclui conteúdo extra quando comparado com a versão de PS1. Bem, se você acreditou nesse conto, sinto dizer que foi simplesmente enganado.

Se passarmos pelo processo de transferir os arquivo do jogo de PS1 para o computador, observamos que cada disco usa em torno de 370 MB, pouco mais que a metade de um disco de PS1. Também é possível ver que a versão PS1 Classic do jogo, vendida na PSN para ser utilizada em PSP, PS3 e PS Vita, que inclui os dados de ambos os discos, possui 750 MB. Isso significa que ambos os discos não usavam muito mais que um disco de PS1, o que torna o feito da Angel Studios um pouco menos impressionante.

Mas devemos analisar mais que apenas dados usados em disco. Uma coisa notável em Resident Evil é que o conteúdo geral de ambos os discos não difere tanto de um para outro. Ou seja, esse valor de 750 MB está incluindo todos os cenários do jogo duplicados, além de repetição de vozes, músicas e cutscenes inteiras (ou, quando não, parte delas). Eu não tenho uma forma prática de mensurar este conteúdo, mas é fato que o tamanho final diminuiria bastante caso este fato fosse diferente, podendo facilmente caber em apenas um disco e ainda sobrar espaço.

Então por qual motivo a Capcom resolveu lançar em dois discos? A resposta é simples: Marketing. Um CD-ROM naquela época custava um valor ínfimo para uma editora, ao ponto de sequer ser faturado na produção total de um jogo. Sendo assim, separar o conteúdo de um jogo em dois discos ajuda a vendê-lo como sendo o dobro do tamanho de seu antecessor. “Tão grande que precisou de dois CD’s”, as diversas revistas diriam na época, mesmo que o miolo de ambos seja tão semelhante.

Mas é bem verdade que, mesmo que estejamos olhando para um valor final em torno dos 450 MB (sendo generoso), ainda seria grande feito reduzir esse número para 64 MB. Quando analisamos melhor, mudamos um pouco de opinião.

O primeiro ponto são as cutscenes. O PS1 usa um formato específico de vídeo que o próprio hardware consegue decodificar sem afetar a performance do jogo e, principalmente, sem precisar de um grande trabalho da parte da desenvolvedora. Este é o método que basicamente todo jogo de PS1 utiliza para exibir vídeos. A verdade, no entanto, é que a sua facilidade tem um preço: O arquivo acaba ficando enorme. Isso nunca foi um problema para o console justamente por conta do espaço generoso de sua mídia, mas alguns desses vídeos chegam a ser maiores que jogos inteiros de Nintendo 64.

Porém, o trabalho para transferir estes vídeos não foi muito extraordinário. Como o 64 não possui decodificador próprio de vídeo, é necessário usar uma solução externa para isso. Mas não se engane, pois não é algo ruim, já que o console tem CPU de sobra para rodar um decodificador externo. A grande vantagem aqui, no entanto, é atingir uma otimização muito melhor que o PS1 ao mesmo tempo que se mantém a qualidade. Porém, este último ponto infelizmente não aconteceu: Além de rodar numa resolução e bitrate mais baixo, os vídeos ainda são exibidos em metade do framerate original, passando de 30 quadros por segundo para apenas 15. Por fim, cenas com um frame semelhante ao próximo são apenas pausadas por rápidos instantes para não precisar guardar a informação daquele quadro. Aplicando estas mesmas técnicas em um PC utilizando codecs pouco eficientes da época é possível diminuir um arquivo de 100 MB para apenas 5, uma diferença considerável.

Mas as otimizações não pararam por aí. Como ja sabemos, alguns vídeos foram replicados por completo entre ambos os discos de PS1, mas há outros que apenas são parcialmente iguais. Isso por que a única diferença entre ambos é o personagem controlável que aparece e seus diálogos, todos os outros elementos são iguais. A solução no 64 foi se aproveitar da sua rápida memória e fragmentar esses vídeos em cenas específicas que seriam exibidas na ordem que fossem necessárias, evitando, portanto, que o vídeo inteiro fosse replicado.

O segundo ponto é relativo ao audio. Enquanto que no PS1 cada melodia é uma gravação de alta qualidade (e, portanto, consome muitos MB no disco), no 64 as mesmas músicas foram reproduzidas fielmente utilizando um sistema de samples. O resultado é o uso de poucos kilobytes por canção, não vários megabytes, como era necessário no console da Sony. Vale lembrar, também, que a qualidade das vozes foi drasticamente reduzida, onde o N64 exibe um resultado bastante abafado. Por fim, uma canção inteira reproduzida durante os créditos de um dos finais do jogo foi removida. Aliás, a sequencia de créditos inteira foi removida, onde apenas uma é utilizada para os dois cenários.

Uma comparação gerada em Emulador de ambos o jogos. Perceba não somente as diferenças no modelo de personagem, como também a qualidade do cenário.

O terceiro e último ponto fica pela transferência dos cenários e modelos. Aqui a solução foi simples: Reduziu-se bastante a qualidade de ambos, não somente quanto à sua resolução, como também quanto à profundidade de cor empregada. A diferença nos cenários é notável, especialmente artefatos como macroblocking. É difícil mensurar o ganho em tamanho de dados a partir destas técnicas, mas processos semelhantes costumam reduzir de 50% a 80% o tamanho de uma imagem.

Vale lembrar que a versão de Nintendo 64 possui suporte para o Cartucho de Expansão, onde o jogo o utiliza para ser exibido em 480i, ao invés de 240p. Isso vai um pouco de gosto (eu, por exemplo, prefiro 240p), mas a única diferença prática é nos vetores, e não as texturas, dos personagens e inimigos serem exibidos em 4x suas resolução original. Isso não aumenta em nada o arquivo final do jogo, ja que as texturas aplicadas a estes vetores continuam em baixa resolução. Os cenários, então, continuam os mesmos.

Uma comparação de resolução e qualidade de algumas texturas do jogo.

E é aqui que eu trago um bonus para vocês: O jogo possui extras em relação ao PS1! Está versão traz alguns arquivos extras que conectam melhor a estória com Resident Evil 0 e até CODE: Veronica, um sistema de mudar a posição de itens, um novo método de controle e a possibilidade de mudar a cor do sangue. Mas, antes que você ache que estas mudanças tornam a viabilidade técnica do port mais complexa, saiba que nada disso aumenta o tamanho final do jogo. Uma última novidade fica para o uso do sistema de som surround da Dolby, mas este atua apenas como uma reprogramação do audio ja existente e, portanto, também não afeta o tamanho final do arquivo.

Perceba a diferença do cenário, especialmente a diferença em legibilidade de certos elementos.

No entanto, não me entenda mal: O jogo no 64 continua muito divertido e a qualidade reduzida dos cenários e personagens não é tão perceptível quanto parece quando jogado numa TV da época. As cutscenes são o que chamam mais atenção nesse port, mas, sinceramente, isso não afeta a qualidade geral do que é um dos melhores jogos de terror daquela geração. A análise aqui é apenas técnica e por finalidade de desmistificar a idéia de que este fora um milagre de port, quando não é verdade. Este foi um ótimo port, focando suas concessões em pontos chaves, mas em nenhum momento resultou em “transferir os dados de dois CD’s para uma cartucho de 64 MB”, como fora vendido pela imprensa.

Então, por fim, concluímos que reduzir Resident Evil 2 para apenas um cartucho de 64 MB não foi um milagre.  A versão de PS1 não era muito bem otimizada quanto ao uso de espaço em disco, mas não precisava: CD-ROM era um artigo muito barato e definitivamente não apresentava uma limitação para os desenvolvedores. Reproduzir esta experiência no console da Nintendo requeria nada mais do que empregar técnicas bem simples e conhecidas na época. Um milagre? Não, especialmente devido às diferenças de qualidade entre entre ambas as versões. Foi apenas marketing, e um marketing que deu bem certo…

Portal da Transparencia:

Abaixo gostaria de esclarecer como cheguei a alguns números apresentados no texto por motivos de transparência:

  • Os 370 MB que eu mencionei foram observados criando uma cópia do meu próprio disco original de PS1 (versão Greatest Hits).
  • Os 750 MB da versão da PSN Store foi tirado da minha própria cópia digital do jogo, observada através do PS Vita e PS3 (ambos contam o mesmo valor final).
  • A estimativa dos 450 MB total para ambos os discos quando fatorado o conteúdo repetido foi feita ao adicionar 25% a mais no valor inicial de 370 MB. Isso foi feito levando em consideração que as únicas diferenças entre as versões são as vozes dos personagens, os créditos e alguns segundos de cutscenes exclusivas. 25% é um número generoso para a quantidade de dados.
  • A porcentagem de 50% a 80% foi alcançada ao observar uma mudança de compressão de imagem Raw de 24-bits (semelhante ao .CPT usado na versão de PS1) para uma imagem lossless de 8-bits (semelhante à usada na versão de Nintendo 64) utilizando TIFF (1993) e JPEG (1992).
  • A diferença de 100 MB para 5 MB foi usada para ilustrar os ganhos usando uma configuração de video diferente do PS1. Sim, são, normalmente, 95% de ganhos ao diminuir a luminosidade e framerate pela metade e mudar de profundidade de cor de 24bits para 8bits. Isso pode ser facilmente observado no formato Bink video, da RAD, usado extensivamente em games desde 1999.

Por fim, gostaria de deixar claro que este texto não é um desmerecimento do trabalho da Angel Studios. Como falo ao final, o resultado final foi muito bom para a maioria dos jogadores. A proposta é apenas desmistificar que o projeto “comprimiu” os dados de dois CD’s inteiros (que é uma grande mentira) em um cartucho de 64 MB utilizando técnicas avançadas, quando na verdade a versão original ja era bem mal otimizada no seu uso de dados.

Comentários