Sobre o projeto

Lunchbox é um aplicativo multiplataforma projetado como navegador de jogos, gerenciador de coleções e frontend de emulador. Construído com Rust, CXX-Qt e QML, oferece uma experiência de desktop nativa, distinta de sua versão legada anterior baseada em Electron. O software segue uma arquitetura "aquisição em primeiro lugar", priorizando o gerenciamento e a obtenção de coleções de jogos junto com os recursos de emulação. Os principais recursos incluem: - **Frontend Qt Nativo**: Utiliza Rust e QML para alto desempenho e aparência nativa no Windows, macOS e Linux. Suporta visualizações virtualizadas para grandes bibliotecas, rolagem acelerada e gerenciamento de estado persistente, incluindo posicionamento de janela e filtros. - **Modo Sofá**: Uma interface em tela cheia, otimizada para teclado e gamepad, para uso na sala de estar em televisores. Preserva a seleção de jogos entre reinicializações, suporta seletores de plataforma e coleção e inclui um Modo Atrair para exibições ociosas. Também lida com reprodução de mídia em cache e personalização de temas por meio de pacotes declarativos `.lunchbox-theme`. - **Gerenciamento e Aquisição de Jogos**: Integra-se ao qBittorrent para baixar jogos via torrents ou magnets. Suporta o índice de pacotes Minerva para aquisições curadas e permite que os usuários adicionem fontes de torrent personalizadas. O sistema revisa as seleções de arquivos antes do download, lida com conjuntos de vários discos e gerencia processos de importação com capacidades de pausar, retomar e tentar novamente. - **Metadados e Ferramentas de Biblioteca**: Oferece ampla edição de metadados para títulos, descrições, gêneros e campos personalizados. Pode buscar metadados online do IGDB ou ScreenScraper com revisão do usuário. Os recursos incluem coleções inteligentes baseadas em tags e regras, tratamento de região/versão para lançamentos regionais e um mecanismo de recomendação "Mais Como Este". - **Integração com Emuladores**: Descobre emuladores autônomos instalados (como RetroArch, DOSBox, MAME) e cores. Suporta configurações complexas de inicialização, incluindo arquivos eXoDOS/eXoWin3x/eXoWin9x que são preparados e armazenados em cache localmente. Lida com vários tipos de mídia, incluindo laserdisc (Hypseus/Daphne) e sistemas de arcade. - **Suporte a Controles**: Usa GilRs para entrada de controle multiplataforma, suportando hotplug, zonas mortas analógicas e remapeamento. Inclui um solucionador de regras de layout para mapeamentos calibrados de emuladores em diferentes layouts de hardware. - **Configurações e Portabilidade**: Permite a configuração de armazenamento de ROMs, clientes de torrent e provedores de mídia. Suporta a exportação de backups portáteis `.lunchbox-profile` que incluem estado de coleção e temas, excluindo dados sensíveis como ROMs e segredos. Os perfis são validados na restauração para garantir a integridade. O aplicativo separa a identidade do catálogo das ofertas de aquisição, garantindo que o conteúdo baixado não altere a estrutura da biblioteca principal, a menos que seja explicitamente gerenciado pelo usuário. Ele visa fornecer um ambiente robusto, seguro e rico em recursos para entusiastas de jogos para PC.