kauansilvalopes 88eb31f51a Estante 0.5.2: PS2 CHD covers and 4K box art
- PS2 images the disc reader cannot open (CHD, CSO, ZSO) take their serial from /data/PCSX2/chd-serials.txt, the list PS5SX2 keeps, so their covers show.
- Covers up to 2400 pixels a side are decoded (4K box art is about 1530 x 2160; the old limit was 2048).
- contentVersion 01.005.002.
2026-10-24 20:02:52 -03:00
2026-08-23 00:07:49 -04:00

Estante

Organizador de biblioteca que roda no proprio PS5, com navegacao pelo controle. A native PS5 library organizer with controller navigation, for jailbroken consoles.

English: Estante ("shelf" in Portuguese) is a controller-driven PS5 library organizer with a Home catalogue, a cover-flow shelf, a searchable and filterable Library, game details, trophies when the console has local trophy data, and personal collections. It reads PS5/PS4 titles through Elf Arsenal and can import games from the standard /data folders of PS5SX2, SwanStationPS5, Porpoise, and PS5-ECAM. For imported emulator titles, Play opens the emulator; select the game inside it. USB/M.2 game folders and Switch titles are not imported; 3DS/DS lists depend on ECAM having scanned them. Each emulator must have been opened at least once. It requires Elf Arsenal and ShadowMountPlus; only firmware 11.60 has been tested. The GPU interface uses OpenGL via ps5-opengl and ps5-homebrew-ui, with 3D cases, cover flow, a launch animation, five color themes, and English/Portuguese/Spanish localization. Portrait covers can be added with tools/ps5_covers_sync.py; otherwise the app uses available square art. Downloads and install notes: latest release.

Screenshots

Rendered by the real draw code through the GPU renderer on a PC (Mesa) with placeholder covers (no game art is bundled). Build: make fetches the pinned ps5-opengl SDK on its own; bash tools/preview-estante-gl.sh renders every screen on the PC.

Home Library
Home Library
Filters (touchpad) Collections
Filters Collections
Game details Organize menu
Details Menu
Apps Settings
Apps Settings
Case turned by the right stick (spine) Back of the case (R2 / L2)
Spine Back
Launch: the case opens, the disc comes out
Launch

O Estante organiza a biblioteca dentro do próprio aplicativo, sem mover jogos nem alterar o menu oficial. Lê jogos de PS5/PS4 pelo Elf Arsenal e importa títulos das pastas padrão em /data de PS5SX2 (PS2), SwanStationPS5 (PS1), Porpoise (GameCube/Wii) e PS5-ECAM (Wii U/3DS/DS). Ao selecionar um título importado de emulador, o Estante abre o emulador; a seleção do jogo é feita dentro dele. Não lê bibliotecas em USB/M.2 nem jogos de Switch; os títulos de 3DS/DS aparecem depois que o ECAM os escaneia. Abra cada emulador ao menos uma vez antes de atualizar o Estante. Requer Elf Arsenal e ShadowMountPlus; o teste de console disponível foi feito no firmware 11.60.

Nova experiência

  • Início com jogo em destaque, últimas escolhas feitas no Estante, jogos fixados e mosaicos de coleções.
  • Biblioteca completa com busca sem distinção de acentos, filtros e ordenação.
  • Coleções e subcoleções, seleção múltipla, favoritos, ocultos e classificação PS2/PS4/PS5.
  • Coleções automáticas por plataforma, progresso manual e favoritos. Crie em Todos os jogos, sem busca textual ativa.
  • Progresso manual: Quero jogar, Em andamento e Concluído. Não representa troféus ou leitura de saves.
  • Fonte Inter com minúsculas e acentos; opção de texto maior e modo gravação persistentes.
  • Capas locais PNG/JPEG, carregadas em segundo plano, com cache limitado. Nenhuma capa de jogo acompanha o projeto.
  • Consulta ao estado do console antes de abrir um título e tentativa de confirmação posterior.
  • Migração dos metadados v1 com cópia anterior preservada; exportação e restauração local.

As pastas existem dentro do Estante; os jogos não são movidos nem reorganizados no menu oficial. PS2 instalado como PS4 exige classificação manual. O app roda no PS5 sem servidor no PC. Recentes são pedidos feitos pelo Estante após a consulta inicial, não histórico global nem prova de abertura.

Veja ESTANTE.md para controles, dados, instalação e limites e DESIGN.md para as decisões de UX.

bash tools/test-estante.sh
bash tools/preview-estante.sh

Os previews .local/preview-*.png usam o renderizador real com dados e artes fictícias. Servem apenas à validação de desenvolvimento; não são um aplicativo para o PC.

Compilar (Linux / WSL Ubuntu)

sudo apt-get update
sudo apt-get install clang-18 llvm-18 lld-18 make ninja-build ccache curl wget unzip
make

O build baixa dependencias publicas fixadas por versao e hash. Saidas: dist/PPSA99841/ e dist/PPSA99841.zip. Saída em pasta para ShadowMount; também pode ser empacotada como imagem .ffpfsc. Não é PKG.

Enviar ao PS5

Com ShadowMount e FTP ativos, envie a pasta para /data/homebrew/PPSA99841. Para uma instalacao nova pelo script, substitua o endereco de exemplo:

python3 tools/deploy-estante.py --host 192.0.2.10

O script usa FTP anonymous na porta 2121, confere os arquivos por SHA-256 e recusa substituir um titulo ja registrado. Nao troca os payloads instalados. Aparecendo o titulo Estante, abra pelo menu ou pela Biblioteca de jogos.

Controles e testes

Direcional navega; X confirma; quadrado seleciona titulos; triangulo/Options abre as acoes; L1/R1 muda pagina; circulo volta. No teclado, Options salva o nome. Veja ESTANTE.md para detalhes e limitacoes.

Testes da logica de catalogo, classificacao e pastas:

mkdir -p build/tests
clang-18 -g -fsanitize=address,undefined -c src/cJSON.c -o build/tests/cjson-host.o
clang++-18 -std=c++20 -g -fsanitize=address,undefined tests/test_estante.cpp src/library.cpp build/tests/cjson-host.o -o build/tests/test-estante
build/tests/test-estante

Esses testes nao validam o funcionamento no hardware. Os workflows originais da base estao arquivados em docs/upstream-workflows, sem execucao automatica.

Creditos e licenca

Autor do Estante: Kauan (@kndofc).

Derivado de ps5-native-app-boilerplate, de BlackBearReloaded, sob GPL-3.0-or-later. Os avisos de autoria foram preservados. Documentacao original: docs/UPSTREAM_README.md.

Dependencias baixadas, binarios gerados e dados pessoais do console nao sao versionados.

Estante 0.5.5
Latest
2026-10-26 20:03:03 +01:00
Languages
C++ 71.1%
C 10.9%
Shell 7.1%
Python 6.6%
PowerShell 3%
Other 1.3%