Repository navigation
Releases: mamcjr/LASRecompAndroid
Release list
LAS Recomp for Android 0.5.3 (preview): more drivers below Vulkan 1.3 / mais drivers abaixo do Vulkan 1.3
English
More drivers below Vulkan 1.3, such as the stock Mali drivers on many Samsung phones.
- Five more extensions are optional (issue #2: on the Galaxy A15, 0.5.2 got past dynamic rendering and then listed
VK_KHR_synchronization2,VK_EXT_extended_dynamic_state,VK_EXT_extended_dynamic_state2,VK_EXT_shader_demote_to_helper_invocationandVK_KHR_shader_terminate_invocation). Without them:- synchronization2: barriers and submissions go through Vulkan 1.0's own.
- extended dynamic state: each draw's cull mode, depth / stencil test and ops, topology and depth bias are baked into its pipeline instead of being set per draw. That means more pipelines, so areas may stutter more the first time they show up on those drivers.
- demote / terminate: below Vulkan 1.3 the shaders don't use them.
- Drivers that have these extensions keep using them, as before.
Updating from 0.5.x doesn't build the game code again.
Validation: release APK built and signed with the same key as the previous versions, installed over 0.5.2 on the POCO F7 Ultra (Adreno 830); village reached with Turnip on the normal path (58-60 fps). With each fallback forced on its own with Turnip (LARECOMP_NO_SYNC2=1, LARECOMP_NO_EDS=1), the village drew right at 60 fps; with all of them plus the render passes from 0.5.2, frame generation and SMAA also drew right. The Qualcomm driver run as Vulkan 1.1 with all of them (11 device extensions, the closest to the Mali case available here) drew the village right at 30 fps. Only the village and Marin's house were tested this way, not dungeons. Not tested yet on a real Mali: it may still lack something further on, which the message will then list.
Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.
Português
Mais drivers abaixo do Vulkan 1.3, como os drivers Mali de fábrica de muitos celulares Samsung.
- Mais cinco extensões ficaram opcionais (issue #2: no Galaxy A15, a 0.5.2 passou da renderização dinâmica e então listou
VK_KHR_synchronization2,VK_EXT_extended_dynamic_state,VK_EXT_extended_dynamic_state2,VK_EXT_shader_demote_to_helper_invocationeVK_KHR_shader_terminate_invocation). Sem elas:- synchronization2: as barreiras e os envios passam pelos do próprio Vulkan 1.0.
- estado dinâmico estendido: o culling, o teste e as operações de profundidade / stencil, a topologia e o depth bias de cada desenho ficam embutidos no pipeline dele, em vez de definidos a cada desenho. Isso significa mais pipelines, então as áreas podem engasgar mais na primeira vez que aparecem nesses drivers.
- demote / terminate: abaixo do Vulkan 1.3 os shaders não as usam.
- Drivers que têm essas extensões continuam usando-as, como antes.
Atualizar a partir da 0.5.x não compila o código do jogo de novo.
Validação: APK de release compilado e assinado com a mesma chave das versões anteriores, instalado por cima da 0.5.2 no POCO F7 Ultra (Adreno 830); vila alcançada com o Turnip pelo caminho normal (58-60 fps). Com cada alternativa forçada sozinha no Turnip (LARECOMP_NO_SYNC2=1, LARECOMP_NO_EDS=1), a vila desenhou certo a 60 fps; com todas juntas mais os render passes da 0.5.2, a geração de quadros e o SMAA também desenharam certo. O driver da Qualcomm rodando como Vulkan 1.1 com todas elas (11 extensões no dispositivo, o mais próximo do caso da Mali que dá para testar aqui) desenhou a vila certo a 30 fps. Só a vila e a casa da Marin foram testadas assim, não masmorras. Ainda não testado numa Mali de verdade: ainda pode faltar algo mais adiante, que a mensagem então vai listar.
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.
LAS Recomp for Android 0.5.2 (preview): drivers without dynamic rendering / drivers sem renderização dinâmica
English
Drivers without dynamic rendering, such as the stock Mali drivers on many Samsung phones.
- Drivers without
VK_KHR_dynamic_rendering(issue #2: Galaxy A15, Mali-G57): the app stopped at start with "This phone's Vulkan driver is too old for the game ... (missing: VK_KHR_dynamic_rendering)". It now draws with classic render passes on those drivers: each pass becomes a render pass and a framebuffer, kept for reuse, and the pipelines are made against them. The idea and the first version come from BOTWRecompAndroid, which shares this renderer. Drivers that have dynamic rendering keep using it, as before. - The startup message names every missing extension, not only the first, so one screenshot says everything a driver lacks.
Updating from 0.5.0 or 0.5.1 doesn't build the game code again.
Validation: release APK built and signed with the same key as the previous versions, installed over 0.5.1 on the POCO F7 Ultra (Adreno 830); village reached with Turnip and dynamic rendering, as before (60 fps). With the render passes forced on (LARECOMP_NO_DYNAMIC_RENDERING=1): village drawn right at 59-60 fps with Turnip, and at 30 fps with the Qualcomm driver run as Vulkan 1.1 without the dynamic rendering extensions, the closest to the Mali case available here. Frame generation, SMAA, the start screen and the settings also drew right through the render passes. Not tested yet on a real Mali: it may lack other extensions too, which the message will then list.
Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.
Português
Drivers sem renderização dinâmica, como os drivers Mali de fábrica de muitos celulares Samsung.
- Drivers sem
VK_KHR_dynamic_rendering(issue #2: Galaxy A15, Mali-G57): o app parava na abertura com "This phone's Vulkan driver is too old for the game ... (missing: VK_KHR_dynamic_rendering)". Agora, nesses drivers, ele desenha com render passes clássicos: cada passada vira um render pass e um framebuffer, guardados para reuso, e os pipelines são criados para eles. A ideia e a primeira versão vêm do BOTWRecompAndroid, que compartilha este renderizador. Drivers que têm a renderização dinâmica continuam usando-a, como antes. - A mensagem de abertura lista todas as extensões que faltam, não só a primeira, então uma captura diz tudo o que o driver não tem.
Atualizar a partir da 0.5.0 ou da 0.5.1 não compila o código do jogo de novo.
Validação: APK de release compilado e assinado com a mesma chave das versões anteriores, instalado por cima da 0.5.1 no POCO F7 Ultra (Adreno 830); vila alcançada com o Turnip e a renderização dinâmica, como antes (60 fps). Com os render passes forçados (LARECOMP_NO_DYNAMIC_RENDERING=1): vila desenhada certo a 59-60 fps com o Turnip, e a 30 fps com o driver da Qualcomm rodando como Vulkan 1.1 sem as extensões da renderização dinâmica, o mais próximo do caso da Mali que dá para testar aqui. Geração de quadros, SMAA, a tela inicial e as configurações também desenharam certo pelos render passes. Ainda não testado numa Mali de verdade: pode faltar outras extensões também, que a mensagem então vai listar.
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.
LAS Recomp for Android 0.5.1 (preview): Turnip on the Adreno 610 / Turnip na Adreno 610
English
Turnip on the Adreno 610 and other GPUs without 16-bit storage.
- GPUs without 16-bit storage (issue #4, Adreno 610 with Turnip): the app stopped at start with "lacks a feature required by this renderer: storageBuffer16BitAccess". No shader the game or the app uses needs that feature (none of the 3592 shaders translated on the Adreno 830 declares it), so it's now used only when the driver has it.
- Confirmed on an Adreno 750 (issue #3): with Turnip and Settings > Saves & files > Driver compatibility > Game memory on the GPU (Turnip) set to On, 0.5.0's fix (game memory reached by pointer) draws text and colors right. On Automatic, those GPUs still use the copies.
Updating from 0.5.0 doesn't build the game code again.
Validation: release APK built and signed with the same key as the previous versions, installed over 0.5.0 on the POCO F7 Ultra (Adreno 830) without building the game code again; village reached with Turnip. With 16-bit storage forced off (LARECOMP_VK_NO_STORAGE16=1), the village drew right at 60 fps with Turnip and at 30 fps with the Qualcomm driver. Not tested yet on a real Adreno 610: it may lack something else further on, which the error message would then name.
Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.
Português
Turnip na Adreno 610 e em outras GPUs sem armazenamento de 16 bits.
- GPUs sem armazenamento de 16 bits (issue #4, Adreno 610 com Turnip): o app parava na abertura com "lacks a feature required by this renderer: storageBuffer16BitAccess". Nenhum shader do jogo ou do app precisa desse recurso (nenhum dos 3592 shaders traduzidos na Adreno 830 o declara), então agora ele só é usado quando o driver o tem.
- Confirmado numa Adreno 750 (issue #3): com o Turnip e Configurações > Saves e arquivos > Compatibilidade do driver > Memória do jogo na GPU (Turnip) ligada, a correção da 0.5.0 (memória do jogo alcançada por ponteiro) desenha textos e cores certos. No Automático, essas GPUs ainda usam as cópias.
Atualizar a partir da 0.5.0 não compila o código do jogo de novo.
Validação: APK de release compilado e assinado com a mesma chave das versões anteriores, instalado por cima da 0.5.0 no POCO F7 Ultra (Adreno 830) sem compilar o código do jogo de novo; vila alcançada com o Turnip. Com o armazenamento de 16 bits forçado a desligar (LARECOMP_VK_NO_STORAGE16=1), a vila desenhou certo a 60 fps com o Turnip e a 30 fps com o driver da Qualcomm. Ainda não testado numa Adreno 610 de verdade: pode faltar outra coisa mais adiante, que a mensagem de erro então vai nomear.
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.
LAS Recomp for Android 0.5.0 (preview): game versions 1.0.1 and 1.1.0, shader preparation / versões 1.0.1 e 1.1.0 do jogo, preparação de shaders
English
Game versions 1.0.1 and 1.1.0, several versions installed side by side, shader preparation and the fixes from upstream LAS Recomp's next beta.
- Game versions 1.0.1 and 1.1.0: besides 1.0.0, the extracted files of 1.0.1 and 1.1.0 now work too; the version is recognized from the game's own files.
- Several versions installed: Settings > Saves & files > Add another version sets up another release from its folder, next to the one you have. PLAY ‹ version › on the start screen switches between them (tap the arrows, or left / right on a controller). Saves are shared. Each version takes its own space and builds its own game code once (7-9 minutes on the Adreno 830). Versions other than 1.0.0 can be removed there; the base version 1.0.0 stays while others are installed.
- Shader preparation (from upstream beta 5): on the start screen, the shaders the game uses are prepared ahead, so areas stutter less the first time they show up. It runs once (about a minute on the Adreno 830, a few seconds after that) and again only when the caches are cleared.
- Fixes from upstream beta 5:
- Saves are all-or-nothing: a save cut short (app closed, phone off) keeps the last good one instead of a broken file.
- Dampe's amiibo option no longer crashes; a physics crash (LAS Recomp peiikai#314) and hangs at startup and during play (LAS Recomp peiikai#19) fixed.
- Lighting seam in interiors with a widened view fixed; wider aspect ratios show sky, sea and dungeon rooms correctly; the fishing game shows the whole pond with the aspect unlocked.
- Shader translator fixes.
- Frame rate: Auto's 30 fps is a steady 30, and it tries 60 less often where 60 never fits.
- Turnip on GPUs with a smaller memory range (the Adreno 750 of issue #3 and other Adreno 7xx: a shader reaches only 128 MB at once there, 2047 MB on the Adreno 830): with "Game memory on the GPU (Turnip)" on, the game's memory above that range read as zeros (missing text, wrong colors). Shaders now reach it by pointer. Tested on the Adreno 830 with the range forced down to 128 MB: text and colors right, 58-60 fps. Automatic still uses the copies on those GPUs until it's confirmed on one; to try the fast path, set that option to On.
- Vulkan 1.1 / 1.2 drivers: the extensions' features are now read correctly on drivers older than Vulkan 1.3 (the path for issue #2).
- Driver packages: the driver library is taken from the package's
meta.json, so packages whose library has another name load. - Opening the app with the screen locked or off no longer stops with "no Android window": it waits for the screen.
After updating, the game code is built again once (the generator changed).
Validation: release APK built and signed with the same key as the previous versions, installed over the earlier build on the POCO F7 Ultra (Adreno 830, Turnip). There, 1.0.1 and 1.1.0 were added next to 1.0.0 (game code built in 441 s and 515 s), switched with the arrows and all three reached the village (60 fps; 54 fps on 1.1.0 with the phone hot after the builds). Saves and settings were unchanged after every switch (same hashes). Remove and Delete are blocked for 1.0.0 while others are installed. Opened with the screen off, the app waited and reached the start screen. Not tested yet: a phone whose driver is really Vulkan 1.1 (the 1.1 / 1.2 path was tested on the POCO by forcing it), an Adreno that isn't 8xx, and opening with the lock screen showing.
Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.
Português
Versões 1.0.1 e 1.1.0 do jogo, várias versões instaladas lado a lado, preparação de shaders e as correções do próximo beta do LAS Recomp original.
- Versões 1.0.1 e 1.1.0 do jogo: além da 1.0.0, os arquivos extraídos da 1.0.1 e da 1.1.0 agora também funcionam; a versão é reconhecida pelos próprios arquivos do jogo.
- Várias versões instaladas: Configurações > Saves e arquivos > Adicionar outra versão prepara outra versão a partir da pasta dela, ao lado da que você já tem. O JOGAR ‹ versão › da tela inicial alterna entre elas (toque nas setas, ou esquerda / direita no controle). Os saves são compartilhados. Cada versão ocupa o próprio espaço e compila o próprio código do jogo uma vez (7 a 9 minutos na Adreno 830). As versões que não são a 1.0.0 podem ser removidas ali; a versão base 1.0.0 fica enquanto houver outras instaladas.
- Preparação de shaders (do beta 5 original): na tela inicial, os shaders que o jogo usa são preparados antes, então as áreas engasgam menos na primeira vez que aparecem. Roda uma vez (cerca de um minuto na Adreno 830, alguns segundos depois disso) e de novo só quando os caches são limpos.
- Correções do beta 5 original:
- Os saves são tudo ou nada: um save interrompido (app fechado, celular desligado) mantém o último bom em vez de um arquivo quebrado.
- A opção de amiibo do Dampe não trava mais; corrigidos um travamento de física (LAS Recomp peiikai#314) e congelamentos na abertura e durante o jogo (LAS Recomp peiikai#19).
- Corrigida a emenda na iluminação dos interiores com a visão alargada; proporções mais largas mostram céu, mar e salas das masmorras corretamente; o jogo da pesca mostra o lago inteiro com a proporção destravada.
- Correções no tradutor de shaders.
- Taxa de quadros: os 30 fps do Automático são 30 estáveis, e ele tenta 60 menos vezes onde 60 nunca cabe.
- Turnip em GPUs com alcance de memória menor (a Adreno 750 da issue #3 e outras Adreno 7xx: lá um shader alcança só 128 MB de uma vez, contra 2047 MB na Adreno 830): com "Memória do jogo na GPU (Turnip)" ligada, a memória do jogo acima desse alcance era lida como zeros (textos faltando, cores erradas). Agora os shaders a alcançam por ponteiro. Testado na Adreno 830 com o alcance forçado para 128 MB: textos e cores certos, 58-60 fps. O Automático ainda usa as cópias nessas GPUs até ser confirmado numa delas; para testar o caminho rápido, ligue essa opção.
- Drivers Vulkan 1.1 / 1.2: os recursos das extensões agora são lidos corretamente em drivers anteriores ao Vulkan 1.3 (o caminho da issue #2).
- Pacotes de driver: a biblioteca do driver é lida do
meta.jsondo pacote, então pacotes cuja biblioteca tem outro nome carregam. - Abrir o app com a tela bloqueada ou desligada não para mais com "no Android window": ele espera a tela.
Depois de atualizar, o código do jogo é compilado de novo uma vez (o gerador mudou).
Validação: APK de release compilado e assinado com a mesma chave das versões anteriores, instalado por cima da compilação anterior no POCO F7 Ultra (Adreno 830, Turnip). Nele, a 1.0.1 e a 1.1.0 foram adicionadas ao lado da 1.0.0 (código do jogo compilado em 441 s e 515 s), alternadas pelas setas, e as três chegaram à vila (60 fps; 54 fps na 1.1.0 com o celular quente depois das compilações). Saves e configurações ficaram iguais depois de cada troca (mesmos hashes). Remover e Apagar ficam bloqueados para a 1.0.0 enquanto houver outras instaladas. Aberto com a tela desligada, o app esperou e chegou à tela inicial. Ainda não testado: um celular cujo driver seja de fato Vulkan 1.1 (o caminho 1.1 / 1.2 foi testado no POCO forçando-o), uma Adreno que não seja 8xx e abrir com a tela de bloqueio aparecendo.
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.
LAS Recomp for Android 0.4.1 (preview): driver compatibility and a log file / compatibilidade do driver e arquivo de log
English
Driver compatibility options for GPUs where the game draws wrong with Turnip, and a log file to send with a bug report.
- Driver compatibility (start screen: Settings > Saves & files): two options on Automatic by default. Automatic picks the fastest paths on Adreno 8xx GPUs, where they were made and tested, and the safer ones on the other GPUs. Each option can also be forced on or off.
- Game memory on the GPU (Turnip): on, the game's memory is mapped straight into the GPU's, the fastest way. Off, what each frame uses is copied instead, as with the other drivers: it costs CPU time but draws right where the fast way doesn't. Applies when the game starts.
- Turnip low-resolution Z (LRZ): Turnip's early depth test. Off sets
TU_DEBUG=nolrzbefore the driver loads, as LASRecomp-Android-Plus does; it can fix missing or broken drawing on some Adreno GPUs. Applies after a restart (the page shows a Restart now button). - Automatic needs the GPU before the driver loads: it reads the model from the system (e.g. "Adreno830v2"), else the GPU of the last start.
- Save a log file (same section): writes
lasrecomp-log.txtto a folder you pick with the Android folder picker - create one, e.g.Download/LASRecomp(Android doesn't let file managers into the app's own folder). Each start keeps the run before aslasrecomp-log-previous.txt, so a crash's log survives. Without a folder, the log stays in the app's own folder (readable with adb). The log now also lists the GPU's storage buffer range and memory types.
Validation: release APK built and signed with the same key as the previous versions. On the POCO F7 Ultra (Adreno 830, Turnip): Automatic detected the GPU before the driver loaded and kept both fast paths, 60 fps in the village as in 0.4.0. With both options off, the village drew right through the copies, 30 fps steady and 48-60 fps at 60. The settings page was used on the phone: Automatic / On / Off saved, the restart prompt for LRZ, a log folder created and picked, the log written there with the lines from the start, the run before kept, and a deleted folder shown as "No folder chosen". Not tested yet on an Adreno that isn't 8xx, the case Automatic is for (issue #3: an Adreno 750 with missing text and odd colors with Turnip).
Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.
Português
Opções de compatibilidade do driver para GPUs em que o jogo desenha errado com o Turnip, e um arquivo de log para enviar com um relato de bug.
- Compatibilidade do driver (tela inicial: Configurações > Saves e arquivos): duas opções no Automático por padrão. O Automático escolhe os caminhos mais rápidos nas GPUs Adreno 8xx, onde foram feitos e testados, e os mais seguros nas outras GPUs. Cada opção também pode ser forçada a ligar ou desligar.
- Memória do jogo na GPU (Turnip): ligada, a memória do jogo é mapeada direto na da GPU, o jeito mais rápido. Desligada, o que cada quadro usa é copiado, como nos outros drivers: custa tempo de CPU, mas desenha certo onde o jeito rápido falha. Vale quando o jogo inicia.
- Z de baixa resolução do Turnip (LRZ): o teste de profundidade antecipado do Turnip. Desligado, define
TU_DEBUG=nolrzantes de o driver carregar, como faz o LASRecomp-Android-Plus; pode corrigir desenhos faltando ou quebrados em algumas GPUs Adreno. Vale depois de reiniciar (a página mostra o botão Reiniciar agora). - O Automático precisa saber a GPU antes de o driver carregar: lê o modelo do sistema (por exemplo "Adreno830v2"), ou usa a GPU da abertura anterior.
- Salvar arquivo de log (mesma seção): grava o
lasrecomp-log.txtnuma pasta escolhida pelo seletor do Android - crie uma, por exemploDownload/LASRecomp(o Android não deixa gerenciadores de arquivos entrarem na pasta do próprio app). Cada abertura guarda a execução anterior nolasrecomp-log-previous.txt, então o log de um travamento não se perde. Sem pasta, o log fica na pasta do próprio app (legível pelo adb). O log também passou a mostrar o alcance dos storage buffers e os tipos de memória da GPU.
Validação: APK de release compilado e assinado com a mesma chave das versões anteriores. No POCO F7 Ultra (Adreno 830, Turnip): o Automático reconheceu a GPU antes de o driver carregar e manteve os dois caminhos rápidos, 60 fps na vila como na 0.4.0. Com as duas opções desligadas, a vila desenhou certo pelas cópias, 30 fps estáveis e 48-60 fps a 60. A página foi usada no celular: Automático / Ligado / Desligado salvos, o aviso de reinício do LRZ, uma pasta de log criada e escolhida, o log gravado nela com as linhas desde a abertura, a execução anterior guardada e uma pasta apagada mostrada como "Nenhuma pasta escolhida". Ainda não testado numa Adreno que não seja 8xx, o caso para o qual o Automático existe (issue #3: uma Adreno 750 com textos faltando e cores estranhas no Turnip).
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.
LAS Recomp for Android 0.4.0 (preview): frame generation, mods, Portuguese menus / geração de quadros, mods, menus em português
English
Frame generation (30 → 60 and 60 → 120), game mods, menus in Portuguese and a new upscaler.
- Frame generation (Video > Frame generation, off by default): in-between frames made from the picture, the scene's depth and the camera's movement, adapted from LASRecomp-Android-Plus (Nycolazs, MIT). The game's 30 fps become 60 and, with the 120 Hz option, its 60 become 120; the game keeps its own 60 Hz clock. The HUD stays in place and Link doesn't shake. When the GPU can't keep up, generation pauses by itself and tries again later. The per-pixel work is done once per real frame, in a small pass; on the POCO F7 Ultra with Turnip, at 60 → 120 in the village, generation cost ~0.4 ms of GPU time per real frame and stayed on the whole time. With Qualcomm's stock driver, prefer 30 fps: it doesn't hold 60 in the village.
- 120 Hz option (below frame generation, off by default): on, the app asks for the display's fastest mode and 60 fps become 120 (30 fps too, with three in-between frames, which is heavier). Off, it asks for 60 Hz. When the phone itself keeps the display at 120 Hz (like the POCO with its refresh rate set to 120 Hz in the system settings), the request is ignored and the in-between frames follow the display.
- Objects' own movement (experimental, below frame generation): characters that move on their own also move in the in-between frames, found by comparing each frame with the one before.
- Mods (Settings > Mods): folders with a
romfsfolder inside, as in Eden and Ryujinx, each turned on or off in the menu. A folder can be imported with the Android folder picker. No mods come with the app. - Menus in Portuguese when the phone is set to Portuguese: settings, start screen, save editor and messages.
- Snapdragon Game Super Resolution 1 upscaler (Qualcomm, BSD-3-Clause): a single pass, lighter than FSR 1.
- Performance overlay: shows the FPS with generation (FPS+FG) next to the game's FPS, has a compact one-line style (FPS, FPS+FG, RAM and battery temperature) and can be dragged with a finger anywhere on screen.
- Menu with a controller: the first press is no longer lost, left/right change choices and sliders, A or L/R enter the category's page and B closes the menu.
- Vulkan 1.1 / 1.2 drivers with the extensions that stand in for 1.3 are now accepted (like stock Mali drivers). If one is missing, the message says which.
- 32-bit shader math (Video): for drivers that advertise 64-bit integers but draw lighting, grass or text wrong.
- Setup takes less space:
romfs.binis built straight from the picked folder, without copying the romfs first. The free space setup asks for went from ~14 GiB to ~8 GiB, and existing installs get ~5.7 GiB back by themselves. - Setup compile: game functions outside the gameplay profiles (LASRecomp-Android-Plus's list) are compiled without optimization, to shorten the compile step.
- Dynamic resolution at a fixed 30 fps aims at the 30 fps budget instead of the 60 one, so it no longer sinks to the minimum.
- Menu and on-screen controls styled after Link's Awakening. The randomizer is gone on Android.
Validation: release APK built and signed with the same key as the previous versions. On the POCO F7 Ultra: frame generation 30 → 60, 60 → 120 and 30 → 120 (three in-between frames) with Turnip and with the stock driver, the automatic pause, and the in-between frame checked to sit halfway between two real frames (−5 px against −10 px); at 30 fps on a 120 Hz display (three in-between frames), Turnip generated ~65% of the time and the stock driver stayed paused almost all the time, so with that driver generation pays off on a display at 60 Hz. Mods: a 13-file mod applied (title screen and file select changed), turned off it goes back to the original, and importing with the picker copied identical files. Translated menus checked in screenshots; the menu navigated with simulated controller presses (aspect ratio, overlay style and volume changed, B closed it and saved); the overlay dragged and saved; SGSR 1 running without shader errors. Setup from scratch on the POCO, with the game files deleted and the folder chosen with the picker: ~7 min 40 s in all (romfs.bin in ~45 s, the compile in ~7 min with 12,862 hot functions optimized and the rest without optimization). The game then opened with a mod on and reached the village, and the saves were still there. The desktop paths of the shared parts were compiled. Not tested on a phone yet: Vulkan 1.1 drivers (Mali) and the Adreno 750.
Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.
Português
Geração de quadros (30 → 60 e 60 → 120), mods do jogo, menus em português e um novo upscaler.
- Geração de quadros (Vídeo > Geração de quadros, desligada por padrão): quadros intermediários feitos a partir da imagem, da profundidade da cena e do movimento da câmera, adaptados do LASRecomp-Android-Plus (Nycolazs, MIT). Os 30 fps do jogo viram 60 e, com a opção 120 Hz, os 60 viram 120; o jogo continua no próprio relógio de 60 Hz. O HUD fica no lugar e o Link não treme. Quando a GPU não dá conta, a geração pausa sozinha e tenta de novo depois. O trabalho por pixel é feito uma vez por quadro real, num passe pequeno; no POCO F7 Ultra com Turnip, a 60 → 120 na vila, a geração custou ~0,4 ms de GPU por quadro real e ficou ligada o tempo todo. Com o driver padrão da Qualcomm, prefira 30 fps: ele não segura 60 na vila.
- Opção 120 Hz (abaixo da geração, desligada por padrão): ligada, o app pede o modo mais rápido da tela e os 60 fps viram 120 (os 30 também, com três intermediários, mais pesado). Desligada, pede 60 Hz. Quando o próprio celular fixa a tela em 120 Hz (como o POCO com a taxa de atualização em 120 Hz nas configurações), o pedido é ignorado e os intermediários acompanham a tela.
- Movimento dos objetos (experimental, abaixo da geração): personagens que se movem sozinhos também andam nos quadros intermediários, encontrados comparando cada quadro com o anterior.
- Mods (Configurações > Mods): pastas com uma pasta
romfsdentro, como no Eden e no Ryujinx, cada uma ligada ou desligada no menu. A pasta pode ser importada pelo seletor do Android. Nenhum mod vem com o app. - Menus em português quando o celular está em português: configurações, tela inicial, editor de save e mensagens.
- Upscaler Snapdragon Game Super Resolution 1 (Qualcomm, BSD-3-Clause): uma passada só, mais leve que o FSR 1.
- Overlay de desempenho: mostra o FPS com a geração (FPS+FG) ao lado do FPS do jogo, tem um estilo resumido em uma linha (FPS, FPS+FG, RAM e temperatura da bateria) e pode ser arrastado com o dedo para qualquer lugar da tela.
- Menu com controle: o primeiro aperto não se perde mais, esquerda/direita mudam escolhas e controles deslizantes, A ou L/R entram na página da categoria e B fecha o menu.
- Drivers Vulkan 1.1 / 1.2 com as extensões equivalentes ao 1.3 agora são aceitos (como drivers Mali de fábrica). Se faltar alguma, a mensagem diz qual.
- Shaders com cálculo de 32 bits (Vídeo): para drivers que anunciam inteiros de 64 bits mas desenham iluminação, grama ou textos errados.
- A configuração ocupa menos espaço: o
romfs.biné montado direto da pasta escolhida, sem copiar o romfs antes. O espaço livre pedido caiu de ~14 GiB para ~8 GiB, e instalações existentes liberam ~5,7 GiB sozinhas. - Compilação da configuração: as funções do jogo fora dos perfis de jogo (lista do LASRecomp-Android-Plus) são compiladas sem otimização, o que deve encurtar a etapa de compilação.
- Resolução Dinâmica com 30 fps fixos mira o orçamento de 30 em vez do de 60, então não afunda mais até o mínimo.
- Visual do menu e dos controles na tela no estilo do Link's Awakening. O randomizer não existe mais no Android.
Validação: APK de release compilado e assinado com a mesma chave das versões anteriores. No POCO F7 Ultra: geração de quadros 30 → 60, 60 → 120 e 30 → 120 (três quadros intermediários) com Turnip e com o driver padrão, a pausa automática, e o quadro intermediário conferido a meio caminho entre dois quadros reais (−5 px contra −10 px); a 30 fps numa tela de 120 Hz (três intermediários), o Turnip gerou ~65% do tempo e o driver padrão ficou quase sempre em pausa, então com ele a geração compensa numa tela a 60 Hz. Mods: um mod de 13 arquivos aplicado (tela título e seleção de arquivo trocadas), desligado volta ao original, e a importação pelo seletor copiou os arquivos idênticos. Menus traduzidos conferidos em capturas; menu navegado com controle simulado (proporção, estilo do overlay e volume mudaram, B fechou e salvou); overlay arrastado e salvo; SGSR 1 rodando sem erros de shader. Configuração do zero no POCO, com os arquivos do jogo apagados e a pasta escolhida pelo seletor: ~7 min 40 s no total (o romfs.bin em ~45 s, a compilação em ~7 min com 12 862 funções quentes otimizadas e o resto sem otimização). Depois disso o jogo abriu com um mod ligado e chegou à vila, e os saves continuaram lá. Os caminhos de desktop das partes compartilhadas foram compilados. Ainda não testados num celular: drivers Vulkan 1.1 (Mali) e a Adreno 750.
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.
LAS Recomp for Android 0.3.9 (preview): stock-driver rendering and fixed 30 fps
Compatibilidade com mais celulares e drivers, e 30 FPS fixo que realmente segura em 30.
- Driver padrão sem
shaderInt64(ex.: Galaxy S23, Adreno 740): o cálculo de endereços e carry dos shaders passa a usar palavras de 32 bits quando o driver não tem inteiros de 64 bits. No S23 com o driver Qualcomm, voltaram a iluminação, as touceiras de grama e os textos do inventário. Drivers com o recurso, como o Turnip, continuam no caminho nativo. - 30 FPS fixo segura em 30 no Turnip. O jogo escolhe seu modo pelo número de vsyncs que cada frame dura; no Turnip os frames cabiam em um só e ele voltava para 60. Agora a opção ativa o modo de 30 FPS do próprio jogo e a apresentação espera os dois vsyncs, como no Switch. O modo Auto não mudou.
- Inicialização Vulkan mais robusta: a swapchain só pede usos e composição que a superfície suporta; o cache de pipelines é validado antes do uso; recursos opcionais são consultados antes de serem habilitados. Quando algo falha, a mensagem de erro mostra o motivo na tela, sem precisar de adb.
- Importação: confere o espaço livre antes de copiar, detecta cópias incompletas e recusa a pasta que o próprio app já importou.
- Novas instalações começam em 30 FPS fixos e 50% de resolução interna. Configurações já salvas continuam valendo.
- Formulário de bug pergunta em qual etapa a falha acontece; uma captura da mensagem de erro já ajuda.
- Ferramentas de medição (rota de benchmark na vila, matriz de configurações, traces de tempo de GPU e texturas), todas desligadas por padrão.
- READMEs atualizados, com a nova captura da tela inicial e a tabela de desempenho do Galaxy S23 com Turnip.
Validação: APK de release compilado e assinado com a mesma chave das versões anteriores. No POCO F7 Ultra, a 0.3.9 instalou por cima da 0.3.8 mantendo saves e configurações, abriu o launcher sem recompilar o código do jogo e chegou à vila com Turnip e com o driver padrão. Trocando Auto → 30 → Auto durante o jogo, o 30 fixo ficou em 30,0 FPS (todos os frames em 33,3 ms) nos dois drivers, e o Auto voltou ao normal. No Galaxy S23 com o driver padrão, iluminação, grama e textos foram conferidos com um APK de diagnóstico com o mesmo código Android. Testes no PC do tradutor de shaders em 32 bits, do cache de shaders, das tabelas de constantes, da inicialização Vulkan, do pacing e da importação. GPUs Mali e outros aparelhos ainda precisam de validação.
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.
LAS Recomp for Android 0.3.8 (preview): touch settings and new artwork
Novo menu para touch, novas artes e otimizações de renderização.
APK 0.3.8 atualizado: novo fundo no estilo de vila em miniatura do jogo e botão PLAY sem o seletor Vanilla/seed. A versão continua 0.3.8 (versionCode 12).
Correção adicional: os botões de saída agora mostram a própria ação (Return to start / Close app / Cancel), com confirmação explícita, em vez do botão genérico Open.
- Ícone do Android aventureiro com roupa, espada e escudo; fundo original de ilha com um toque de Android.
- Settings com categorias laterais, controles maiores, descrições junto das opções, rolagem por toque e botão fixo para voltar.
- Reaproveitamento de pipelines, buffers de conversão e cópias de leitura; comparação exata de texturas estáveis e tradução de shaders compute em fila.
- Mantém o ADPF por tempo decorrido da versão que apresentou frametime estável no teste do usuário; medição apenas de CPU continua experimental e opcional.
- Evita extrair novamente as ferramentas internas quando seu conteúdo não mudou.
- READMEs atualizados, incluindo os créditos ao GPT Astra e GPT Sol 6.1 (OpenAI, via Codex).
Validação: APK de release compilado e assinado, 22 verificações dos caches, 12 verificações simuladas de gestos e 28 testes de transferência de saves. O usuário validou o frametime da versão de comparação com este ADPF no POCO F7 Ultra com Turnip. As novas artes foram conferidas e incluídas no APK; este APK final não foi instalado no celular. A comparação de FPS é informal; outros drivers e aparelhos ainda precisam de validação.
Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo. As novas artes são ilustrações de fã geradas com OpenAI.
LAS Recomp for Android 0.3.7 (preview): 20% ADPF margin by default
English | Português
Changes
- 20% default ADPF headroom margin: Android's Performance Hint session target duration now defaults to an 80% work budget (~13.3 ms for 60 fps). This prompts the Android/Qualcomm CPU governor to proactively ramp up core frequencies to sustain 60 fps without waiting for dropped frames. Can be customized with
LARECOMP_ADPF_MARGIN=<pct>(or=0to disable), orLARECOMP_ADPF_TARGET_US=<us>.
Install over your existing version to keep your game files and saves. You need your own legally obtained, extracted copy of Link's Awakening v1.0.0. No game files are included.
Português
Mudanças
- Margem de 20% no ADPF como padrão: A meta de tempo de trabalho da sessão ADPF agora tem por padrão uma margem de 20% (~13,3 ms para 60 fps). Isso instrui o governor de CPU do Android/Qualcomm a elevar as frequências proativamente para manter 60 fps sem oscilar na margem de erro dos 16,7 ms. Pode ser ajustado via
LARECOMP_ADPF_MARGIN=<pct>(ou=0para desativar) ouLARECOMP_ADPF_TARGET_US=<us>.
Instale por cima da versão existente para manter os arquivos do jogo e os saves. Você precisa da sua própria cópia, obtida legalmente, dos arquivos extraídos de Link's Awakening v1.0.0. Nenhum arquivo do jogo está incluído.
LAS Recomp for Android 0.3.6 (preview): single ADPF session & thread diagnostics
English | Português
Changes
- Single ADPF performance hint session: The game presenting thread and the Vulkan render thread are now joined into a single
APerformanceHintSession(usingAPerformanceHint_setThreadson Android 14+ or session recreation). Work duration reports are now submitted once per frame along the critical path (max(game, render)), avoiding conflicting signals to the OS governor on heterogeneous CPUs. - Overlay thread & ADPF diagnostic: The performance overlay now displays real-time ADPF status (
ADPF on (N thrs), target duration, and error codes) along with per-thread CPU execution time and physical core IDs for both the game thread and render thread (game X.X ms (cpu Y) render X.X ms (cpu Z)). - Environment variables for testing:
LARECOMP_ADPF_SPLIT=1: fallback to separate hint sessions per thread.LARECOMP_ADPF_MARGIN=<pct>: headroom percentage margin on frame budget (e.g., 20).LARECOMP_ADPF_TARGET_US=<us>: custom target work duration in microseconds.
Install over your existing version to keep your game files and saves. You need your own legally obtained, extracted copy of Link's Awakening v1.0.0. No game files are included.
Português
Mudanças
- Sessão única no ADPF: A thread principal do jogo e a render thread agora compartilham uma única sessão de
APerformanceHintSession(viaAPerformanceHint_setThreadsno Android 14+ ou recriação com ambos os TIDs). O reporte de duração do frame é feito uma única vez por frame no caminho crítico (max(game, render)), evitando sinais conflitantes para o governor em processadores heterogêneos (como Snapdragon com núcleos Prime/Performance/Efficiency). - Diagnóstico de threads e ADPF no overlay: O overlay de desempenho agora exibe em tempo real o status da sessão ADPF (
ADPF on (N thrs), meta em ms e eventuais códigos de erro de API) junto com o tempo de CPU e o ID do núcleo físico onde cada thread rodou (game X.X ms (cpu Y) render X.X ms (cpu Z)). - Variáveis de ambiente para diagnóstico:
LARECOMP_ADPF_SPLIT=1: reverte para sessões separadas por thread.LARECOMP_ADPF_MARGIN=<pct>: margem percentual na meta de tempo de frame (ex: 20).LARECOMP_ADPF_TARGET_US=<us>: meta personalizada em microssegundos.
Instale por cima da versão existente para manter os arquivos do jogo e os saves. Você precisa da sua própria cópia, obtida legalmente, dos arquivos extraídos de Link's Awakening v1.0.0. Nenhum arquivo do jogo está incluído.