Skip to content

Releases: davizerascript/PSR32

PSR32 v0.2.1 RGA-safe test

Choose a tag to compare

PSR32 v0.2.1 — RGA-safe test build

The physical log showed repeated RetroRun [ERROR] c_RkRgaBlit failed messages followed by Segmentation fault and emulator_exit_status=139. The input diagnostics continued to update, so the shoulder mapping was not the cause of this crash.

The failing RGA dump contained a source rectangle with width 0 and height 0, while the destination was 640×480. Rockchip's RGA guide requires valid source and destination rectangles; this profile therefore avoids the 0.5× request by default and uses native internal resolution 1.0×.

The build retains the requested ps2.limitframerate = 30 and retrorun_fps_counter = true. The previous 0.5× settings remain available in psr32-performance-lowres-experimental.cfg, but are selected only with PS2_USE_LOWRES=1 and are not recommended on the affected RK3326 image.

The launcher continues to keep the R36S shoulder-button correction active by default. This is a compatibility test, not a guarantee of full PS2 game compatibility or performance.

PSR32 v0.3.1 — shoulder mapping fix

Choose a tag to compare

@davizerascript davizerascript released this 28 Aug 21:21

PSR32 — revisão v0.3.1 shoulder fix

Correção

Esta revisão corrige a inversão relatada no controle físico: L1 acionava L2, L2 acionava L1, R1 acionava R2 e R2 acionava R1. A correção troca somente os rótulos semânticos SDL leftshoulder/lefttrigger e rightshoulder/righttrigger, preservando os índices físicos e a separação entre esquerda e direita.

A troca fica ativa por padrão no PS2-RK3326.sh. Em uma imagem do sistema que já apresente a ordem correta, ela pode ser desativada com PS2_SWAP_SHOULDERS=0 antes da execução.

Validação

Os três scripts Bash passaram por verificação de sintaxe, o gameinfo.xml passou por parsing XML, as permissões executáveis foram preservadas e um fixture com configuração SDL conhecida confirmou:

lefttrigger:b4
leftshoulder:b6
righttrigger:b5
rightshoulder:b7
SHOULDER_SWAP_TEST=PASS

O core não foi recompilado nesta revisão; somente o launcher e a documentação de entrada foram corrigidos. A validação física final continua dependendo do R36S/R36H real.

Artefato

PSR32-PS2-RK3326-shoulders-fixed-v0.3.1.zip
SHA-256: ac079d0c45362c2ca0df0bd44eae7c1c9bf3fc3dda3ae1c16f9fe76b773bb824

PSR32 v0.2.0 — experimental 30 FPS / 0.5x test build

Choose a tag to compare

PSR32 — build experimental de desempenho

Esta build é somente para teste no R36S/R36H. Ela não substitui a release estável e não deve ser instalada por cima sem backup.

Alterações

A configuração experimental solicita multiplicador de resolução interna de 0,5×, alvo de 30 FPS pelo parâmetro nativo ps2.limitframerate e contador de FPS do retrorun no canto da tela por meio de retrorun_fps_counter = true.

O core expõe renderer.opengl.resfactor e a implementação atual do renderer usa a escala de framebuffer. O arquivo também registra play_res_multi = 0.5x como fallback de compatibilidade; se uma versão do core não reconhecer esse nome, ele será ignorado e renderer.opengl.resfactor continuará sendo a opção principal.

Limitações

O launcher não consegue provar, sem executar no R36S físico, que toda versão do retrorun aplica opções de core da mesma forma. O contador deve aparecer se o wrapper aceitar retrorun_fps_counter; o limitador de 30 FPS depende do core consumir ps2.limitframerate. Caso o core ignore esse valor, o jogo poderá continuar em 60 FPS, mas a configuração não deve causar erro de inicialização.

A versão estável do core permanece intacta. Para rollback, remova os arquivos de teste e restaure o launcher/configuração da release anterior. Não apague saves nem imagens de jogo.

PSR32 v0.1.2 — Performance experimental 0,5x

Choose a tag to compare

PSR32 Performance 0,5×

Variante experimental separada do PSR32 estável para R36S/R36H com dArkOS.

Alterações

O core ARM64 usa escala interna de renderização 0,5× em framebuffers, depth buffers, viewport, scissor, transferências e apresentação libretro. O launcher exporta PLAY_RES_FACTOR=0.5 por padrão, mas permite sobrescrever a variável para comparação. A entrada própria do EmulationStation solicita perfmax performance, alinhado ao perfmax do dArkOS para CPU, GPU e DMC, e restaura com perfnorm.

A variante cria a categoria separada PlayStation 2 Performance 0.5x e usa /roms/ps2-performance, preservando a instalação estável ps2//roms/ps2.

Estado do teste

O core compilou para AArch64 com dependência de libGLESv2.so.2 e ABI máxima GLIBC_2.36. O launcher e o instalador foram validados em fixture que simula dArkOS/R36S, incluindo DTB, mapa de controles, separação da categoria e execução com retrorun falso. O ganho real de FPS, a qualidade da imagem e o áudio precisam ser medidos no R36S com o mesmo jogo usado na versão estável.

Se 0,5× não melhorar a fluidez, apresentar glitches ou deixar o áudio pior, use a versão estável 1×. Não há promessa de compatibilidade ou velocidade para todos os jogos de PS2.

PSR32 v0.1.1 — correções R36 de input e tela

Choose a tag to compare

PSR32 v0.1.1-r36-input-screen

Esta revisão atualiza o port experimental de PlayStation 2 para R36S/R36H com foco na integração dArkOS, no controle e na orientação da tela.

Correções

O launcher agora fornece um fallback offline para o GO-Super Gamepad quando nenhum mapa externo é fornecido. O mapa segue a configuração observada no dArkOS: A=b1, B=b0, X=b2, Y=b3, D-pad=b8..b11, L1/R1=b4/b5, L2/R2=b6/b7, Select/Start=b12/b13, analógicos a0..a3 e cliques L3/R3 b14/b15.

O core ARM64 foi recompilado a partir do checkout local do Play! com negociação OpenGL ES 3.1, correções no caminho de boot libretro, processamento de áudio em lote e diagnóstico de callbacks de input. O core também solicita rotação libretro zero; a seleção final de orientação KMS/DRM permanece com o dArkOS/retrorun e o perfil DEVICE_NAME=RG351MP.

O instalador continua offline, migra uma entrada PS2 antiga sem duplicar sistemas e registra .iso, .mds, .isz, .chd, .cso, .cue e .elf.

Validação realizada

Foram executados testes em um ambiente que simula o dArkOSRE: sintaxe shell, inspeção ELF AArch64, conferência de ABI máxima GLIBC_2.36, teste do launcher com retrorun falso e DTB R36S simulado, além de instalação e migração idempotentes do XML do EmulationStation. No R36S, o projeto já deu sinal de vida, indicando que o core iniciou no hardware.

Esse sinal de vida não certifica todos os jogos nem o desempenho 3D. Ainda dependem de confirmação específica FPS, frame pacing, áudio, temperatura, consumo de RAM, hotkeys, save states e compatibilidade de cada ISO. A revisão não promete que Need for Speed Underground 2 ou outros jogos pesados iniciarão ou terão velocidade jogável.

Instalação

Copie o conteúdo do ZIP para /roms/ports/, mantendo PS2-RK3326.sh, Install PS2 RK3326.sh e a pasta ps2rk3326/ no mesmo nível. Execute o instalador pelo menu Ports, coloque imagens legalmente obtidas em /roms/ps2 e reinicie o EmulationStation quando solicitado.

PS2-RK3326 v0.1.0-experimental — dArkOS/ArkOS

Choose a tag to compare

PS2-RK3326 v0.1.0-experimental — correção do Dungeon ELF e estabilidade

Esta é uma revisão do port experimental ARM64 de PlayStation 2 para R36S/R36H com ArkOS/dArkOS. O pacote continua sendo instalado offline pelo cartão microSD, sem Wi-Fi, SSH ou conta PortMaster. Não são incluídos jogos, imagens de disco, BIOS proprietária ou firmware.

Correções encontradas

A análise do Dungeon encontrou um erro de integração no instalador: o es_systems.cfg registrava ISO, CHD, CSO, CUE e BIN, mas omitia .elf. Assim, o EmulationStation podia não exibir dungeon_game.elf na categoria PlayStation 2, embora o core já declarasse elf como extensão válida. O instalador agora registra .elf e .ELF.

Também foi corrigido um deadlock no ciclo de frames do caminho libretro não threaded. Em determinados VBlanks, Flip() podia não executar FlipImpl() quando não havia registros GS marcados como sujos; ProcessSingleFrame() ficava então esperando indefinidamente por m_flipped. O caminho não threaded agora força a apresentação em cada VBlank.

A negociação gráfica permanece explícita em GLES 3.1 usando RETRO_HW_CONTEXT_OPENGLES_VERSION, em vez do enum fixo RETRO_HW_CONTEXT_OPENGLES3 de GLES 3.0.

A comparação com os wrappers oficiais do dArkOS encontrou outra divergência: o sistema envolve Ports com sudo perfmax %GOVERNOR% %ROM%; nice -n -19 ...; sudo perfnorm, executa o retrorun como usuário normal e deixa o firmware escolher o backend SDL. A entrada PS2 e o launcher foram alinhados a esse fluxo; o launcher não força SDL_VIDEODRIVER ou KMSDRM e registra argumentos inválidos antes de tentar o core.

O log físico do dArkOS revelou o erro que fazia o jogo fechar imediatamente: o helper opcional /opt/system/Tools/PortMaster/device_info.txt referenciava DEVICE_INFO_VERSION sem defini-la. Como o launcher usava set -u, ele abortava ao carregar esse helper, antes de chamar o retrorun. A nova revisão lê os helpers opcionais com nounset temporariamente desativado e foi validada reproduzindo exatamente esse caso.

Validação realizada

O core ARM64 foi recompilado para Cortex-A35/ARMv8-A. O smoke test AArch64 terminou com exit 0 e reportou name=Play!, versão 04bde0d, extensões elf|iso|cso|isz|cue|chd e need_fullpath=1, com BuildID 42665b8c65d64db050980c4321c06341cd537b4a.

No core host x86, usando Mesa/llvmpipe com FBO libretro real, cubes_demo.elf, dungeon_game.elf, console_demo.elf e play_adpcm_demo.elf completaram 60 frames cada com exit 0 e callbacks de vídeo. O teste anterior travava após poucos frames; a correção de VBlank removeu esse bloqueio. O ADPCM produziu 29.700 frames no callback de áudio do host, sem que isso constitua validação de áudio no aparelho. A simulação do instalador confirmou .elf no XML, e a simulação do launcher confirmou o encaminhamento integral do caminho do ELF ao retrorun. O teste adicional com helper PortMaster contendo DEVICE_INFO_VERSION ausente terminou com NOUNSET_HELPER=PASS.

A auditoria rigorosa do pacote atualizado passou com RIGOROUS_AUDIT=PASS. O pacote não contém jogos, BIOS proprietária, firmware ou stub GLES. O teste host não substitui a validação no R36S físico com Mali-G31, dArkOS, retrorun, áudio e controles reais. O desempenho e a compatibilidade de jogos comerciais continuam sem garantia.

Instalação

Baixe ps2-rk3326.zip em um computador ou celular, extraia diretamente em /roms/ports/ no cartão microSD e mantenha PS2-RK3326.sh e Install PS2 RK3326.sh diretamente nesse nível, com ps2rk3326/ ao lado. Depois abra Ports, clique no instalador, copie o dungeon_game.elf para /roms/ps2 e abra-o pela categoria PlayStation 2.

Se a categoria PS2 já tiver sido instalada com a versão anterior, substitua os arquivos do port e clique novamente em Install PS2 RK3326.sh. A versão nova detecta a entrada antiga sem .elf, cria um backup datado e migra somente o bloco PS2; se ela já aceitar ELF, não duplica a categoria.

Se o jogo continuar retornando ao menu, copie /roms/ports/ps2rk3326/log.txt do cartão para um computador ou celular e envie o conteúdo. Se esse arquivo não existir, copie /roms/ports/ps2rk3326/install.log. O primeiro mostra que uma ROM chegou ao launcher; o segundo mostra se o instalador foi executado, qual XML tentou alterar e qual foi seu código de saída. Esses arquivos separam falha de caminho/EmulationStation, glibc, biblioteca/contexto GLES, retrorun, crash do core ou boot da ROM.

Integridade

Item Valor
Arquivo ps2-rk3326.zip
Tamanho 2.773.836 bytes
SHA-256 1031de432aa8aede700148521e20c64a146f1eb11590d5b0ce51a2bebb62167e
BuildID do core 42665b8c65d64db050980c4321c06341cd537b4a
Commit da revisão 7dfe0244a25e86c7d56d8344a67b392765900973