Retina Desgastada
Idéias, opiniões e murmúrios sobre os jogos eletrônicos
Comunidade do SteamMastodonCanal no YouTubeInstagram

22 de agosto de 2020

Saqueando o Cadáver: Warframe

20200323010426_1

Eu jurei a mim mesmo que nunca mais faria isso. "Saquear o cadáver" de um jogo é o ato de extrair seus arquivos para outros usos, uma prática que já foi até seção aqui no blog em seus primeiros anos mas estava esquecida por quase meia década. O motivo é óbvio e eu relembrei nos últimos dias: é uma atividade cansativa que pode ser infrutífera.

Entretanto, após mais de 400 horas de Warframe era evidente que eu estava obcecado pelo jogo. Ainda que o interesse esteja arrefecendo, é um universo que eu gostaria de carregar comigo por mais tempo. Isso significaria três metas: extrair falas e sons para usar no Windows, conseguir sua trilha sonora e obter animações para transformar em protetor de tela.

Tecnicamente, de acordo com uma mensagem no fórum da desenvolvedora Digital Extremes, fazer isso para uso privado não é ilegal, desde que seja feito sem fins lucrativos.

assets

Com o aval da empresa e a consciência tranquila, mergulhei nesse Void em busca de respostas. Esse é o relato de um fracasso.

Extraindo Sons

Para início de conversa, todos os arquivos que Warframe usa ficam armazenados em uma espécie de cache em \Steam\steamapps\common\Warframe\Cache.Windows e divididos em três tipos de arquivos .cache: H (com o header dos arquivos reais), B (com os binários dos arquivos reais) e, ironicamente, F (que deveria significar full de completo). Para cada um deles existe um arquivo .toc que age como uma espécie de índice. O engine do jogo monta tudo isso em tempo real para você usando algum método que muitos tentaram decifrar. Apesar da boa vontade aparente da Digital Extremes, há ofuscação em andamento aqui para prevenir extração e não existe qualquer ferramenta oficial nesse sentido.

octaviaUm valente usuário em 2015 conseguiu criar um extrator para o motor Evolution, usado pela desenvolvedora em Warframe, Dark Sector e Star Trek. Ele é capaz de descompactar os arquivos cache e reproduzir sua estrutura interna. Porém, ainda assim, os arquivos extraídos não são os arquivos combinados. É como se ele tivesse pegado um bolo e extraído suas moléculas de glicose, carboidrato e gorduras e você ainda precisa de uma ferramenta adicional para transformar tudo isso em açúcar, farinha e manteiga, a grosso modo.

Depois de longos minutos extraindo documentos gigantes, eu tinha arquivos .wav em mãos mas eles não eram reconhecidos por nenhum programa de áudio.

Outro usuário foi capaz de criar um programinha que combina os arquivos de sons. É necessário que sejam extraídos os arquivos do cache do tipo H, B e F e ele faria a mágica. Mais alguns longos minutos e tive uma mensagem de erro insolúvel.

O fato é que cinco anos e um longo período para a desenvolvedora alterar seus padrões e modificar seu engine. Basta uma mudança não documentada para quebrar o programa amador de um entusiasta. Desde então, ninguém mais se atreveu a isso. Até mesmo o Game Extractor obteve resultados similares, apenas com uma interface mais amigável.

Felizmente, a Digital Extremes possui (ainda que bem escondido) um fan kit oficial com alguns sons presentes no jogo. Desconfio que sejam versões antigas, mas é o que temos para hoje.

Extraindo a Trilha Sonora

Se um simples "wake up, Tenno" em formato wav é praticamente impossível de ser arrancado das entranhas do jogo, o que dizer de uma faixa sonora inteira? Warframe tem músicas magníficas, muitas delas exclusivas de determinados momentos e que não repetem mais.

Uma busca rápida na internet revelou que eu não precisaria me preocupar com essa questão. Embora seja possível encontrar versões de distribuição alternativa facilmente acessíveis na web, a própria Digital Extremes disponibiliza a trilha sonora inteira de forma legalizada e com um preço acessível no Bandcamp.

Warframe OST

Extraindo Animações

Em teoria, as animações do jogo ficam armazenadas em H.AnimRetarget.cache e suas variáveis. De acordo com o arquivo de texto CachePlan, teríamos algo do tipo:
B.AnimRetarget:/Lotus/Interface/Backgrounds/Legacy/LegacyBackground.swf

É uma instrução para o jogo extrair um arquivo .SWF a partir de B.AnimRetarget. Um arquivo Flash! Um dos formatos mais fáceis para se converter em protetor de tela. Entretanto, minha ferramenta de extração de 2015 não conseguiu extrair absolutamente nada de útil de nenhum AnimRetarget.

Warframe apresenta animações e clipes excelentes para a função que eu queria. Seja a chegada do personagem pela primeira vez em Cetus ou Fortuna, a animação da nave indo para missões, a abertura de um portal entre os planetas ou mesmo a simples animação de uma Jornada concluída no Codex. Acredito que algumas dessas sejam geradas a partir do motor gráfico, obviamente, mas outras poderiam ser pré-gravadas e, consequentemente extraíveis das pastas.

Retina Desgastada

Uma pesquisa na internet foi a parte mais frustrante de uma tarefa que já estava exaustiva. Foram várias as decepções:

  1. Uma quantidade absurda de pessoas confunde screensaver com wallpaper;
  2. Há um "bug" em Warframe que permite que o screensaver do Windows se ative se o jogo for esquecido por muito tempo e muita gente reclama disso na internet
  3. Há muitos sites que combinam quaisquer palavras-chave só para atrair tolos, mas não entregam o que prometem.
  4. Há um pequena oferta de screensavers que são slideshows do jogo e isso eu poderia fazer com uma mão nas costas e, portanto, não era o meu objetivo.
  5. Aparentemente, não há mais interesse em screensavers nos dias de hoje.

Uma vez mais saio sem conseguir exatamente o que queria, do jeito que eu queria. A fina arte de saquear tumbas e segredos de jogos vai se tornando cada ano mais complicada.

Ouvindo: Keith Power - Red Broth

Nenhum comentário:

Retina Desgastada

Blog criado e mantido por C. Aquino

Outcast - A New Beginning