Repository navigation
Releases: deivid22srk/dk64-recomp-android
Release list
DK64 Recompiled Android 1.0.3-android (v1.0.3-android-r7)
DK64 Recompiled — APK Android 1.0.3-android
APK release assinado (arm64-v8a), compilado pelo workflow release no commit 7edb0f7 (fix/first-launch-crash).
O que mudou nesta branch (fix/first-launch-crash)
Corrigido o crash na 1ª inicialização (selecionar ROM + Start Game fechava o app)
Na primeira execução do app, depois de selecionar a ROM e tocar em Start Game, o app fechava sozinho; na segunda inicialização funcionava perfeitamente. Causa raiz multi-fator, todas eliminadas:
- Ciclo do seletor de ROM quebrava a sessão gráfica: ao abrir o seletor (DocumentsUI), a surface Vulkan era destruída/recriada e a fila de present ficava congelada — o Start Game na MESMA sessão rodava em estado frágil (por isso o processo limpo da 2ª execução funcionava). Agora, após a ROM ser selecionada, o app reinicia sozinho (~1,5 s, o mesmo mecanismo do menu de GPU Driver) e o Start Game roda num processo limpo, com a Vulkan inicializada apenas 1× por processo.
- SIGSEGV silencioso com ROM vazia: quando o carregamento da ROM falhava, o fluxo continuava para
init()com o buffer da ROM vazio e odo_rom_readdesreferenciava ponteiro nulo (o app "simplemente fecha", sem nada no log). Agora a falha volta para a launcher com recuperação, em vez de prosseguir. - Escrita de arquivo falsamente bem-sucedida:
write_fileignorava o resultado da escrita (sucesso falso em I/O falho) eselect_rommarcava a ROM como válida sem arquivo válido persistido. Agora a escrita é verificada (write + close + tamanho final) e a seleção reporta erro em arquivo inválido. - Exceções não tratadas: exceções na game thread matavam o app via
std::terminatesem mensagem. Agora viram caixa de mensagem + quit limpo. - Crash handler novo: SIGSEGV/SIGBUS/SIGFPE/SIGILL/SIGABRT e
std::terminateagora registram causa e backtrace no logcat (tagDK64Recomp-Crash) antes do tombstone padrão — qualquer morte residual fica diagnosticável.
Botão "Logs de diagnóstico" removido da interface
O botão foi removido da UI do RECOMP. A tela de logs continua acessível pelo long-press no ícone do app.
Oclusão de decals preservada nas permutações de fallback
O decal do caminho de terra desenhava por cima das árvores e de outros objetos. Nas permutações de fallback (SAFE/SOLID) o check de coplanaridade do decal tinha sido removido sob a premissa falsa de que o depth test do pipeline ainda ocluiria os decals — pipelines ZMODE_DEC são criados sem depth test de hardware no upstream, e o único cull é esse check no pixel shader. O check foi restaurado (no SAFE, o slope vira constante 1/1024, ~2× a maior tolerância coplanar, mantendo o shader livre de derivadas de tela que o driver Adreno rejeita). Turnip e drivers confiáveis seguem byte-a-byte upstream.
O que foi feito na branch anterior (fix/adreno619-native-driver)
Base desta branch, já validada em dispositivo — suporte nativo ao driver Adreno proprietário (Adreno 619), sem necessidade de Turnip (que continua disponível como opção):
- Suporte nativo ao driver Adreno proprietário (
e36d812): detecção do driver e gates por capacidade, permitindo rodar sem Turnip. - Uber shader desabilitado no Adreno proprietário (
a3afe88): o uber pixel shader (113 KB) não compila no compilador proprietário do driver; ele foi desabilitado nesse caso, com criação sob demanda e síncrona de shaders especializados e guards de draw/compute (blindava o SIGSEGV novkCmdDrawquando faltava estado). - Dual source blending contornado (
8afe742): pipelines alpha-blended com duas outputs (SRC1_ALPHA) eram rejeitados no link pelo driver; passaram a usar 1 output com blend dobrado no alfa. Também corrigeVK_ERROR_OUT_OF_POOL_MEMORY(pool de descriptors dimensionado pelo layout completo + margem). - Escada de fallback por hash (
f11356f): quando o driver rejeita um pixel shader especializado (falha de link -13), o shader é adotado em rungs alternativos — SAFE (sem derivadas de tela) e depois SOLID (cor de vértice) — eliminando a geometria preta.
Instalação
- Baixe o arquivo
dk64recomp-android-v1.0.3-android-r7.apkabaixo. - No Android, permita "instalar apps de fontes desconhecidas" para o seu navegador/gerenciador de arquivos.
- Instale o APK. Não é preciso desinstalar builds anteriores assinados com esta mesma chave.
Assinatura
- Keystore: CN=DK64 Recompiled Android (release)
- SHA-256 do APK:
041a9e3794e5593ebdd75a2ce28c577f376ffb2477dc0cf876175e4c8072755d
Requisitos
- Android 8.0+ (API 26), arm64-v8a
- ROM do Donkey Kong 64 (NTSC-U 1.0) — selecione no app na primeira execução
- Observação (Adreno 619): não é necessário instalar Turnip; o app roda no driver nativo do dispositivo
DK64 Recompiled Android 1.0.3-android (v1.0.3-android-r6)
Novidades — 1.0.3-android
Resumo do que foi feito nos commits da branch fix/mod-file-picker-saf:
🎮 Gamepad virtual — redesign completo ("dark glass" + identidade N64)
- Novo visual em vidro escuro com gradientes, sombras suaves e contornos finos — fim dos halos planos.
- Identidade de cor por botão como no hardware do N64: A azul, B verde, C amarelo, START vermelho; botões neutros acendem no verde-banana do DK64 ao serem pressionados.
- Feedback de toque com qualidade: o botão afunda e acende com glow radial, animações suaves de pressionar/soltar e o HUD entra/sai com fade + deslize.
- Ergonomia: áreas de toque generosas com prioridade por proximidade, histerese de saída (deslizar o dedo para fora solta o botão — mata "ghost press"), stick com zona morta reescalada, retorno animado do knob e menor latência de toque.
- Correções de robustez: o pad aparece sozinho quando o jogo inicia e reaparece se a Activity for recriada (novo acesso nativo
is_game_started); controles respeitam a área do recorte (cutout) da tela; a escolha de esconder o HUD fica salva. - D-pad removido do HUD: o D-pad da base esquerda não é usado pelo jogo (todo o movimento é pelo analógico) — a base da tela ficou mais limpa e com mais espaço livre.
📱 App
- O seletor de arquivos/pastas agora abre o gerenciador de arquivos do sistema (SAF).
- Nova opção "Logs de diagnóstico" no menu do app; captura de logs desativada por padrão.
Commits da branch fix/mod-file-picker-saf
6f244d4— feat(android): redesign AAA do gamepad virtual — dark glass + identidade N64ba949cb— feat(android): remove o D-pad do HUD — o jogo não usa D-padc632c57— fix(android): seletor de arquivos/pastas abre o gerenciador do sistema648f211— feat(android): opção "Logs de diagnóstico" no menu do app + captura desativada por padrão53b9492— chore(release): versionName 1.0.3-android (versionCode 4)
DK64 Recompiled — APK Android 1.0.3-android
APK release assinado (arm64-v8a), compilado pelo workflow release no commit 53b9492 (fix/mod-file-picker-saf).
Instalação
- Baixe o arquivo
dk64recomp-android-v1.0.3-android-r6.apkabaixo. - No Android, permita "instalar apps de fontes desconhecidas" para o seu navegador/gerenciador de arquivos.
- Instale o APK. Não é preciso desinstalar builds anteriores assinados com esta mesma chave.
Assinatura
- Keystore: CN=DK64 Recompiled Android (release)
- SHA-256 do APK:
bc378293e81103a5…
Requisitos
- Android 8.0+ (API 26), arm64-v8a
- ROM do Donkey Kong 64 (NTSC-U 1.0) — selecione no app na primeira execução
DK64 Recompiled Android 1.0.2-android (v1.0.2-android-r4)
DK64 Recompiled — APK Android 1.0.2-android
APK release assinado (arm64-v8a), compilado pelo workflow release no commit 152aace (fix/turnip-driver-reload-on-relaunch).
Instalação
- Baixe o arquivo
dk64recomp-android-v1.0.2-android-r4.apkabaixo. - No Android, permita "instalar apps de fontes desconhecidas" para o seu navegador/gerenciador de arquivos.
- Instale o APK. Não é preciso desinstalar builds anteriores assinados com esta mesma chave.
Assinatura
- Keystore: CN=DK64 Recompiled Android (release)
- SHA-256 do APK:
f667b276b3f7bb26…
Requisitos
- Android 8.0+ (API 26), arm64-v8a
- ROM do Donkey Kong 64 (NTSC-U 1.0) — selecione no app na primeira execução
Log
Ignore esta release, ela contém apenas logs de debug.
Ignore this release, it only contains debug logs.