Skip to content

LAS Recomp for Android 0.5.6 (preview): fixes from LAS Recomp and a faster game code build / correções do LAS Recomp e compilação do código do jogo mais rápida

Pre-release
Pre-release

Choose a tag to compare

@mamcjr mamcjr released this 26 Oct 12:57
· 3 commits to main since this release

English

Fixes from the original LAS Recomp, two engine fixes, and a check for damaged game files.

  • Names with accents: a name like "Sebastiã" was cut in the middle of a letter, and the file select crashed. Names are now cut at whole letters, 8 as on the console, whether typed on the phone's keyboard or picked on the on-screen keys (from LAS Recomp).
  • Damaged or changed game files (from LAS Recomp): copies with one of the game's files missing, renamed or changed crashed at start with nothing saying why. The setup now checks every game file by name and size, and their total; if something is off, it ends with "Game files damaged or changed" and what to do, the start screen says so in orange, and the log names the files. PLAY stays available (a translation mod changes sizes too). Copies set up before 0.5.6 aren't checked until they're set up again.
  • Save editor: Give hands out the item you chose. From Mermaid's Scale on it handed out another one (it sent the item's row in the game's table, not its id). Dungeon items take the dungeon number as their index. Equipment rows also set the bit the game uses to know an item was found (from LAS Recomp).
  • Faster game code build: functions with jump tables no longer get an entry into every instruction, only into each block. 1.0.1's game code built in 284 s on the POCO F7 Ultra (416 s with 0.5.4).
  • Shaders that use local memory zeroed 1 KB per pixel even when they used a few bytes; now they zero what they use, which saves GPU work on those shaders.

Updating from 0.5.x builds each version's game code once more (about 4-5 minutes per version on a fast phone), and the start screen prepares the shaders again (under a minute). Saves aren't touched.

Validation: release APK built and signed with the same key as the previous versions, installed over 0.5.5 on the POCO F7 Ultra (Adreno 830, Turnip). A new file named "Sebastiã" (8 letters, 9 bytes: the case that crashed) started the game and was saved whole; "Rupees (100)" given from the save editor sent the right item and the wallet went from 0 to 100; the damaged-files warning shown on the start screen with PLAY available; the game's own check found nothing wrong in an intact 1.0.1 copy (3836 files), with a translation mod on; 1.0.1's game code built in 284 s and 1.1.0's in 4 min 15 s. The file check is also tested against the real 1.0.0 files on the PC (all 3836 the game's, the total right; a renamed, resized, missing and extra file each caught). Not tested here: setting up a really damaged copy, and the GPU saving of the local memory fix in LAS.

Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.


Português

Correções do LAS Recomp original, duas correções do motor e uma verificação de arquivos do jogo danificados.

  • Nomes com acento: um nome como "Sebastiã" era cortado no meio de uma letra, e a seleção de arquivos travava. Agora o nome é cortado em letras inteiras, 8 como no console, digitado no teclado do celular ou escolhido nas teclas da tela (do LAS Recomp).
  • Arquivos do jogo danificados ou alterados (do LAS Recomp): cópias com algum arquivo do jogo faltando, renomeado ou alterado travavam ao abrir, sem nada dizer por quê. A instalação agora confere cada arquivo do jogo por nome e tamanho, e o total; se algo estiver errado, ela termina com "Arquivos do jogo danificados ou alterados" e o que fazer, a tela inicial avisa em laranja e o log diz quais são os arquivos. O JOGAR continua disponível (um mod de tradução também muda tamanhos). Cópias instaladas antes da 0.5.6 só são conferidas quando forem instaladas de novo.
  • Editor de saves: o Dar item entrega o item escolhido. A partir da Escama de Sereia ele entregava outro (mandava a linha do item na tabela do jogo, não o id dele). Itens de masmorra usam o número da masmorra como índice. As linhas de equipamento também marcam o bit que o jogo usa para saber que o item foi encontrado (do LAS Recomp).
  • Código do jogo compilado mais rápido: funções com tabelas de salto não ganham mais uma entrada em cada instrução, só em cada bloco. O código do jogo da 1.0.1 foi compilado em 284 s no POCO F7 Ultra (416 s na 0.5.4).
  • Shaders que usam memória local zeravam 1 KB por pixel mesmo usando poucos bytes; agora zeram só o que usam, o que poupa trabalho da GPU nesses shaders.

Atualizar a partir da 0.5.x compila o código do jogo de cada versão mais uma vez (uns 4 a 5 minutos por versão num celular rápido), e a tela inicial prepara os shaders de novo (menos de um minuto). Os saves não são alterados.

Validação: APK de release compilado e assinado com a mesma chave das versões anteriores, instalado por cima da 0.5.5 no POCO F7 Ultra (Adreno 830, Turnip). Um arquivo novo com o nome "Sebastiã" (8 letras, 9 bytes: o caso que travava) começou o jogo e foi salvo inteiro; "Rupias (100)" dadas pelo editor de saves mandaram o item certo e a carteira foi de 0 para 100; o aviso de arquivos danificados apareceu na tela inicial com o JOGAR disponível; a verificação do próprio jogo não achou nada errado numa cópia íntegra da 1.0.1 (3836 arquivos), com um mod de tradução ligado; o código do jogo da 1.0.1 foi compilado em 284 s e o da 1.1.0 em 4 min 15 s. A verificação de arquivos também é testada com os arquivos reais da 1.0.0 no PC (os 3836 do jogo, o total certo; um arquivo renomeado, um com outro tamanho, um faltando e um a mais, cada um pego). Não testado aqui: instalar uma cópia realmente danificada, e o ganho de GPU da correção de memória local no LAS.

Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.