diff --git a/README.pt-br.md b/README.pt-br.md index 68eaf5dc0..d1d7b063b 100644 --- a/README.pt-br.md +++ b/README.pt-br.md @@ -1,222 +1,286 @@ -Tradução: - # DuckStation - Emulador de PlayStation 1, também conhecido como PSX -[Últimas Notícias](#latest-news) | [Recursos](#features) | [Download e Execução](#downloading-and-running) | [Compilação](#building) | [Avisos Legais](#disclaimers) +[Recursos](#features) | [Baixando e executando](#downloading-and-running) | [Compilando](#building) | [Avisos](#disclaimers) -**Últimas Versões para Windows 10/11, Linux (AppImage/Flatpak) e macOS:** https://github.com/stenzek/duckstation/releases/tag/latest +**Versões mais recentes para Windows 10/11 (x64/ARM64), Linux (AppImage x64/ARM32/ARM64) e macOS (13.3+ Universal):** https://github.com/stenzek/duckstation/releases/tag/latest -**Lista de Compatibilidade de Jogos:** https://docs.google.com/spreadsheets/d/1H66MxViRjjE5f8hOl5RQmF5woS1murio2dsLn14kEqo/edit +**Servidor do Discord:** https://www.duckstation.org/discord.html -**Wiki:** https://www.duckstation.org/wiki/ +DuckStation é um simulador/emulador do console Sony PlayStation(TM), com foco em jogabilidade, velocidade e manutenção a longo prazo. O objetivo é ser o mais preciso possível, mantendo um desempenho adequado para dispositivos mais modestos. As opções de “hack” não são recomendadas; a configuração padrão deve oferecer suporte a todos os jogos categorizados como jogáveis, com apenas alguns aprimoramentos apresentando problemas de compatibilidade. -DuckStation é um simulador/emulador do console Sony PlayStation(TM), focando na jogabilidade, velocidade e manutenção a longo prazo. O objetivo é ser o mais preciso possível, mantendo um desempenho adequado para dispositivos de baixo desempenho. Opções de "hack" não são recomendadas, a configuração padrão deve suportar todos os jogos jogáveis, com apenas algumas das melhorias tendo problemas de compatibilidade. - -Uma imagem ROM do "BIOS" é necessária para iniciar o emulador e jogar os jogos. Você pode usar uma imagem de qualquer versão de hardware ou região, embora regiões de jogos e regiões de BIOS que não idênticas podem resultar em problemas de compatibilidade. A imagem ROM ou Jogo não é fornecida com o emulador por motivos legais; você deve obter do seu próprio console usando Caetla ou outros meios. +É preciso de uma imagem do “BIOS” do PS1 ou PS2 para iniciar o emulador e jogar. Você pode usar uma imagem de qualquer versão de hardware ou região, embora regiões diferentes entre o jogo e o BIOS possam causar problemas de compatibilidade. Por motivos legais, nenhuma imagem de ROM é fornecida com o emulador; você deve extraí-la do seu próprio console usando o Caetla ou outros meios. ## Recursos -O DuckStation possui uma interface totalmente funcional construída usando Qt, bem como uma interface de tela cheia/TV baseada no Dear ImGui. +DuckStation conta com uma interface completa (frontend) criada com Qt, além de uma interface em tela cheia/TV baseada em Dear ImGui.

- Captura de Tela da Janela Principal - Captura de Tela da Interface de Tela Cheia + Main Window Screenshot + Fullscreen UI Screenshot

Outros recursos incluem: - - Recompilador de CPU/JIT (x86-64, armv7/AArch32 e AArch64). - - Renderização de hardware (D3D11, D3D12, OpenGL, Vulkan, Metal) e renderização de software. - - Ampliação, filtragem de textura e cor verdadeira (24 bits) nos renderizadores de hardware. + - Recompilador/JIT de CPU (x86-64, armv7/AArch32, AArch64, RISC-V/RV64). + - Renderizador por hardware com suporte às APIs D3D11, D3D12, OpenGL, Vulkan e Metal. + - Upscaling, filtragem de textura e cores reais (24-bit) nos renderizadores por hardware. - PGXP para precisão de geometria, correção de textura e emulação de buffer de profundidade. - - Filtro de downsampling adaptativo. - - Cadeias de shaders de pós-processamento (GLSL e Reshade FX experimental). - - "Inicialização rápida" para pular a tela de abertura/intro do BIOS. - - Suporte a salvar estados. + - Mesclagem precisa por meio de Rasterizer Order Views (ROVs)/Fragment Shader Interlock. + - Sistema de substituição de texturas nos renderizadores por hardware. + - Renderizador por software vetorizado e multithread. + - Desentrelaçamento adaptativo. + - Filtro de redução de amostragem adaptativo. + - Rotação de tela para jogos verticais ou shmups “TATE”. + - Cadeias de shaders de pós-processamento (GLSL, Reshade FX e predefinições Slang). + - Sobreposições/molduras (bezels) exibidas ao redor do conteúdo do jogo. + - “Fast boot” para pular a tela/intro da BIOS. + - Suporte a save states, com runahead e retrocesso. - Suporte para Windows, Linux e macOS. - - Suporta imagens bin/cue, arquivos bin/img crus, MAME CHD, ECM de única faixa, MDS/MDF e formatos PBP não criptografados. + - Suporte à leitura direta de CD, imagens bin/cue, MAME CHD, ECM de faixa única, MDS/MDF, CCD e formatos PBP não criptografados. + - Pré-carregamento de imagens de disco na RAM para evitar engasgos quando o disco “hiberna”. + - Mesclagem de jogos multidisco na lista/grade de jogos, com cartões de memória compartilhados entre os discos. + - Carregamento/aplicação automática de modificações PPF. - Inicialização direta de executáveis homebrew. - Carregamento direto de arquivos Portable Sound Format (psf). - - Controles digitais e analógicos. - - Suporte ao lightgun Namco GunCon (simulado com o mouse). + - Áudio com time stretching ao executar fora de 100% da velocidade. + - Controles digitais e analógicos para entrada (a vibração é repassada ao host). + - Suporte a pistolas de luz GunCon e Justifier (simuladas com mouse). - Suporte ao NeGcon. - - Interface Qt e "Big Picture". - - Atualizações automáticas a partir dos canais oficiais. - - Verificação automática de conteúdo - os títulos/jogos são fornecidos por redump.org. - - Troca automática opcional de cartões de memória para cada jogo. - - Suporta carregar trapaças de listas existentes. - - Editor de cartões de memória e importador de salvamento. - - Overclock emulado de CPU. + - Predefinições de controle e configuração por jogo. + - Interface Qt e “Big Picture”. + - Atualizações automáticas com canais preview e latest. + - Varredura automática de conteúdo — títulos/hashes dos jogos fornecidos por redump.org. + - Troca automática opcional de cartões de memória para cada jogo separadamente. + - Suporte ao carregamento de trapaças a partir de listas. + - Editor de cartões de memória e importação de arquivos de dados de jogos salvos. + - Overclock emulado da CPU. - Depuração integrada e remota. - - Controles multitap (até 8 dispositivos). + - Controles Multitap (até 8 dispositivos). - RetroAchievements. - - Carregamento/aplicação automática de patches PPF. + - Presença rica no Discord. + - Captura de vídeo com backends Media Foundation (Windows) e [FFmpeg](https://www.ffmpeg.org/) (todas as plataformas). + - Função de câmera livre. + - Emulação de cartucho da porta paralela. -## Requisitos do Sistema - - Um CPU rápido. Mas precisa ser x86_64, AArch32/armv7 ou AArch64/ARMv8, caso contrário, o recompilação será lenta. - - Para os renderizadores de hardware, é necessário uma GPU compatível com OpenGL 3.1/OpenGL ES 3.1/Direct3D 11 Feature Level 10.0 (ou Vulkan 1.0) e superior. basicamente, qualquer computador produzido nos últimos 10 anos mais ou menos deve dar conta. - - Controlador de jogo compatível com SDL, XInput ou DInput (por exemplo, XB360/XBOne/XBSeries). Usuários de DualShock 3 no Windows precisarão instalar os drivers oficiais do DualShock 3 incluídos como parte do PlayStation Now. +## Requisitos do sistema + - Um CPU mais rápido do que uma 'batata'. Mas precisa ser x86_64, AArch32/armv7, AArch64/ARMv8 ou RISC-V/RV64. + - Uma GPU capaz de OpenGL 3.1/OpenGL ES 3.1/Direct3D 11 Feature Level 10.0/Vulkan 1.0. Ou seja, basicamente qualquer coisa feita nos últimos 10 anos, mais ou menos. + - Controle de jogo compatível com SDL, XInput ou DInput (ex.: XB360/XBOne/XBSeries). Usuários de DualShock 3 no Windows precisarão instalar os drivers oficiais do DualShock 3 incluídos como parte do PlayStation Now. -## Download e Execução -Executáveis do DuckStation para Windows x64/ARM64, Linux x86_64 (nos formatos AppImage/Flatpak) e para macOS estão disponíveis via GitHub na aba Releases e são automaticamente compilados a cada commit/envio. Executáveis ou pacotes distribuídos por outras fontes podem estar desatualizados e não são suportados pelo desenvolvedor, por favor, entre em contato com eles para obter suporte, não conosco. +## Baixando e executando +Os binários do DuckStation para Windows x64/ARM64, Linux x86_64/ARM32/ARM64 (no formato AppImage) e macOS (binários universais) estão disponíveis via GitHub na guia Releases e são compilados automaticamente a cada commit/push. + +Conforme os termos da CC-BY-NC-ND, a redistribuição de **releases e código não modificados** é permitida. No entanto, preferimos que você aponte para https://www.duckstation.org/ em vez disso. Configurações e pacotes pré-configurados são considerados modificações. + +Para máquinas x86 (a maioria dos sistemas), você precisará de uma CPU que suporte o conjunto de instruções SSE4.1 para a build “normal”. Isso inclui todas as CPUs Intel fabricadas após 2007 e CPUs AMD fabricadas após 2011. Se você tiver uma CPU mais antiga, será necessário baixar a build “SSE2” na página de releases, que tem desempenho inferior, mas ainda oferece suporte a essas CPUs. + +A página principal de releases é limitada às últimas 30 versões devido a limitações do atualizador automático. Versões mais antigas podem ser baixadas em https://github.com/duckstation/old-releases/releases. + +### Canais de atualização + +O atualizador automático do DuckStation tem dois canais: “Stable” e “Preview”. + - **“Stable Releases”**: Atualizações menos frequentes e acompanha a release “latest” no GitHub. As releases neste canal foram mais testadas. + - **“Preview Releases”**: Compiladas sempre que um commit é enviado ao repositório e acompanha o pre-release no GitHub. Este canal contém builds com testes mínimos e pode conter bugs ou problemas. + +Por padrão, o atualizador acompanhará o canal do qual você fez o download. Você pode mudar o canal em `Configurações -> Interface -> Atualizações`. ### Windows -DuckStation **requer** Windows 10/11, especificamente a versão 1809 ou mais recente. Se você ainda estiver usando Windows 7/8/8.1, o DuckStation **não funcionará** no seu sistema operacional. Usar esses sistemas operacionais em 2023 deve ser considerado um risco de segurança, recomendaria atualizar para algo que receba suporte do fornecedor. -Se você precisa usar um sistema operacional mais antigo, [v0.1-5624](https://github.com/stenzek/duckstation/releases/tag/v0.1-5624) é a última versão que funcionará. Mas não espere receber nenhuma assistência, essas compilações não são mais suportadas. +O DuckStation **exige** Windows 10/11, especificamente a versão 1809 ou mais recente. Se você ainda usa Windows 7/8/8.1, o DuckStation **não vai rodar** no seu sistema operacional. Usar esses sistemas operacionais em 2026 deve ser considerado um risco de segurança, e recomendo atualizar para algo que ainda receba suporte do fornecedor. +Se você precisar usar um sistema operacional mais antigo, a [v0.1-5624](https://github.com/duckstation/old-releases/releases/tag/v0.1-5624) é a última versão que roda. Mas não espere receber suporte; essas builds não são mais suportadas. -Para baixar: - - Acesse https://github.com/stenzek/duckstation/releases/tag/latest e baixe a compilação do Windows x64. Este é um arquivo ZIP contendo o executável pré-compilado. - - Alternativamente, link de download direto: https://github.com/stenzek/duckstation/releases/download/latest/duckstation-windows-x64-release.zip - - Extraia o arquivo ZIP **para uma pasta**. O arquivo ZIP não tem um subdiretório raiz, então, se você não extrair para um subdiretório, ele irá despejar vários arquivos no seu diretório de download. +As builds para Windows são disponibilizadas em dois formatos: + - **Instalador (.exe, recomendado):** Um instalador que extrai o DuckStation para o diretório de programas do usuário e, opcionalmente, cria atalhos no Menu Iniciar/Área de Trabalho. + - **Arquivo (.zip):** Um arquivo zip contendo o binário pré-compilado. Escolha esta opção se você quiser uma instalação “portátil” ou não quiser executar um instalador. -Depois de baixado e extraído, pode iniciar o emulador com `duckstation-qt-x64-ReleaseLTCG.exe`. Siga o Assistente de configuração para começar. +Para usar o instalador, basta baixá-lo na página de releases, executá-lo e seguir as instruções. + - Link direto de download: https://github.com/stenzek/duckstation/releases/download/latest/duckstation-windows-x64-installer.exe + - Link de download ARM64 (notebooks Snapdragon): https://github.com/stenzek/duckstation/releases/download/latest/duckstation-windows-arm64-installer.exe + - Instalador SSE2 legado (para CPUs pré-2008): https://github.com/stenzek/duckstation/releases/download/latest/duckstation-windows-x64-sse2-installer.exe -**Se você receber um erro sobre a falta de `vcruntime140_1.dll`, precisará atualizar sua runtime do Visual C++.**faça da seguinte forma, nesta página: https://support.microsoft.com/en-au/help/2977003/the-latest-supported-visual-c-downloads. Especificamente, você deseja a runtime x64, que pode ser baixada em https://aka.ms/vs/17/release/vc_redist.x64.exe. +O instalador ainda é uma adição recente; portanto, se você encontrar problemas, por favor nos avise pelo Discord. + +Para usar o arquivo (.zip) ou a instalação portátil, siga estes passos: +1. Baixe https://github.com/stenzek/duckstation/releases/download/latest/duckstation-windows-x64-release.zip. Se você tiver uma máquina Windows ARM64, como Snapdragon, baixe `duckstation-windows-arm64-release.zip` em vez disso. +2. Extraia o arquivo **para um subdiretório**. O arquivo não tem um subdiretório raiz; portanto, extrair para o diretório atual vai espalhar um monte de arquivos na sua pasta de downloads se você não extrair para um subdiretório. +3. Se você quiser uma instalação portátil (veja [Diretórios de usuário](#user-directories)), crie um arquivo vazio chamado `portable.txt` no mesmo diretório do executável. +4. Depois de baixar e extrair, você pode iniciar o emulador com `duckstation-qt-x64-ReleaseLTCG.exe`. Siga o Assistente de configuração para começar. + +**Se você receber um erro informando que `vcruntime140_1.dll` está faltando, será necessário atualizar o runtime do Visual C++.** Você pode fazer isso nesta página: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist. Especificamente, você precisa do runtime x64, que pode ser baixado em https://aka.ms/vs/17/release/vc_redist.x64.exe. ### Linux -As únicas versões suportadas do DuckStation para Linux são o AppImage e o Flatpak na página de lançamentos. Se você instalou o DuckStation de outra fonte ou distribuição (por exemplo, EmuDeck), você deve entrar em contato com o responsável para suporte, nós não temos controle sobre isso. +O DuckStation é disponibilizado para Linux x86_64/ARM32/ARM64 no formato AppImage. #### AppImage -Os AppImages requerem uma distribuição equivalente ao Ubuntu 22.04 ou mais recente para serem executados. +Os AppImages exigem uma distribuição equivalente ao Ubuntu 22.04 ou mais recente para funcionar. - - Acesse https://github.com/stenzek/duckstation/releases/tag/latest e baixe `duckstation-x64.AppImage`. - - Execute `chmod a+x` no AppImage baixado -- após este passo, o AppImage pode ser executado como um executável típico. +1. Baixe https://github.com/stenzek/duckstation/releases/download/latest/DuckStation-x64.AppImage. Se você tiver uma máquina Linux ARM64, baixe `DuckStation-arm64.AppImage`. +2. Execute `chmod a+x` no AppImage baixado — após este passo, o AppImage pode ser executado como um executável comum. Como alternativa, no gerenciador de arquivos de sua preferência, habilite a permissão de execução nas propriedades do arquivo. +3. Ao executar o AppImage pela primeira vez, será exibida uma solicitação para criar um atalho do lançador de programas. -#### Flatpak +Se você estava usando anteriormente o pacote Flatpak, para migrar seus dados do Flatpak para o AppImage, execute o seguinte comando: +```bash +mv ~/.var/app/org.duckstation.DuckStation/config/duckstation ~/.local/share +``` - - Acesse https://github.com/stenzek/duckstation/releases/tag/latest e baixe `duckstation-x64.flatpak`. - - Execute `flatpak install ./duckstation-x64.flatpak`. - -ou, se você tiver o FlatHub configurado: - - Execute `flatpak install org.duckstation.DuckStation`. - -Use `flatpak run org.duckstation.DuckStation` para iniciar, ou selecione `DuckStation` no lançador do seu ambiente de desktop. Siga o Assistente de Configuração para começar. +Você precisará adicionar novamente seus diretórios de jogos após mudar para o AppImage. ### macOS -São fornecidas compilações universais do macOS para x86_64 (Intel) e ARM64 (Apple Silicon). +Builds universais do macOS são fornecidas tanto para x86_64 (Intel) quanto para ARM64 (Apple Silicon). -macOS Ventura (13.3) é necessário, pois também é o requisito mínimo para o Qt. +O macOS Ventura (13.3) é obrigatório, pois este também é o requisito mínimo do Qt. Para baixar: - - Acesse https://github.com/stenzek/duckstation/releases/tag/latest e baixe `duckstation-mac-release.zip`. - - Extraia o arquivo ZIP dando um duplo clique nele. - - Abra o `DuckStation.app`, opcionalmente movendo-o para a localização desejada antes. - - Dependendo da configuração do GateKeeper, você pode precisar clicar com o botão direito -> Abrir na primeira vez que executá-lo, já que certificados de assinatura de código estão fora de questão para um projeto que não gera receita alguma. + +1. Baixe https://github.com/stenzek/duckstation/releases/download/latest/duckstation-mac-release.zip. +2. Extraia o zip com um clique duplo. +3. Abra `DuckStation.app`, opcionalmente movendo-o primeiro para o local desejado. + +Se você receber uma mensagem informando que o app é de um desenvolvedor não identificado: + +1. Abra Ajustes do Sistema -> Privacidade e Segurança, ou digite “Gatekeeper” na barra de busca. +2. Na seção “Segurança”, deve haver uma mensagem informando que o DuckStation foi bloqueado. Clique em “Abrir mesmo assim”. + +Infelizmente isso é necessário porque a Apple exige assinatura de código para que apps possam ser executados sem avisos, e eu não tenho um certificado de assinatura de código, já que um custo anual está fora de cogitação para um projeto que gera zero receita. ### Android -Você precisará de um dispositivo com armv7 (32 bits ARM), AArch64 (64 bits ARM) ou x86_64 (64 bits x86). 64 bits são preferíveis, os requisitos são mais altos para 32 bits, você provavelmente vai querer pelo menos um CPU de 1,5 GHz. +Você precisará de um dispositivo com armv7 (ARM 32-bit), AArch64 (ARM 64-bit) ou x86_64 (x86 64-bit). 64-bit é preferível; os requisitos são maiores para 32-bit — provavelmente você vai querer pelo menos uma CPU de 1,5 GHz. -A distribuição pelo Google Play é o mecanismo de distribuição recomendado e resultará em tamanhos de download menores: https://play.google.com/store/apps/details?id=com.github.stenzek.duckstation +Baixe pela Google Play: https://play.google.com/store/apps/details?id=com.github.stenzek.duckstation -**Não é fornecido suporte para o aplicativo Android**, ele é gratuito e suas expectativas devem estar alinhadas com isso. Por favor, **não** me envie e-mails sobre problemas relacionados a ele, eles serão ignorados. - -Se você precisar usar um APK, os links para download estão listados em https://www.duckstation.org/android/ +**Não é fornecido suporte para o app de Android**; ele é gratuito e suas expectativas devem ser compatíveis com isso. Por favor, **não** me envie e-mail sobre problemas nele nem peça ajuda; você será ignorado. Para usar: -1. Instale e execute o aplicativo pela primeira vez. -2. Adicione diretórios de jogos tocando no botão de adição e selecionando um diretório. Você pode adicionar diretórios adicionais depois selecionando "Editar Diretórios de Jogos" no menu. -3. Toque em um jogo para começar. Quando você inicia um jogo pela primeira vez, ele pedirá para importar uma imagem de BIOS. +1. Instale e execute o app pela primeira vez. +2. Siga o assistente de configuração. -Se você tiver um controle externo, precisará mapear os botões e analogicos nas configurações. +Se você tiver um controle externo, será necessário mapear os botões e os analógicos nas configurações. ### Proteção LibCrypt e arquivos SBI -Alguns jogos da região PAL usam a proteção LibCrypt, que requer informações adicionais de subcanal de CD para funcionar corretamente. O não funcionamento do libcrypt geralmente se manifesta como travamentos, mas às vezes pode afetar a jogabilidade, dependendo de como o jogo o implementou. +Vários jogos da região PAL usam a proteção LibCrypt, exigindo informações adicionais de subcanais do CD para funcionar corretamente. Quando o libcrypt não funciona, normalmente isso se manifesta como travamentos ou quedas, mas às vezes também pode afetar a jogabilidade, dependendo de como o jogo a implementou. -Para esses jogos, certifique-se de que a imagem do CD e seu arquivo correspondente SBI (.sbi) tenham o mesmo nome e estejam na mesma pasta. O DuckStation carregará automaticamente o arquivo SBI quando ele for encontrado ao lado da imagem do CD. +Para esses jogos, certifique-se de que a imagem do CD e o arquivo SBI (.sbi) correspondente tenham o mesmo nome e estejam no mesmo diretório. O DuckStation carregará automaticamente o arquivo SBI quando ele for encontrado junto da imagem do CD. -Por exemplo, se sua imagem de disco se chamasse `Spyro3.cue`, você colocaria o arquivo SBI na mesma pasta e o nomearia como `Spyro3.sbi`. +Por exemplo, se a imagem do seu disco se chama `Spyro3.cue`, você colocaria o arquivo SBI no mesmo diretório e o nomearia como `Spyro3.sbi`. -## Compilação +Imagens CHD com informações de subcanal embutidas também são suportadas. + +Se você estiver jogando diretamente do disco e seu drive de CD/DVD não suportar leitura de subcanais, ou tiver discrepância (skew) no SubQ retornado, você pode colocar o arquivo SBI no diretório `subchannels` dentro do diretório do usuário, com o serial ou o título do jogo. + +### Banco de dados de trapaças e modificações + +O DuckStation vem com um banco de dados interno de trapaças e modificações, ambos fornecidos pela comunidade. Contribuições são bem-vindas em https://github.com/duckstation/chtdb. + +Cada release inclui a versão mais recente do banco de dados; no entanto, você também pode atualizá-lo manualmente para a versão mais recente. + +## Compilando ### Windows Requisitos: - - Visual Studio 2022 + - Visual Studio 2026 ou mais recente, com a carga de trabalho “Desenvolvimento para desktop com C++” instalada. 1. Clone o repositório: `git clone https://github.com/stenzek/duckstation.git`. -2. Baixe o pacote de dependências em https://github.com/stenzek/duckstation-ext-qt-minimal/releases/download/latest/deps-x64.7z e extraia-o para `dep\msvc`. -3. Abra a solução do Visual Studio `duckstation.sln` na raiz ou "Abrir Pasta" para a compilação com CMake. -4. Compile a solução. -5. Os binários estão localizados em `bin/x64`. -6. Execute `duckstation-qt-x64-Release.exe` ou a configuração que você usou. +2. Baixe o pacote de dependências em https://github.com/duckstation/dependencies. Você precisará do arquivo `deps-windows-x64.7z` e, se quiser compilar para ARM64, baixe também `deps-windows-arm64.7z`. Extraia esses arquivos para `dep\prebuilt`. +3. Abra o projeto do Visual Studio `duckstation.sln` na raiz (recomendado) ou use “Abrir pasta” para build via CMake (não recomendado/nem suportado). +4. Compile o projeto. +5. Os binários ficam em `bin/x64`. +6. Execute `duckstation-qt-x64-Release.exe` (ou a configuração que você tiver usado). ### Linux -Requisitos (nomes de pacotes Debian/Ubuntu): - - CMake (`cmake`) - - SDL2 (pelo menos a versão 2.28.2) (`libsdl2-dev` `libxrandr-dev`) - - pkgconfig (`pkg-config`) - - Qt 6 (pelo menos a versão 6.5.1) (`qt6-base-dev` `qt6-base-private-dev` `qt6-base-dev-tools` `qt6-tools-dev` `libqt6svg6`) - - git (`git`) (Nota: necessário para clonar o repositório e na hora da compilação) - - Quando o Wayland estiver habilitado (padrão): (`libwayland-dev` `libwayland-egl-backend-dev` `extra-cmake-modules` `qt6-wayland`) - - libcurl (`libcurl4-openssl-dev`) - - Opcional para compilação mais rápida: Ninja (`ninja-build`) -1. Clone o repositório: `git clone https://github.com/stenzek/duckstation.git -b dev`. -2. Crie um diretório de compilação, seja dentro ou fora do diretório de origem. -3. Execute o CMake para configurar o sistema de compilação. Supondo que o diretório de compilação seja `build-release`, execute `cmake -Bbuild-release -DCMAKE_BUILD_TYPE=Release`. Se você tiver o Ninja instalado, adicione `-GNinja` ao final da linha de comando do CMake para compilações mais rápidas. -4. Compile o código-fonte. Para o exemplo acima, execute `cmake --build build-release --parallel`. -5. Execute o binário, que está localizado no diretório de compilação em `bin/duckstation-qt`. +#### Dependências necessárias + +Nomes de pacotes no Ubuntu/Debian: +``` +autoconf automake build-essential clang cmake curl extra-cmake-modules git libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdecor-0-dev libegl-dev libevdev-dev libfontconfig-dev libfreetype-dev libgtk-3-dev libgudev-1.0-dev libharfbuzz-dev libinput-dev libopengl-dev libpipewire-0.3-dev libpulse-dev libssl-dev libudev-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcb-xkb-dev libxext-dev libxkbcommon-x11-dev libxrandr-dev libxss-dev libtool lld llvm nasm ninja-build pkg-config zlib1g-dev +``` + +Nomes de pacotes no Fedora: +``` +alsa-lib-devel autoconf automake brotli-devel clang cmake dbus-devel egl-wayland-devel extra-cmake-modules fontconfig-devel gcc-c++ gtk3-devel libavcodec-free-devel libavformat-free-devel libavutil-free-devel libcurl-devel libdecor-devel libevdev-devel libICE-devel libinput-devel libSM-devel libswresample-free-devel libswscale-free-devel libX11-devel libXau-devel libxcb-devel libXcomposite-devel libXcursor-devel libXext-devel libXfixes-devel libXft-devel libXi-devel libxkbcommon-devel libxkbcommon-x11-devel libXpresent-devel libXrandr-devel libXrender-devel libXScrnSaver-devel libtool lld llvm make mesa-libEGL-devel mesa-libGL-devel nasm ninja-build openssl-devel patch pcre2-devel perl-Digest-SHA pipewire-devel pulseaudio-libs-devel systemd-devel wayland-devel xcb-util-cursor-devel xcb-util-devel xcb-util-errors-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-wm-devel xcb-util-xrm-devel zlib-devel +``` + +#### Compilando + +1. Clone o repositório: `git clone https://github.com/stenzek/duckstation.git`, `cd duckstation`. +2. Baixe o pacote de dependências em https://github.com/duckstation/dependencies. Você precisará do arquivo `deps-linux-x64.tar.xz` e das variantes de cross-compile se quiser compilar para ARM. Extraia esses arquivos para `dep\prebuilt`. +3. Execute o CMake para configurar o sistema de build. Considerando um subdiretório de build `build-release`, execute `cmake -B build-release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" -G Ninja`. Se você quiser uma build de release (otimizada), inclua `-DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON`. +4. Compile o código-fonte. No exemplo acima, execute `ninja -C build-release` +5. Execute o binário, localizado no diretório de build em `./build-release/bin/duckstation-qt`. ### macOS Requisitos: - CMake - - SDL2 (pelo menos a versão 2.28.2) - - Qt 6 (pelo menos a versão 6.5.1) - -Opcional (recomendado para compilações mais rápidas): - - Ninja + - Xcode 1. Clone o repositório: `git clone https://github.com/stenzek/duckstation.git`. -2. Execute o CMake para configurar o sistema de compilação: `cmake -Bbuild-release -DCMAKE_BUILD_TYPE=Release`. Você pode precisar especificar `-DQt6_DIR` dependendo do seu sistema. Se você tiver o Ninja instalado, adicione `-GNinja` ao final da linha de comando do CMake para compilações mais rápidas. +2. Baixe o pacote de dependências em https://github.com/duckstation/dependencies. Você precisará do arquivo `deps-macos-universal.tar.xz`. Extraia os arquivos para `dep\prebuilt`. +3. Execute o CMake para configurar o sistema de build: `cmake -Bbuild-release -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON`. 4. Compile o código-fonte: `cmake --build build-release --parallel`. -5. Execute o binário, que está localizado no diretório de compilação em `bin/DuckStation.app`. +5. Execute o binário, localizado no diretório de build em `bin/DuckStation.app`. -## Diretórios de Usuários -O "Diretório de Usuário" é onde você deve colocar suas imagens da BIOS, onde as configurações são salvas e onde os cartões de memória e estados de salvamento são salvos por padrão. Um [arquivo opcional de banco de dados de controle de jogo SDL](#sdl-game-controller-database) também pode ser colocado aqui. +## Diretórios de usuário +O “Diretório do usuário” é onde você deve colocar suas imagens de BIOS, onde as configurações são salvas e onde os cartões de memória/save states são salvos por padrão. +Um arquivo opcional de banco de dados de controles de jogo do SDL ([SDL game controller database file](#sdl-game-controller-database)) também pode ser colocado aqui. -Ele está localizado nos seguintes lugares, dependendo da plataforma que você está usando: +Ele fica nos seguintes locais, dependendo da plataforma que você estiver usando: -- Windows: Meus Documentos\DuckStation -- Linux: `$XDG_DATA_HOME/duckstation`, ou `~/.local/share/duckstation`. +- Windows: `AppData\Local\DuckStation` (instalações antigas usarão `Documents\DuckStation`). +- Linux: `$XDG_DATA_HOME/duckstation` ou `~/.local/share/duckstation`. - macOS: `~/Library/Application Support/DuckStation`. -Portanto, se você estiver usando o Linux, sugiro colocar suas imagens do BIOS em `~/.local/share/duckstation/bios`. Este diretório será criado na primeira vez que você executar o DuckStation. +Então, se você estiver usando Linux, deve colocar suas imagens do BIOS em `~/.local/share/duckstation/bios`. Esse diretório será criado quando você executar o DuckStation pela primeira vez. -Se você deseja usar uma compilação "portátil", onde o diretório do usuário é o mesmo onde o executável está localizado, crie um arquivo vazio chamado `portable.txt` no mesmo diretório onde o executável do DuckStation está. +Se você quiser usar uma build “portátil”, em que o diretório do usuário seja o mesmo local do executável, crie um arquivo vazio chamado `portable.txt` no mesmo diretório do executável do DuckStation. -## Associações para a interface Qt -Seu teclado ou controle podem ser usados para simular uma variedade de controles de PlayStation. A entrada do controle é suportada através dos back-ends DInput, XInput e SDL e pode ser alterada em `Configurações -> Configurações Gerais`. +Há um atalho para abrir o diretório do usuário selecionando `Open Data Directory` no menu `Tools`. -Para atribuir seu dispositivo de entrada, vá para `Configurações -> Configurações do Controle`. Cada um dos botões/eixos para o controle emulador será listado, juntamente com a tecla/botão correspondente do seu dispositivo a que ele atualmente em uso. Para atribuir novamente, clique na caixa ao lado do nome do botão/eixo e pressione a tecla ou botão do seu dispositivo de entrada que deseja atribuir. Ao atribuir a vibração, basta pressionar qualquer botão no controle para o qual você deseja que seja configurado. +O DuckStation permite substituir certos recursos ao colocar arquivos no subdiretório `resources` do diretório do usuário. Isso inclui imagens e efeitos sonoros (ex.: navegação de menu/desbloqueio de conquista). Consulte https://github.com/stenzek/duckstation/wiki/Resource-Overrides para mais informações. -## Banco de Dados de Controle de Jogo SDL -Os lançamentos do DuckStation incluem um banco de dados de mapeamentos de controle de jogo para o back-end do controle SDL, cortesia de https://github.com/gabomdq/SDL_GameControllerDB. O arquivo `gamecontrollerdb.txt` incluído pode ser encontrado no subdiretório `database` do diretório do programa DuckStation. +## Mapeamentos para o frontend Qt +Seu teclado ou controle pode ser usado para simular vários controles de PlayStation. A entrada do controle é suportada pelos backends DInput, XInput e SDL, e pode ser alterada em `Configurações -> Controles`. -Se você estiver tendo problemas para associar seu controle com o back-end do controlador SDL, pode ser necessário adicionar um mapeamento personalizado ao arquivo de banco de dados. Faça uma cópia de `gamecontrollerdb.txt` e coloque-o no seu [diretório de usuário](#user-directories) (ou diretamente no diretório do programa, se estiver executando em modo portátil) e siga as instruções no [repositório SDL_GameControllerDB](https://github.com/gabomdq/SDL_GameControllerDB) para criar um novo mapeamento. Adicione este mapeamento à nova cópia de `gamecontrollerdb.txt` e seu controle deve ser reconhecido corretamente. +Para mapear seu dispositivo de entrada, vá em `Configurações -> Controles` e selecione o controle virtual que você deseja mapear. O mapeamento automático lida com a maioria dos controles. Porém, se você precisar mapear um controle manualmente, clique na caixa abaixo do nome do botão/eixo e pressione a tecla ou botão no seu dispositivo de entrada que você deseja atribuir. + +## Banco de dados de controles de jogo SDL +As releases do DuckStation incluem um banco de dados de mapeamentos de controles para o backend de controle SDL, cortesia de https://github.com/mdqinc/SDL_GameControllerDB. O arquivo incluído `gamecontrollerdb.txt` pode ser encontrado no subdiretório `resources` do diretório do programa do DuckStation. + +Se você estiver tendo problemas para mapear seu controle com o backend de controle SDL, talvez seja necessário adicionar um mapeamento personalizado ao arquivo do banco de dados. Faça uma cópia de `gamecontrollerdb.txt` e coloque-a no seu [diretório de usuário](#user-directories) (ou diretamente no diretório do programa, se estiver executando em modo portátil) e, em seguida, siga as instruções no [repositório SDL_GameControllerDB](https://github.com/mdqinc/SDL_GameControllerDB) para criar um novo mapeamento. Adicione esse mapeamento à nova cópia de `gamecontrollerdb.txt` e seu controle deverá ser reconhecido corretamente. + +## Mapeamentos padrão + +Os mapeamentos para controles e teclas de atalho podem ser alterados em `Configurações -> Controles`. -## Atribuições padrão Controle 1: - - **D-Pad:** W/A/S/D - - **Triângulo/Quadrado/Círculo/Cruz:** Numpad8/Numpad4/Numpad6/Numpad2 + - **Analógico esquerdo:** W/A/S/D + - **Analógico direito:** T/F/G/H + - **Direcional:** Cima/Esquerda/Baixo/Direita + - **Triângulo/Quadrado/Círculo/Cruz:** I/J/L/K - **L1/R1:** Q/E - **L2/R2:** 1/3 + - **L3/R3:** 2/4 - **Start:** Enter - **Select:** Backspace -Atalhos: - - **Esc:** Abrir Menu de Pausa - - **F11:** Alternar Tela Cheia - - **Tab:** Desativar Temporariamente o Limitador de Velocidade - - **Espaço:** Pausar/Continuar Emulação +Teclas de atalho: + - **Escape:** Abrir menu de pausa + - **F1:** Carregar estado + - **F2:** Salvar estado + - **F3:** Selecionar o estado anterior + - **F4:** Selecionar o próximo estado + - **F10:** Salvar captura de tela + - **F11:** Alternar tela cheia + - **Tab:** Desativar temporariamente o limitador de velocidade + - **Espaço:** Pausar/Retomar emulação -## Avisos Legais +## Avisos Ícone por icons8: https://icons8.com/icon/74847/platforms.undefined.short-title -"PlayStation" e "PSX" são marcas registradas da Sony Interactive Entertainment Europe Limited. Este projeto não está afiliado de forma alguma com a Sony Interactive Entertainment. +“PlayStation” e “PSX” são marcas registradas da Sony Interactive Entertainment Europe Limited. Este projeto não é afiliado de forma alguma à Sony Interactive Entertainment.