diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d23923c94..66091f2c0 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,3 +1,5 @@ +- [ ] I have read the [Azahar AI Policy document](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md) and have disclosed any use of AI if applicable under those terms. + --- + Mapatge de Comandament Automàtic + Aplica l\'assignació de comandament estàndard per a tots els botons i eixos + Pressiona este botó en el teu comandament! + Botons de 3DS amb el botó A ressaltat + Netejar Totes les Assignacions + Això eliminarà totes els assignacions del comandament actual. Pad circular Palanca C Tecles de drecera + Si la tecla \"Habilitar tecles d\'accés ràpid\" està assignada, s\'ha de pressionar eixa tecla a més de la tecla d\'accés ràpid assignada + Habilitar tecles d\'accés ràpid Botons de darrere Botó de darrere Pad de control @@ -110,6 +126,8 @@ És possible que alguns controladors no puguen assignar el D-pad com un eix. Si aquest és el cas, utilitza la secció D-Pad (botons). D-Pad (Botó) Assigna només el D-pad a aquests si tens problemes amb les assignacions de botons del D-Pad (Eix). + Eix Vertical + Eix Horitzontal Amunt Avall Esquerra @@ -118,6 +136,8 @@ Pulsa o mou un botó/palanca. Assignació de botons Prem o mou una entrada per enllaçar-la a %1$s. + Pressiona A DALT en el teu joystick. + Pressiona DRETA en el teu joystick. HOME Intercanviar Pantalles Turbo @@ -156,6 +176,8 @@ Nom d\'usuari/a Mode New 3DS Usar Applets LLE (si están instal·lades) + Aplicar modificació de regió lliure a les aplicacions instal·lades. + Modifica la regió de les aplicacions instal·lades perquè siguen de regió lliure, de manera que sempre apareguen en el menú Home. Habilite els mòduls LLE necessaris per a les funcions en línia (si estan instal·lats) Habilita els mòduls LLE necessaris per al mode multijugador en línia, accés a la eShop, etc. Rellotge @@ -211,23 +233,30 @@ Usa SPIR-V en vez de GLSL per a emetre el fragment de ombrejador utilitzat per a emular PICA. Desativar l\'optimitzador SPIR-V Desactiva la passada d\'optimització SPIR-V reduint considerablement el quequeig i afectant poc el rendiment. + Activar compilació de ombrejadors asíncrona Compila els ombrejats en segón pla per a reduir les aturades durant la partida. S\'esperen errors gràfics temporals quan estigue activat. Filtre Linear Activa el filtre linear, que fa que els gràfics del joc es vegen més suaus. + Escalat a múltiples sencers + Escala les pantalles amb un multiplicador enter de la pantalla original de 3DS. Per a dissenys amb dos grandàries de pantalla diferents, la pantalla més gran s\'escala amb un multiplicador enter. Filtre de Textures Millora l\'aspecte visual de les aplicacions aplicant un filtre a les textures. Els filtres compatibles són Anime4K, Ultrafast, Bicubic, ScaleForce, xBRZ Freescale i MMPX. + Endarrerir fil de renderitzat del joc Retarda el fil de renderitzat del joc en enviar dades a la GPU. Ajuda a solucionar problemes de rendiment en les (poques) aplicacions amb velocitats de fotogrames dinàmiques. Avançat Mostreig de Textures Sobreescriu el filtre de mostreig usat en jocs. Pot ser útil en uns certs casos de jocs amb baix rendiment en pujar la resolució. Si no estàs segur, possa\'l en Controlat per Joc. Multiplicació Precisa Usa multiplicacions més precises en els ombrejos de Hardware, que podrien arreglar uns certs problemes gràfics. Quan s\'active, el rendiment es reduirà. + Activar Emulació Asíncrona de la GPU Usa un fil separat per a emular la GPU de manera asíncrona. Quan s\'active, el rendiment millorarà. Límit de velocitat Quan s\'active, la velocitat d\'emulació estarà limitada a un percentatge determinat de la velocitat normal. Quan es desactive, la velocitat d\'emulació no tindrà límit i la tecla d\'accés ràpid de velocitat turbo no funcionarà. Limitar percentatge de velocitat Especifica el valor al qual es limita la velocitat d\'emulació. Amb el valor per defecte del 100%, l\'emulació es limitarà a la velocitat normal. Els valors alts o baixos incrementaran o reduiran el límit de velocitat. + Ocultar les imatges de 3DS en Android + Evita que Android indexe les imatges de la càmera, captures de pantalla i textures personalitzades de la 3DS i les mostre en la galeria. És possible que hages de reiniciar el dispositiu després de canviar esta configuració perquè tinga efecte. Límit de Velocitat Turbo Límit de velocitat d\'emulació utilitzat mentres la tecla d\'accés ràpid turbo està activa. Expandir a l\'àrea de retallada @@ -249,10 +278,18 @@ S\'esperen errors gràfics temporals quan estigue activat. Avís: Modificar estes configuracions reduiran la velocitat d\'emulació. Estereoscopia Mode 3D Estereoscòpic + Seleccione el mode 3D estereoscòpic per a renderitzat 3D. Els modes costat a costat són els més comuns en l\'actualitat. Els modes Anaglifo i Entrellaçat sempre s\'apliquen a totes les pantalles connectades. Profunditat Especifica el valor del regulador 3D. Hauria d\'estar posat a més enllà del 0% quan el Mode 3D Estereoscòpic està activat.\nNota: Els valors de profunditat superiors al 100% no són possibles en hardware real i poden causar problemes gràfics. Desactivar Renderitzat d\'Ull Dret Millora enormement el rendiment en algunes aplicacions, però pot provocar parpellejos en unes altres. + Intercanviar Ulls + Intercanvia quin ull es mostra en cada costat. Combinat amb el mode Costat a Costat, permet veure en 3D creuant els ulls! + Renderitzat 3D Estereoscòpic + Decidix si s\'activa el 3D estereoscòpic i en quines pantalles. Les opcions de pantalla única només són rellevants quan es connecten diverses pantalles. + Activat (totes les pantalles) + Activat (només pantalla principal) + Activat (només pantalla secundària) Cardboard VR Grandària de la pantalla Cardboard Escala la pantalla a un percentatge de la seua grandària original. @@ -277,6 +314,7 @@ S\'esperen errors gràfics temporals quan estigue activat. Volum Extensió d\'Àudio Estén l\'àudio per a reduir les aturades. Quan s\'active, la latència d\'àudio s\'incrementarà i reduirà un poc el rendiment. + Activar àudio en temps real Ajusta la velocitat de reproducció d\'àudio per a compensar les caigudes en la velocitat d\'emulació de quadres. Això significa que l\'àudio es reproduirà a velocitat completa fins i tot quan la velocitat de quadres del joc siga baixa. Pot causar problemes de desincronització d\'àudio. Dispositiu d\'entrada d\'àudio Mode d\'eixida de l\'àudio @@ -288,14 +326,19 @@ S\'esperen errors gràfics temporals quan estigue activat. Usa el hardware per a emular els ombrejadors de 3DS. Quan s\'active, el rendiment millorarà notablement. Velocitat de rellotge de la CPU Activar Sincronització Vertical + Sincronitza la freqüència de fotogrames del joc amb la freqüència d\'actualització del teu dispositiu. Pot causar latència d\'entrada addicional, però pot reduir el tearing en alguns casos. Renderitzador de depuració Arxiva informació addicional gràfica relacionada amb la depuració. Quan està activada, el rendiment dels jocs serà reduït considerablement + Guardar l\'eixida del registre en cada missatge Envia immediatament el registre de depuració a un arxiu. Usa-ho si Azahar falla i es talla l\'eixida del registre. + Inici diferit amb mòduls LLE Retarda l\'inici de l\'aplicació quan els mòduls LLE estan habilitats. Operacions asíncrones deterministes Fa que les operacions asíncrones siguen deterministes per a la depuració. Habilitar esta opció pot causar bloquejos. Activar Servidor RPC Activa el servidor RPC en el port 45987. Això permet llegir/escriure de manera remota la memòria emulada. + Canviar tipus de consola en les dades úniques de consola + Permet alternar el tipus de consola (Old 3DS ↔ New 3DS) per a poder descarregar el firmware del sistema oposat des de la configuració del sistema. Activar Ombreig JIT Usar el motor JIT en lloc de l\'intèrpret per a l\'emulació del ombrejador de software. @@ -306,6 +349,8 @@ S\'esperen errors gràfics temporals quan estigue activat. Horitzontal invertida Vertical Vertical invertida + Cicle d\'Estils + Selecciona quins estils es poden ciclar amb la tecla d\'accés ràpid Per omissió 16:9 4:3 @@ -413,6 +458,13 @@ S\'esperen errors gràfics temporals quan estigue activat. Per omissió Per defecte del sistema (espill) Estil Personalitzat + Color de fons + El color que apareix darrere de les pantalles durant l\'emulació, representat com un valor RGB. + Roig + Verd + Azul + Opacitat personalitzada de la segona pantalla + L\'opacitat de la segona pantalla de 3DS en usar la pantalla personalitzada. Útil si la segona pantalla esta posicionada en la part superior de la primera pantalla. Posició de Pantalla Xicoteta On hauria d\'aparéixer la pantalla xicoteta en relació amb la gran en Proporció de Pantalla Gran? Amunt a la dreta @@ -508,8 +560,13 @@ S\'esperen errors gràfics temporals quan estigue activat. Error Fatal Ha ocorregut un error fatal. Mira el registre per a més detalls.\nSeguir amb l\'emulació podria resultar en diversos penges i problemes. Aplicació cifrada no suportada + Mode de sistema no vàlid + Les aplicacions exclusives de New 3DS no es poden carregar sense activar el mode New 3DS. + Preparant ombrejadors + Construint%s + Jugar Desinstal·lar Aplicació @@ -532,11 +589,37 @@ S\'esperen errors gràfics temporals quan estigue activat. ID: Fitxer: Tipus: + Inserir Cartutx + Expulsar Cartutx + Mostrar informació de rendiment Informació de rendiment Activar informació de rendiment Configura la informació de rendiment + Mostrar FPS + Mostra els fotogrames per segon actuals. + Mostrar duració de fotogrames + Mostra la duració actual de cada fotograma. + Mostrar velocitat + Mostra el percentatge de velocitat d\'emulació actual. + Mostrar l\'ús de memòria de l\'aplicació + Mostra la quantitat de memòria RAM que esta usant l\'emulador. + Mostrar memòria disponible + Mostra la quantitat de memòria RAM que esta disponible. + Mostrar la temperatura de la bateria + Mostra la temperatura actual de la bateria en Celsius i Fahrenheit. + Posició de la informació + Tria on la informació de rendiment serà mostrada en la pantalla. + Dalt a l\'esquerra + Dalt a la dreta + Avall a l\'esquerra + Avall a la dreta + Dalt al centre + Avall al centre + Fons de la informació + Agrega un fons darrere de la informació per a fer-la més llegible. + Trucs Afegir trucs @@ -639,6 +722,7 @@ S\'esperen errors gràfics temporals quan estigue activat. De costat a costat + De costat a costat ample complet Anàglifo Entrellaçat Entrellaçat invers @@ -827,4 +911,19 @@ S\'esperen errors gràfics temporals quan estigue activat. Guardat ràpid - %1$tF %1$tR Guardat ràpid no disponible. - + + Comprimir + Comprimint... + Descomprimir + Descomprimint... + Compressió completada amb èxit. + Compressió no suportada amb este fitxer. + Este fitxer ja està comprimit. + Va fallar la compressió. + Descompressió completada amb èxit. + Descompressió no suportada amb este fitxer. + Este fitxer no està comprimit. + Va fallar la descompressió. + Les aplicacions ja instal·lades no es poden comprimir ni descomprimir. + + diff --git a/src/android/app/src/main/res/values-b+da+DK/strings.xml b/src/android/app/src/main/res/values-b+da+DK/strings.xml index ad918f0a7..562bec31b 100644 --- a/src/android/app/src/main/res/values-b+da+DK/strings.xml +++ b/src/android/app/src/main/res/values-b+da+DK/strings.xml @@ -355,7 +355,6 @@ Lær mere Luk Nulstil til standard - spilkassetter eller installerede titler.]]> Standard Ingen Auto diff --git a/src/android/app/src/main/res/values-b+es+ES/strings.xml b/src/android/app/src/main/res/values-b+es+ES/strings.xml index a77cf724a..985a249fe 100644 --- a/src/android/app/src/main/res/values-b+es+ES/strings.xml +++ b/src/android/app/src/main/res/values-b+es+ES/strings.xml @@ -463,8 +463,8 @@ Se esperan fallos gráficos temporales cuando ésta esté activado. Rojo Verde Azul - Opacidad personalizado de la segunda pantalla - La opacidad de la segunda pantalla de 3DS al usar el pantalla personalizado. Útil si la segunda pantalla ésta posicionada en la parte superior de la primera pantalla. + Opacidad personalizada de la segunda pantalla + La opacidad de la segunda pantalla de 3DS al usar la pantalla personalizada. Útil si la segunda pantalla ésta posicionada en la parte superior de la primera pantalla. Posición Pantalla Pequeña ¿Dónde debería aparecer la pantalla pequeña en relación con la grande en Disposicion de Pantalla Grande? Arriba a la Derecha diff --git a/src/android/app/src/main/res/values-b+pl+PL/strings.xml b/src/android/app/src/main/res/values-b+pl+PL/strings.xml index 460a12431..6f19169a5 100644 --- a/src/android/app/src/main/res/values-b+pl+PL/strings.xml +++ b/src/android/app/src/main/res/values-b+pl+PL/strings.xml @@ -107,9 +107,18 @@ Ostatnio dodane Zainstalowane + + Auto-mapowanie Kontrolera + Zastosuj standardowe mapowanie gamepada dla wszystkich przycisków i osi. + Naciśnij ten przycisk na kontrolerze! + Przycisk kierunkowy 3DS z zaznaczonym przyciskiem A + Wyczyść wszystkie mapowania + Spowoduje to usunięcie wszystkich bieżących mapowań kontrolera. Analog C-Stick Skróty klawiszowe + Jeśli opcja \"Włącz skrót klawiszowy” jest włączona, należy nacisnąć ten klawisz oprócz przypisanego skrótu klawiszowego. + Włącz skrót klawiszowy Spusty Spust Krzyżak @@ -327,6 +336,8 @@ Sprawia, że operacje asynchroniczne są deterministyczne dla debugowania. Włączenie tej opcji może powodować zawieszanie się gry. Włącz serwer RPC Włącza serwer RPC na porcie 45987. Pozwala to na zdalny odczyt/zapis pamięci gościa. Nie włączaj tej opcji, jeśli nie wiesz, co robisz. + Przełącz typ indywidualnych danych konsoli + Przełącza unikalny typ konsoli danych (Old 3DS ↔ New 3DS), aby umożliwić pobranie oprogramowania układowego przeciwnego typu z ustawień systemowych. Aktywuj Shader JIT Używa silnika JIT zamiast interpretera do programowej emulacji shaderów. @@ -337,6 +348,8 @@ Odwrócony widok Ekran Odwrócony Ekran + Układy do cyklu + Które układy są przełączane za pomocą skrótu do układu cyklu Domyślny 16:9 4:3 @@ -357,7 +370,7 @@ Dowiedz się więcej Zamknij Przywróć ustawienia domyślne - kartridże z grami lub zainstalowane tytuły.]]> + kartridże z grami lub zainstalowane tytuły.]]> Domyślne Brak Automatyczne diff --git a/src/android/app/src/main/res/values-b+pt+BR/strings.xml b/src/android/app/src/main/res/values-b+pt+BR/strings.xml index 1055be5e3..f71991483 100644 --- a/src/android/app/src/main/res/values-b+pt+BR/strings.xml +++ b/src/android/app/src/main/res/values-b+pt+BR/strings.xml @@ -3,7 +3,7 @@ Este software irá executar aplicativos feitos para o console portátil Nintendo 3DS. Nenhum jogo está incluído.\n\nAntes de começar a emulação, selecione uma pasta para armazenar os dados do usuário do Azahar.\n\nO que é isto:\nWiki - Dados e armazenamento do usuário do Azahar para Android Notificações do emulador Azahar 3DS - Azahar está Executando + Azahar em Execução Em seguida, você precisará selecionar uma pasta de Aplicativos. O Azahar exibirá todas as ROMs de 3DS dentro da pasta selecionada no aplicativo.\n\nROMs, atualizações e DLC no formato CIA precisarão ser instaladas separadamente clicando no ícone da pasta e selecionando Instalar CIA. @@ -23,8 +23,8 @@ Drivers personalizados não suportados O carregamento de driver personalizado não é suportado atualmente para este dispositivo.\nVerifique esta opção novamente no futuro para ver se o suporte foi adicionado! Nenhum arquivo de log encontrado - Selecione a Pasta de Aplicativos - Permitir que o Azahar preencha a lista de aplicativos + Selecionar Pasta de Aplicativos + Permite que o Azahar preencha a lista de aplicativos Sobre Um emulador de 3DS de código aberto Versão da compilação, créditos e mais @@ -107,9 +107,18 @@ Recentemente adicionado Instalado + + Mapeamento Automático do Controle + Aplicar mapeamento padrão do controle para todos os botões e eixos + Pressione este botão no seu controle! + Botões de face em diamante do 3DS com o botão A destacado + Limpar Todos os Mapeamentos + Isso removerá todos os mapeamentos de controle atuais. Analógico Direcional C-Stick Teclas de atalho + Se a tecla \"Ativar Atalho\" estiver mapeada, ela deve ser pressionada em conjunto com o atalho mapeado + Ativar Atalho Gatilhos Gatilho Direcional D-Pad @@ -228,6 +237,8 @@ Compila shaders em segundo plano para reduzir travamentos durante o jogo. Quando ativado, espere falhas gráficas temporárias Filtragem Linear Ativa a filtragem linear, que suaviza o visual do jogo. + Escala Inteira + Garante que a tela maior em todos os layouts tenha uma escala inteira de 240px de altura, correspondente à tela original do 3DS. Filtro de texturas Aprimora o visual dos aplicativos ao aplicar filtros às texturas. Os filtros compatíveis são: Anime4K Ultrafast, Bicúbico, ScaleForce, xBRZ Freescale e MMPX. Atrasar Thread de Renderização do Aplicativo @@ -325,6 +336,8 @@ Torna as operações assíncronas determinísticas para depuração. Ativar essa opção pode causar congelamentos. Ativar servidor RPC Ativa o servidor RPC na porta 45987. Isso permite ler e escrever remotamente a memória do sistema emulado. + Alternar tipo de console de dados únicos + Alterna o tipo de console de dados únicos (Old 3DS ↔ New 3DS) para permitir o download do firmware do sistema oposto nas configurações do sistema. Ativar Shader JIT Usa o mecanismo JIT em vez do interpretador para a emulação de shaders por software. @@ -335,6 +348,8 @@ Paisagem Reversa Retrato Retrato Reverso + Layouts para Alternar + Quais layouts são percorridos pela tecla de atalho \"Alternar Layout\" Padrão 16:9 4:3 @@ -355,7 +370,7 @@ Saber mais Fechar Redefinir para o Padrão - cartuchos de jogos ou títulos instalados.]]> + cartuchos de jogo ou títulos instalados.]]> Padrão Nenhum Automático @@ -472,7 +487,7 @@ Posição Y Largura Altura - Trocar Disposições + Alternar Layout Trocar telas Girar Tela para Posição Vertical Redefinir sobreposição diff --git a/src/android/app/src/main/res/values-b+tr+TR/strings.xml b/src/android/app/src/main/res/values-b+tr+TR/strings.xml index da2a72592..bf540bdbb 100644 --- a/src/android/app/src/main/res/values-b+tr+TR/strings.xml +++ b/src/android/app/src/main/res/values-b+tr+TR/strings.xml @@ -306,7 +306,6 @@ Daha Fazla Öğren Kapat Varsayılanlara Sıfırla - oyun kartuşlarınızı veya yüklü başlıklarınızıyeniden yüklemek için kılavuzları izleyin.]]> Varsayılan Otomatik Kapalı diff --git a/src/android/app/src/main/res/values-b+zh+CN/strings.xml b/src/android/app/src/main/res/values-b+zh+CN/strings.xml index f9c07aa30..74ad152d7 100644 --- a/src/android/app/src/main/res/values-b+zh+CN/strings.xml +++ b/src/android/app/src/main/res/values-b+zh+CN/strings.xml @@ -334,7 +334,6 @@ 了解更多 关闭 恢复默认 - 游戏卡带或已安装的应用。]]> 默认 自动 diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml index a2d812a84..a49ae0cff 100644 --- a/src/android/app/src/main/res/values-de/strings.xml +++ b/src/android/app/src/main/res/values-de/strings.xml @@ -325,7 +325,6 @@ Mehr erfahren Schließen Auf Standard zurücksetzen - Karten oder Downloadtitel)erneut zu dumpen.]]> Standard Keine Auto diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml index 9c36dcc6f..93d855876 100644 --- a/src/android/app/src/main/res/values-fr/strings.xml +++ b/src/android/app/src/main/res/values-fr/strings.xml @@ -370,7 +370,7 @@ En savoir plus Fermer Par défaut - cartouches de jeu ou les jeux installés.]]> + cartouches ou titres installés.]]> Par défaut Aucun Auto diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml index 847041389..46ee04737 100644 --- a/src/android/app/src/main/res/values-it/strings.xml +++ b/src/android/app/src/main/res/values-it/strings.xml @@ -80,7 +80,7 @@ Permessi Cartella dati (La cartella utente è richiesta)]]> - Concedere autorizzazioni opzionali per utilizzare specifiche funzionalità dell\'emulatore + Concedi permessi facoltativi per utilizzare funzionalità specifiche dell\'emulatore Aiuto Salta Annulla @@ -95,7 +95,7 @@ Hai perso i permessi di scrittura sulla tua cartella dei dati utente, dove sono memorizzati i salvataggi e altre informazioni. Questo può accadere dopo alcuni aggiornamenti app o Android. Seleziona nuovamente la cartella per ripristinare i permessi e continuare. Selezione non valida La cartella utente selezionata non è valida.\nSelezionala di nuovo assicurandoti di partire dalla memoria principale del dispositivo. - Azahar ha perso l\'autorizzazione a gestire i file su questo dispositivo. Ciò può accadere dopo alcuni aggiornamenti di app o Android. Si prega di concedere nuovamente questa autorizzazione nella schermata successiva per continuare a utilizzare l\'app. + Azahar ha perso l\'autorizzazione a gestire i file su questo dispositivo. Ciò può accadere dopo alcuni aggiornamenti dell\' app o di Android. Si prega di concedere nuovamente questa autorizzazione nella schermata successiva per continuare a utilizzare l\'app. Impostazioni tema Configura le impostazioni del tema di Azahar. Imposta tema @@ -370,7 +370,7 @@ Scopri di più Chiudi Reimposta - cartuccie di gioco o titoli installati.]]> + cartuccie di gioco o titoli installati.]]> Standard Nessuno Auto diff --git a/src/android/app/src/main/res/values-sv/strings.xml b/src/android/app/src/main/res/values-sv/strings.xml index fdc0ba794..037bb610c 100644 --- a/src/android/app/src/main/res/values-sv/strings.xml +++ b/src/android/app/src/main/res/values-sv/strings.xml @@ -370,7 +370,7 @@ Lär dig mer Stäng Återställ till standard - spelkassetter igen eller installerade titlar.]]> + spelkassetter eller installerade titlarna.]]> Standard Ingen Auto diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 46a2b0e47..750677fd5 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -391,7 +391,7 @@ Learn More Close Reset to Default - game cartidges or installed titles.]]> + game cartridges or installed titles.]]> Default None Auto diff --git a/src/citra_qt/citra_qt.cpp b/src/citra_qt/citra_qt.cpp index f0aba2c31..f6faec9c5 100644 --- a/src/citra_qt/citra_qt.cpp +++ b/src/citra_qt/citra_qt.cpp @@ -1290,7 +1290,7 @@ bool GMainWindow::LoadROM(const QString& filename) { if (result != Core::System::ResultStatus::Success) { switch (result) { case Core::System::ResultStatus::ErrorGetLoader: - LOG_CRITICAL(Frontend, "Failed to obtain loader for {}!", filename.toStdString()); + LOG_CRITICAL(Frontend, "Failed to obtain loader for {}", filename.toStdString()); QMessageBox::critical( this, tr("Invalid App Format"), tr("Your app format is not supported.
Please follow the guides to redump your " diff --git a/src/citra_qt/configuration/configure_motion_touch.cpp b/src/citra_qt/configuration/configure_motion_touch.cpp index 5b9b79bd7..6d2806897 100644 --- a/src/citra_qt/configuration/configure_motion_touch.cpp +++ b/src/citra_qt/configuration/configure_motion_touch.cpp @@ -230,8 +230,13 @@ void ConfigureMotionTouch::ConnectEvents() { poll_timer->start(200); // Check for new inputs every 200ms } }); +#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) + connect(ui->touchpad_checkbox, &QCheckBox::stateChanged, this, [this]() { UpdateUiDisplay(); }); +#else connect(ui->touchpad_checkbox, &QCheckBox::checkStateChanged, this, [this]() { UpdateUiDisplay(); }); +#endif + connect(ui->touchpad_config_btn, &QPushButton::clicked, this, [this]() { if (QMessageBox::information(this, tr("Information"), tr("After pressing OK, tap the touchpad on the controller " diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 95b5dda5b..52f406226 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp @@ -122,6 +122,16 @@ typedef struct stat file_stat_t; #define FERROR ferror #define FFLUSH std::fflush +#ifdef _MSC_VER +#define DUP_FD _dup +#define FDOPEN _fdopen +#define CLOSE_FD _close +#else +#define DUP_FD dup +#define FDOPEN fdopen +#define CLOSE_FD close +#endif + #endif // This namespace has various generic functions related to files and paths. @@ -1262,6 +1272,44 @@ void IOFile::Swap(IOFile& other) noexcept { bool IOFile::Open() { Close(); + // Any filename with the format fd:// represents a file that + // must be opened by duplicating the provided file_descriptor. This is used + // on Android vanilla builds when the ROM absolute path is not known. + if (filename.starts_with("fd://")) { + +#if !defined(HAVE_LIBRETRO_VFS) + const std::string fd_str = filename.substr(5); + + // Check that fd_str is not empty and contains only digits + if (fd_str.empty() || !std::all_of(fd_str.begin(), fd_str.end(), ::isdigit)) { + m_good = false; + return false; + } + + int fd = std::stoi(fd_str); + + int dup_fd = DUP_FD(fd); + if (dup_fd == -1) { + m_good = false; + return false; + } + + m_file = FDOPEN(dup_fd, openmode.c_str()); + if (!m_file) { + CLOSE_FD(dup_fd); + m_good = false; + return false; + } + + m_good = true; + return true; +#else + // TODO: Add support for libretro vfs when needed. + m_good = false; + return false; +#endif + } + #ifdef _WIN32 // Open with FILE_SHARE_READ, FILE_SHARE_WRITE and FILE_SHARE_DELETE // flags. This mimics linux behaviour as much as possible, which diff --git a/src/core/core.cpp b/src/core/core.cpp index e7b5868f8..42cba3160 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -303,7 +303,7 @@ System::ResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::st app_loader = Loader::GetLoader(filepath); } if (!app_loader) { - LOG_CRITICAL(Core, "Failed to obtain loader for {}!", filepath); + LOG_CRITICAL(Core, "Failed to obtain loader for {}", filepath); return ResultStatus::ErrorGetLoader; }