Como Doom chegou ao Super Nintendo

imagem

Este artigo é uma tradução do capítulo do Game Engine Black Book: DOOM , uma análise detalhada da estrutura interna de um dos mais influentes jogos de software de identificação. Este capítulo fala sobre o complexo processo de portar DOOM para a Super Nintendo e o papel principal que o desenvolvedor da Star Fox, Argonaut Games, desempenhou nele .

O livro foi escrito pelo autor e programador Fabien Sanglar, e seu texto completo agora pode ser adquirido em papel e em formato digital .

O Super Nintendo Entertainment System foi lançado no Japão em 1990 e no ano seguinte apareceu nos EUA e na Europa.

Ela se tornou uma descendente de 16 bits do NES de 8 bits. No Japão, o Super Famicom (FAMIly COMputer) obteve sucesso instantâneo e todo o lote inicial de 300 mil dispositivos foi esgotado em questão de horas. A empolgação foi tão forte que o governo solicitou à Nintendo o futuro para lançar seus consoles nos finais de semana, a fim de evitar agitações.

Para garantir um console de jogos de alta qualidade, a Nintendo criou um sistema de controle implacável. Os editores tinham o direito de lançar apenas cinco jogos por ano. Para que essa regra se aplique, a Nintendo se reserva o direito de fabricar cartuchos apenas para si; os editores foram forçados a comprá-los da Nintendo. Para que todos possam jogar de acordo com as regras (e também para proteger os jogos de copiar), antes de iniciar o jogo, o console do SNES verificava a presença de um chip CIC. Era um poderoso mecanismo de defesa que só podia ser quebrado no final da vida útil do SNES.

Ao longo dos nove anos de vida do console, 721 jogos foram lançados, entre os quais sucessos como Super Mario World , Zelda III , Mario Kart , F-Zero , Super Metroid e Donkey Kong. País . Quase 50 milhões de consoles foram vendidos durante todo o tempo, então o SNES é considerado um dos consoles mais populares da história, tanto em termos de volumes de vendas quanto no catálogo de jogos.

O SNES tecnicamente superior estava no campo dos gráficos 2D. Seu processador 65C816 de 16 bits com uma frequência de 3,58 MHz possuía 128 kbytes de RAM. Ele controlava uma PPU (Picture Processing Unit) com 64 kbytes de RAM, que lidava com sprites grandes e podia suportar até 256 cores com uma resolução de 256x240. O sistema de som do console consistia em uma poderosa combinação de um processador Sony SPC700 de 8 bits e um processador de sinal digital de 16 bits com 64 kbytes de RAM dedicada.

Apesar do impressionante mecanismo de processamento de sprites bidimensionais e, em particular, da função Modo 7, a máquina não possuía força para operações computacionalmente caras, como a computação 3D. A Nintendo reconheceu claramente que o 3D seria o próximo estágio importante no desenvolvimento de jogos, mas não tinha a capacidade de implementá-lo. Pela vontade do destino, uma pequena empresa britânica encontrou uma solução para esse problema.

Argonaut Games


Em 1982, Jez San desenvolveu, sozinho, jogos projetados exclusivamente para os computadores C64, Atari ST e Amiga. Ele precisava de uma empresa para vender suas criações. Vendo as semelhanças entre seu nome (J. San) e Jason (Jason) do mito dos Argonautas, ele chamou Argonaut Games plc.

A empresa não permaneceu um conjunto de pessoa única por muito tempo. Em 1990, ele reuniu pessoas talentosas no escritório da empresa em Londres e se interessou pelo console portátil Nintendo Game Boy, lançado em 1989. A equipe conseguiu fazer dois feitos aparentemente quase impossíveis: eles criaram um mecanismo 3D de estrutura de arame e quebraram a defesa da CIC para instalá-lo no Game Boy.

“O logotipo da Nintendo desceu da parte superior da tela e, quando chegou ao meio, o gerenciador de inicialização verificou se o logotipo estava no lugar certo.

O jogo foi lançado apenas se esta palavra estivesse no lugar certo da ROM. Se alguém quisesse criar um jogo sem a permissão da Nintendo, teria que usar a palavra Nintendo sem licenciar; portanto, a Nintendo poderia abrir um processo de marca registrada. Descobrimos que era apenas um resistor e um capacitor - peças custando cerca de um centavo - e descobrimos como enganar a proteção. O sistema leu a palavra Nintendo duas vezes - primeiro para exibi-la na tela durante o processo de inicialização, pela segunda vez - para verificar sua correção antes de iniciar o jogo a partir do cartucho. E foi um erro fatal - a primeira vez que o console leu a palavra Nintendo, fizemos com que ele retornasse o Argonaut para que caísse no topo da tela. No segundo teste, aplicamos energia ao resistor e capacitor para que a palavra correta fosse Nintendo e o jogo carregado sem problemas ”- Jez San, de uma entrevista com a Eurogamer gravada em 2014.

Na CES '90, seu mecanismo de demonstração do estande da Nintendo chegou ao escritório da empresa em Kyoto. Jez não sabia disso, mas escolheu o momento perfeito. Naquele momento, a Nintendo estava trabalhando no Japão em jogos para o Super Famicom, que deveriam mostrar na época do lançamento do console sua superioridade tecnológica. Super Mario World estava na sua infância, mas o simulador de vôo Pilotwings já era um jogo um pouco mais complicado.

Para simular o alívio no Pilotwings , foi utilizado o modo Modo 7 do dispositivo PPU (capaz de realizar transformações afins como rotação, dimensionamento e corte da imagem em partes), bem como o modo HDMA. No entanto, a própria aeronave continuava sendo os sprites bidimensionais desenhados à mão de sempre. Isso incomodou o produtor do jogo, Shigeru Miyamoto, porque ele não permitiu que a câmera girasse suavemente ao redor da aeronave (os sprites quebrados em pedaços eram desiguais).

Naquela época, a Nintendo não gostava de trabalhar com empresas de terceiros e, mais ainda, com estrangeiros. Mas desta vez, eles fizeram uma exceção e convidaram Jeza para sua sede em Kyoto com Dylan Cuthbert, que trabalhou no mecanismo 3D.

Os jovens (Jesu tinha 23 anos e Dylan, 18) se reuniram com todos os vice-presidentes da Nintendo: Miyamoto, Gumpei Yokoi, Takehiro Izushi, Yasuhiro Minagawa e Genio Takeda. Eles mostraram tudo, desde o SNES secreto até o Mario secreto e Pilotwings . Eles foram questionados se era possível encontrar uma maneira de renderizar aviões como objetos poligonais reais.

“Eu disse a eles que isso é o melhor que eles podem alcançar, a menos que me permitam projetar o equipamento para que o SNES melhore em 3D. Surpreendentemente, mesmo que eu nunca tivesse feito equipamentos antes, eles disseram "sim" e me deram um milhão de dólares para vender. " - jes san

Jez corajosamente prometeu a eles um aumento "dez vezes maior" na produtividade, então a Nintendo aceitou com satisfação a proposta de desenvolver equipamentos especiais para o jogo. Pilotwings terá que ser lançado com aviões de sprite para pegar Super Famicom, mas o chip, mais tarde chamado Super FX, será usado para outro projeto da Nintendo.

Foi chamado de Star Fox .

Estrela raposa


De acordo com o acordo, a Nintendo tinha direito a todas as decisões sobre o design do jogo e também financiou a Argonaut Games para a produção não apenas de equipamentos, mas também de um mecanismo 3D para o jogo. Jez-san imediatamente começou a contratar especialistas britânicos que ele conhecia.

Para desenvolver o equipamento, ele assinou um contrato com a Flare Technology (as mesmas pessoas que estavam projetando o Atari Jaguar). O projeto de Ben Cheese, Rob Macaulay e James Hakeville recebeu o codinome de Argonaut Matemático Rotation I / O, ou MARIO. Como resultado, o dispositivo que eles criaram acabou sendo tão poderoso que, de brincadeira, chamou o Super NES de "apenas uma caixa para instalar nosso chip". Como era impossível atualizar o console, o chip foi soldado em cada novo cartucho de jogo, o que aumentou significativamente seu preço de varejo.

“Desenvolvemos o chip Super FX de uma maneira que ninguém antes de nós projetou o equipamento - primeiro criamos o software e nosso próprio conjunto de instruções para otimizar o software. Ninguém fez isso! Em vez de criar um chip 3D, desenvolvemos essencialmente um microprocessador RISC completo, com funções matemáticas e de renderização de pixels, enquanto o restante era tratado por software. Foi a primeira unidade de processamento de vídeo do mundo (Unidade de processamento gráfico) e temos patentes que o provam. ”- Jez Sun

Karl Graham e Pete Warns trabalharam no motor no escritório da empresa em Londres, enquanto Dylan Cuthbert, Christer Wombell e Giles Goddard (e mais tarde Colin Reed) se mudaram para os escritórios da Nintendo em Kyoto e trabalharam em estreita colaboração com a equipe Miyamoto.

O projeto foi coroado com sucesso comercial e tecnológico. Star Fox foi lançado em 21 de fevereiro de 1993 e vendeu quatro milhões de cópias.

A história adicional do relacionamento entre as duas empresas é triste. A sequência do megahit Star Fox 2 foi concluída pelos Argonauts e pronta para lançamento em 1996, mas a Nintendo interrompeu abruptamente o projeto, temendo seu impacto no lançamento do Nintendo 64. Argonaut não gostou disso e o relacionamento com a Nintendo se deteriorou. Mais tarde, a Nintendo atraiu Goddard e Wombella para ele. Dylan Cuthbert também poderia se juntar a eles, mas foi impedido de fazê-lo pela cláusula do acordo sobre a proibição de concorrência. Ele deixou o Argonaut e, trabalhando na Sony, começou a trabalhar no PlayStation.

O "divórcio" das duas empresas terminou quando a Nintendo não permitiu que o Argonaut usasse o personagem de Yoshi no jogo de plataforma que a empresa planejava lançar no PS1. Como resultado, eles substituíram Yoshi por um crocodilo e chamaram o jogo Croc: Legend of the Gobbos . Mais tarde, a Nintendo lançou o Mario 64 , um dos mecânicos que se assemelhavam a Croc ... e até conquistou o mercado por um ano.


O chip MARIO tinha um design simples baseado em um processador RISC de 16 bits com uma frequência de 10,74 MHz e um cache i de 512 bytes. Ele tinha seu próprio conjunto de instruções, otimizado para cálculos matemáticos, e seu próprio buffer de quadro, otimizado para a colocação de pixels. Seu trabalho era renderizar em um buffer de quadro, cujos dados eram transferidos periodicamente para a RAM do SNES usando DMA. Ele poderia renderizar 76.458 polígonos por segundo, o que forneceu a Star Fox a cerca de 15 fps.

Depois de testemunhar o sucesso fenomenal de Star Fox , outros estúdios se interessaram por suas tecnologias. Uma nova versão do chip chamada GSU foi lançada, capaz de operar com uma frequência de 21,4 MHz. A primeira geração de GSU foi usada em quatro jogos: Dirt Racer , Dirt Trax FX , Stunt Race FX e Vortex .

A segunda geração (GSU-2) tinha o mesmo processador com uma frequência de 21,4 MHz e contatos adicionais soldados ao barramento para aumentar o tamanho da ROM e do buffer de quadros suportados. Foi usado em três jogos: DOOM , Super Mario World 2: Yoshi's Island e Winter Gold .

Se você abrir o cartucho DOOM, poderá ver todos os componentes acima:

[1] GSU-2 de 16 bits, [2] buffer de quadro de 512 KB no qual GSU foi gravado, [3] ROM de 2 mebbytes, na qual o código e os recursos foram armazenados, [4] um módulo de seis inversores e [5 ] Chip CIC para proteção contra cópia.

“O crescimento de dez vezes a produtividade foi, de minha parte, um grande exagero. Não sabíamos se isso era realmente possível. Mas isso nos permitiu exagerar e, ao mesmo tempo, exceder promessas. Em vez de um aumento de dez vezes no desempenho 3D, aumentamos em 40 vezes. Em algumas áreas, como a computação 3D matemática, o crescimento foi até cem vezes maior. O chip não só podia realizar cálculos 3D e trabalhar com gráficos vetoriais, mas também fornecer rotação e redimensionamento de sprites, e essa função era extremamente necessária pelos próprios jogos da Nintendo, por exemplo, Super Mario World 2: Yoshi's Island. ” - jes san

Um fato interessante: alguns fãs conseguiram coletar todos os jogos (721 nomes) do catálogo do SNES. Normalmente, um cartucho DOOM pode ser visto de longe. Apenas três jogos foram liberados em um estojo cinza fora do padrão. Dois eram vermelhos - DOOM e Maximum Carnage , e Killer Instinct era preto.



Perdição no Super Nintendo


DOOM no SNES surgiu graças à genialidade e determinação de uma pessoa: Randy Linden. Ele adorou este jogo e decidiu portá-lo para o console popular para que mais jogadores pudessem se divertir. Randy não teve acesso ao código-fonte nem aos recursos das versões do jogo para PC ou console. Ele teve que começar do zero.

Para obter recursos, ele poderia usar a "especificação não oficial da Perdição ", escrita por Matthew Fell. Descreveu em detalhes a estrutura dos arquivos .wad. Sprites, texturas, música, efeitos sonoros e mapas que Randy extraiu de DOOM.WAD. Com o motor, a história foi completamente diferente.

" DOOM era um jogo verdadeiramente revolucionário, e eu queria que pessoas sem um PC o jogassem. DOOM no SNES era outro dos feitos de programação que poderiam ser realizados.

Comecei o projeto por conta própria e criei um protótipo totalmente funcional, mostrei sua demonstração no Sculptured Software. Um grupo de funcionários do Sculptured me ajudou a concluir o jogo para que ele fosse lançado a tempo para as férias.

O processo de desenvolvimento foi complicado por vários motivos e principalmente porque naquela época não havia sistemas de desenvolvimento para o chip SuperFX. Antes de iniciar o jogo, escrevi um conjunto completo de ferramentas - montador, vinculador, depurador.

O kit de desenvolvimento de hardware consistia em um cartucho Star Fox hackeado (porque tinha um chip SuperFX) e um par de controladores de jogo modificados, conectados aos conectores SNES e à porta paralela Amiga. Para baixar o código, definir pontos de interrupção, examinar a memória ao transferir dados entre os dois dispositivos, foi utilizado um protocolo serial.

Eu gostaria que o jogo tivesse mais níveis, mas, infelizmente, o jogo ocupou a ROM mais volumosa disponível e a ocupou quase completamente. Lembro-me vagamente de que apenas 16 bytes estavam livres, ou seja, não havia mais espaço! No entanto, eu consegui acomodar o suporte para Super Scope, mouse e modem XBand! Sim, você pode até jogar com alguém online! "- Randy Linden em uma entrevista para Gaming Reinvented

Nesta versão, é digno de nota como Randy teve que "cortar custos", levando em consideração as capacidades e limitações do mecanismo de portas.


Na Figura 6.8, é possível observar que, apesar de apenas 600 kibibytes de RAM, o piso azul permaneceu (embora da mesma cor). Observe que a geometria não mudou (deve ter sido extremamente difícil de obter, porque Randy não tinha DoomED nem doombsp), e todas as etapas do original foram preservadas no E1M1.

O mecanismo Reality, como Randy o chamava, era capaz de trabalhar com a geometria dos cartões de um PC, mas provavelmente tinha problemas com a velocidade de preenchimento e amostragem de texturas, porque as texturas do teto e do piso estão completamente ausentes.


A captura de tela acima mostra que a janela não é realmente exibida em tela cheia. Esse problema dizia respeito não apenas ao DOOM - Star Fox , Star Fox 2 e todos os jogos com Super FX tiveram que reduzir o tamanho da área de trabalho. Muito provavelmente, isso ocorreu devido à taxa de transmissão limitada do SNES, que não permitia a transmissão de DMA para exibição em tela cheia.

Dos 256x224 pixels da resolução "nativa" do console, apenas 216x176 puderam ser desenhados e apenas 216x144 foram usados ​​para 3D (uma barra de status foi desenhada em 32 linhas). As linhas verticais foram duplicadas, ou seja, o Reality Engine foi capaz de renderizar com uma resolução de apenas 108x144. E mesmo com uma resolução tão baixa, a taxa de quadros média era de 10 FPS, o que foi uma grande conquista. A taxa de quadros "baixa" não impediu os jogadores de jogar DOOM . Segundo Randy Linden, os cartuchos venderam muito bem.


A lista de recursos doados para RAM preciosa incluía resolução de sprite, que precisava ser significativamente reduzida; às vezes era até difícil desmontá-los (em oposição à arma do jogador, que era renderizada em maior resolução). Eu tive que remover todas as poses dos inimigos, com exceção de sprites olhando para o jogador, se livrar de brigas de monstros, espalhar sons (monstros acordavam apenas por contato visual), cortar a maioria dos efeitos sonoros (todos os monstros pareciam diabinhos).

Fato interessante: a Nintendo inicialmente proibiu o uso de sangue em jogos no SNES. Quando o DOOM foi lançado, um procedimento de classificação do ESRB havia aparecido em cena. Dada a quantidade de sangue e pedaços de carne, não surpreende que DOOM no SNES tenha recebido uma classificação de M ("a partir dos 17 anos").

O texto completo de Game Engine Black Book: DOOM está disponível no site de Fabien Sanglar.

Source: https://habr.com/ru/post/pt455429/


All Articles