Ryujinx é um emulador de Nintendo Switch de código aberto, criado por gdkchan, escrito em C#. Este emulador visa fornecer excelente precisão e desempenho, uma interface amigável e construções consistentes. Foi escrito do zero e o desenvolvimento do projeto começou em setembro de 2017. Ryujinx está disponível no Github sob a licença do MIT.
Em maio de 2024, Ryujinx foi testado em aproximadamente 4.300 títulos; mais de 4.100 menus de inicialização e de jogo, com cerca de 3.550 deles considerados jogáveis.
Você pode verificar a lista de compatibilidade aqui.
Qualquer pessoa é livre para enviar um novo teste de jogo ou atualizar uma entrada de teste de jogo existente; basta seguir o novo modelo de problema e as diretrizes de teste ou postar como resposta ao problema do jogo aplicável. Use a função de pesquisa para ver se um jogo já foi testado!
Para rodar este emulador, seu PC deve estar equipado com pelo menos 8GiB de RAM; o não cumprimento deste requisito pode resultar em uma experiência de jogo ruim ou travamentos inesperados.
Consulte nosso Guia de instalação e configuração sobre como configurar o emulador.
Para nossas compilações Local Wireless (LDN), consulte nosso Multiplayer: Local Play/Local Wireless Guide .
Avalonia UI vem com traduções para vários idiomas. Consulte Crowdin para obter mais informações.
Essas compilações são compiladas automaticamente para cada commit no branch master. Embora nos esforcemos para garantir estabilidade e desempenho ideais antes de lançar uma atualização, nossas compilações automatizadas podem ficar instáveis ou completamente quebradas .
A versão automática mais recente para Windows, macOS e Linux pode ser encontrada nos lançamentos do Github.
Se você está planejando contribuir ou apenas deseja saber mais sobre este projeto, leia nossa documentação.
Se você deseja construir o emulador sozinho, siga estas etapas:
Instale o SDK do .NET 8.0 (ou superior). Certifique-se de que sua versão do SDK seja superior ou igual à versão necessária especificada em global.json.
Use git clone https://github.com/Ryujinx/Ryujinx
na linha de comando para clonar o repositório ou use o botão Código -> Baixar zip para obter os arquivos.
Para construir o Ryujinx, abra um prompt de comando dentro do diretório do projeto. Você pode acessá-lo rapidamente no Windows mantendo pressionada a tecla Shift no Explorador de Arquivos, clicando com o botão direito e selecionando Open command window here
. Em seguida, digite o seguinte comando: dotnet build -c Release -o build
os arquivos compilados serão encontrados no diretório de compilação recém-criado.
Os arquivos do sistema Ryujinx são armazenados na pasta Ryujinx
. Esta pasta está localizada na pasta do usuário, que pode ser acessada clicando em Open Ryujinx Folder
no menu Arquivo da GUI.
Áudio
A saída de áudio é totalmente suportada, a entrada de áudio (microfone) não é suportada. Usamos wrappers C# para OpenAL e SDL2 e libsoundio como substitutos.
CPU
O emulador de CPU, ARMeilleure, emula uma CPU ARMv8 e atualmente tem suporte para a maioria dos ARMv8 de 64 bits e algumas das instruções ARMv7 (e anteriores), incluindo suporte parcial de 32 bits. Ele traduz o código ARM em um IR personalizado, realiza algumas otimizações e transforma isso em código x86. Existem três opções de gerenciador de memória disponíveis dependendo da preferência do usuário, aproveitando os modos baseado em software (mais lento) e mapeado por host (muito mais rápido). A opção mais rápida (host, desmarcada) é definida por padrão. Ryujinx também possui um cache de tradução persistente com perfil opcional, que essencialmente armazena em cache as funções traduzidas para que não precisem ser traduzidas sempre que o jogo for carregado. O resultado líquido é uma redução significativa nos tempos de carregamento (a quantidade de tempo entre o lançamento de um jogo e a chegada à tela de título) para quase todos os jogos. NOTA: Este recurso é ativado por padrão no menu Opções > guia Sistema. Você deve iniciar o jogo pelo menos duas vezes na tela de título ou além antes que as melhorias de desempenho sejam desbloqueadas no terceiro lançamento! Essas melhorias são permanentes e não requerem lançamentos extras daqui para frente.
GPU
O emulador de GPU emula a GPU Maxwell do Switch usando as APIs OpenGL (versão 4.5 no mínimo), Vulkan ou Metal (via MoltenVK) por meio de uma construção personalizada de OpenTK ou Silk.NET, respectivamente. Existem atualmente seis melhorias gráficas disponíveis para o usuário final no Ryujinx: cache de sombreamento de disco, escala de resolução, anti-aliasing, filtros de escala (incluindo FSR), filtragem anisotrópica e ajuste de proporção de aspecto. Essas melhorias podem ser ajustadas ou alternadas conforme desejado na GUI.
Entrada
Atualmente temos suporte para teclado, mouse, entrada por toque, suporte para entrada JoyCon e quase todos os controladores. Os controles de movimento são suportados nativamente na maioria dos casos; para suporte de movimento JoyCon duplo, DS4Windows ou BetterJoy são atualmente necessários. Em todos os cenários, você pode configurar tudo dentro do menu de configuração de entrada.
DLC e modificações
Ryujinx é capaz de gerenciar conteúdo complementar/conteúdo para download por meio da GUI. Mods (romfs, exefs e mods de tempo de execução, como cheats) também são suportados; a GUI contém um atalho para abrir a respectiva pasta de mods de um jogo específico.
Configuração
O emulador possui configurações para ativar ou desativar alguns registros, remapeamento de controladores e muito mais. Você pode configurar todos eles através da interface gráfica ou manualmente através do arquivo de configuração, Config.json
, encontrado na pasta do usuário que pode ser acessada clicando em Open Ryujinx Folder
no menu Arquivo na GUI.
Todos os desenvolvedores que trabalham no projeto o fazem em seu tempo livre, mas o projeto tem diversas despesas:
Todos os fundos recebidos através do Patreon são considerados uma doação para apoiar o projeto. Os usuários recebem acesso antecipado a relatórios de progresso e acesso exclusivo a entrevistas com desenvolvedores.
Este software está licenciado sob os termos da licença do MIT. Este projeto utiliza código de autoria do projeto libvpx, licenciado sob BSD e do projeto ffmpeg, licenciado sob LGPLv3. Consulte LICENSE.txt e THIRDPARTY.md para obter mais detalhes.