**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
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.
É 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.
- 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 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.
## 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`.
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.
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.
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
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.
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.
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.
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.
Baixe pela Google Play: https://play.google.com/store/apps/details?id=com.github.stenzek.duckstation
**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.
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 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 a imagem do seu disco se chama `Spyro3.cue`, você colocaria o arquivo SBI no mesmo diretório e o nomearia como `Spyro3.sbi`.
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.
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.
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).
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`.
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`.
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.
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ê 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.
Há um atalho para abrir o diretório do usuário selecionando `Open Data Directory` no menu `Tools`.
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.
## 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`.
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.
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.
“PlayStation” e “PSX” são marcas registradas da Sony Interactive Entertainment Europe Limited. Este projeto não é afiliado de forma alguma à Sony Interactive Entertainment.