Home Homebrew Rilasciato FPSLocker v3.2.3 – Overlay Switch per FPS personalizzati con tracker...

[Scena Switch] Rilasciato FPSLocker v3.2.3 – Overlay Switch per FPS personalizzati con tracker migliorato

61
0

Pubblicato un nuovo aggiornamento per FPSLocker, l’overlay tesla sviluppato dal developer masagrator per console Switch modificate ci permette di impostare un FPS personalizzato attraverso il rilevamento dell’API grafica.

L’overlay si sovrappone allo schermo durante il gioco e permette di modificare in tempo reale vari parametri, tra cui gli FPS, adattando automaticamente il valore selezionato alla tecnologia grafica utilizzata dal titolo in esecuzione.

La repository ufficiale, FPSLocker Warehouse, continua a raccogliere i file YAML necessari al funzionamento dell’overlay, contenenti dati sui giochi bloccati a 30 FPS e istruzioni per aggiornare le patch che consentono di superare questo limite.

La dimensione massima supportata per i file YAML resta di 32 kB, ma potrebbe essere ampliata in futuri aggiornamenti.

L’ultima versione disponibile introduce soprattutto correzioni mirate e miglioramenti interni. In particolare è stato risolto un problema che impediva la visualizzazione corretta della versione del gioco nelle impostazioni avanzate quando il titolo avviava programmi secondari diversi da quello principale.

Aggiornata inoltre la base interna dei title ID, un’operazione che accompagna praticamente ogni release e garantisce una migliore compatibilità con nuovi giochi e aggiornamenti.

Questo aggiornamento si inserisce in un ciclo di sviluppo piuttosto attivo. Le versioni precedenti della serie 3.2 hanno corretto errori critici come il noto 0x207, legato all’uso di nx-ovlloader in modalità 4 MB e a buffer di socket troppo grandi.

Migliorata anche la gestione delle impostazioni specifiche per i giochi, evitando che venissero ignorate in presenza di più programmi associati allo stesso titolo.

Con la versione 3.2.0 di FPSLocker è stata anche introdotta una novità importante sul fronte dell’accessibilità: un mirror alternativo su Gitee per il download delle configurazioni, pensato per aggirare i blocchi o le limitazioni di GitHub in alcuni Paesi, rendendo il servizio più affidabile a livello globale.

Nello stesso aggiornamento è stata modificata la licenza in GPLv2 per allinearsi a libtesla.

Guardando leggermente più indietro, le versioni 3.1 hanno portato miglioramenti significativi alle prestazioni dell’interfaccia, con una velocità di caricamento della lista dei giochi aumentata in media del 35% sui firmware più recenti, oltre alla piena compatibilità con Atmosphère 1.10.0 e versioni successive, a patto di utilizzare anche SaltyNX aggiornato.

Requisiti

Utilizzo

Lingue supportate: inglese, tedesco, francese, russo, portoghese brasiliano, cinese semplificato.

L’overlay viene eseguito in due modalità:

Quando il gioco è in esecuzione

Se il gioco è supportato da SaltyNX e hai installato tutto correttamente, vedrete il menu in cui la prima riga indica che il plugin NX-FPS è in esecuzione.

Breve spiegazione: L’approccio migliore se si intende eseguire giochi a 30 FPS a FPS più elevati:

  1. Collegare la console Switch a Internet, aprire FPSLocker e andare su Advanced Settings, quindi premere su Check/download config file. Se il gioco e la versione sono compatibili con la repository FPSLocker Warehouse, il menu verrà aggiornato mostrando l’opzione Convert config to patch. Premerla, riavviare il gioco e poi modificare il target FPS in FPSLocker.
  2. Andare su Advanced Settings, se viene visualizzato “Set/Active/Available buffers: 2/2/3”, premere su Set buffering, scegliere Triple (force), tornare al menu principale di FPSLocker, premere su Save settings e riavviare il gioco.

Spiegazione di ciascuna opzione e informazione:

  • Interval Mode – Viene utilizzato dall’API NVN per impostare il limitatore a 30 FPS (2) o 60 FPS (1).
  • Custom FPS Target – Viene utilizzato per bloccare il gioco a determinati FPS. Se il gioco utilizza blocchi FPS proprietari del motore, potrebbe non essere in grado di sbloccare più di 30 FPS senza patch aggiuntive.
  • Big number on the right – Mostra quanti fotogrammi sono passati nell’ultimo secondo per il gioco attualmente in esecuzione. Questo per confermare che il blocco funziona come previsto.
  • Increase/Decrease FPS target – Viene visualizzato solo in modalità portatile. Cambia l’obiettivo FPS di 5. Il minimo è 15 FPS, il massimo è 60 FPS.
  • Change FPS target – Viene visualizzato solo in modalità docked. Mostra una tabella con diversi valori di FPS, da 15 a 60 per impostazione predefinita con possibilità di espansione a 120 FPS.
  • Disable custom FPS target – Rimuove l’obiettivo FPS. Poiché non è possibile prevedere quale modalità di intervallo è prevista a questo punto, è a discrezione dell’utente manipolare l’FPS per ripristinare l’intervallo corretto prima di disabilitare l’obiettivo FPS.
  • Advanced settings – Sottomenu che si compone di:
    • Se il gioco utilizza NVN
      • Window Sync Wait – Questa è un’impostazione pericolosa che disabilitata può mandare in crash il gioco, ma in alcuni può portare il vantaggio di disabilitare il doppio buffer vsync al costo di piccoli problemi grafici (check list di giochi compatibili con questa soluzione in fondo al README). Usalo con cautela. Non verrà visualizzato se il gioco non utilizza il doppio buffer.
      • Set Buffering – Se il gioco utilizza un buffering diverso da Double, questa opzione mostrerà che ti permetterà di forzare l’esecuzione del gioco a qualsiasi altro buffering che non sia superiore a quello originale (quindi ad esempio non puoi cambiare Double Buffer in Triple Buffer). L’abbassamento del buffer è consigliato solo per i giochi che hanno prestazioni quasi perfette a 30 o 60 FPS, ma soffrono di un cattivo framepacing o di un grande input lag. Se forzerai il doppio buffer nei giochi con prestazioni irregolari, i cali di FPS saranno molto gravi. Può essere applicato solo all’avvio del gioco, quindi dopo aver modificato il buffering è necessario salvare le impostazioni in FPSLocker e riavviare il gioco.
        Spiegazione di : Set/Active/Available Buffers

        • Set: Quanti buffer sono stati impostati utilizzando . Se il gioco non lo utilizza, sarà 0. Può essere utilizzato dai giochi per impostare un valore del buffer inferiore a quello consentito dallo spazio riservato. Se viene rilevato che questo viene utilizzato e inferiore a Buffer disponibili, è possibile utilizzare la variante “(force)” accanto all’opzione predefinita. Senza di esso verranno ripristinate le impostazioni predefinite.nvnWindowSetNumActiveTextures(force)
        • Active: Quanti buffer vengono effettivamente utilizzati dal gioco.
        • Available Buffers: numero di buffer effettivamente forniti alla rete NVN. Possiamo utilizzare queste informazioni per forzare i giochi a utilizzare tutti i buffer quando non lo fanno.
    • Se il gioco utilizza Vulkan
      • Set Buffering – Passa dal doppio buffer al triplo buffer. L’abbassamento del buffer è consigliato solo per i giochi che hanno prestazioni quasi perfette a 30 o 60 FPS, ma soffrono di un cattivo framepacing o di un grande input lag. Se forzerai il doppio buffer nei giochi con prestazioni irregolari, i cali di FPS saranno molto gravi. Può essere applicato solo all’avvio del gioco, quindi dopo aver modificato il buffering è necessario salvare le impostazioni in FPSLocker e riavviare il gioco.
    • Convert config to patch file – Se esiste un file di configurazione corretto per questo gioco e questa versione, avrai un’opzione per convertirlo in un file di patch che verrà caricato quando eseguirai questo gioco la prossima volta. La patch viene salvata in SaltySD/plugins/FPSLocker/patches/*titleid_uppercase*/*buildid_uppercase*.bin
    • Delete patch file – Se esiste un file di configurazione corretto per questo gioco e questa versione, avrai un’opzione per eliminare il file di patch in modo che non venga caricato quando eseguirai questo gioco la prossima volta.
    • Check/download config file – Controlla nella repository Warehouse se esiste la configurazione per questo gioco e questa versione. Se esiste, viene scaricato e viene anche controllato se è uguale a quello su sdcard. In caso contrario, l’overlay rimuoverà la patch esistente e il file di configurazione e l’utente dovrà convertire manualmente la nuova configurazione in file di patch. 0x312 errore significa che abbiamo ricevuto un file inaspettato da GitHub. Qualsiasi altro codice di errore significa che sta succedendo qualcosa con la tua connessione o il tuo server github.
    • Halt unfocused game – Alcuni giochi non vengono sospesi quando Switch si trova nel menu principale. L’abilitazione di questa opzione si sposta nel thread del gioco a ciclo infinito responsabile della visualizzazione dei fotogrammi nel menu principale. L’abilitazione di questa opzione può causare vari problemi a seconda del gioco, quindi assicurati di non usarla in modo frivolo.
  • Save settings – Salva il profilo per il gioco attualmente in esecuzione che verrà caricato automaticamente la prossima volta dal plug-in all’avvio. Non usarlo se hai disabilitato l’attesa di sincronizzazione e non l’hai testato correttamente per non causare arresti anomali. Il profilo viene salvato in SaltySD/plugins/FPSLocker/*titleid_uppercase*.dat
  • Display settings – Sottomenu relativo alla frequenza di aggiornamento del display. Composto da:
    • Increase refresh rate – Viene visualizzato solo in modalità portatile. Modifica la frequenza di aggiornamento del display fino a 60 Hz. Nelle unità OLED è bloccato.
    • Decrease refresh rate – Viene visualizzato solo in modalità portatile. Modifica la frequenza di aggiornamento del display fino a 40 Hz. Nelle unità OLED è bloccato.
    • Change refresh rate – Viene visualizzato solo in modalità docked. Scegli la frequenza di aggiornamento del display dall’elenco.
    • Display Sync – Quando è attivata, tutte e tre le opzioni di cui sopra non sono disponibili, la frequenza di aggiornamento del display viene modificata solo quando il gioco è in esecuzione e corrisponde alla frequenza di aggiornamento con l’obiettivo FPS.
    • Retro Remake Mode – Questa opzione viene mostrata solo per le persone che utilizzano Lite con schermo o (solo prima revisione). Questo perché i display Retro Remake richiedono un approccio speciale per modificare la frequenza di aggiornamento e la prima versione di SUPER5 sta falsificando l’ID del display già esistente, il che rende impossibile rilevare quale è in uso, quindi l’utente deve abilitarlo manualmente se utilizza il display SUPER5. Tutti gli altri display di Retro Remake vengono rilevati automaticamente.InnoLux 2J055IA-27A (Rev B1)Retro Remake SUPER5
    • Docked Settings – Sottomenu relativo alla frequenza di aggiornamento del display dei display esterni. Non accessibile per le unità Lite. Composto da:
      • myDP link rate – Segnalerà o modalità. La modalità HBR non consente di superare i 75 Hz a 1080p. Maggiori informazioni in fondo al file readme.HBRHBR2
      • Config ID – Qual’è il nome del file di configurazione utilizzato per memorizzare le impostazioni per il display attualmente connesso. È possibile trovare il file nella cartella.SaltySD/plugins/FPSLocker/ExtDisplays
      • Allowed refresh rates – È possibile controllare e modificare manualmente quali frequenze di aggiornamento sono abilitate per il display esterno attualmente collegato. È composto da 40, 45, 50 e 55 Hz. Per impostazione predefinita, 50 è attivato, tutto il resto è disattivato.
      • Display underclock wizard – Passa automaticamente attraverso le frequenze di aggiornamento da 40 a 55, all’utente viene chiesto di premere il pulsante richiesto per confermare che funziona, se non premuto per 15 secondi passa alla frequenza di aggiornamento successiva. Dopo aver controllato tutte le frequenze di aggiornamento, si passa al menu per controllare i risultati.Allowed refresh rates
      • Display overclock wizard – Mostra solo se la frequenza di aggiornamento massima riportata dal display esterno è uguale o superiore a 70 Hz. Passa automaticamente attraverso le frequenze di aggiornamento da 70 a max supportate dal display con un limite di 120 Hz, all’utente viene chiesto di premere il pulsante richiesto per confermare che funziona, se non viene premuto per 10 secondi passa alla frequenza di aggiornamento successiva. Dopo aver controllato tutte le frequenze di aggiornamento, si passa al menu per controllare i risultati.Allowed refresh rates
      • Frameskip tester – Permette di verificare se il display mostra il segnale attualmente utilizzato alle frequenze di aggiornamento native. Molti display possono supportare, ad esempio, 50 Hz, ma visualizzano ancora cose a 60 Hz. Le istruzioni su come usarlo vengono fornite quando si seleziona questo menu. Questo menu è disponibile anche in modalità portatile.
      • Additional settings – Sottomenu con opzioni relative al funzionamento delle patch FPSLocker/FPSLocker in modalità docked. Attualmente è possibile scegliere tra:
        • Allow patches to force 60 Hz – Alcune patch di FPSLocker forzano i 60 Hz per risolvere i problemi di framepacing con i filmati a 30 FPS. Quando si verifica tale modifica, il gioco viene messo in pausa per 4 secondi prima di continuare. Per impostazione predefinita, l’opzione è attivata. Disattivandolo si applicherà solo il blocco FPS senza modificare la frequenza di aggiornamento e senza ritardi.
        • Use lowest refresh rate for unmatched FPS targets – Ad esempio, per un display a 60 Hz, l’obiettivo di 35 FPS potrebbe non avere una frequenza di aggiornamento disponibile corrispondente. Abilitando questa opzione otterrai la frequenza di aggiornamento abilitata più bassa nel menu. Questa opzione è disabilitata per impostazione predefinita, il che comporterà l’impostazione di 60 Hz in tal caso.Allowed refresh rates

Quando il gioco non è in esecuzione

Presenti due sottomenu tra cui scegliere (se si sta utilizzando il modello OLED, verrete reindirizzati automaticamente all’elenco dei giochi):

  • Games list
    Elencherà i giochi installati (max 32) e come prima opzione è disponibile il sottomenu “Tutti”.
    All’interno di ognuno troverai due opzioni:

    • Delete settings – eliminerà il file creato dall’opzione “Salva impostazioni”
    • Delete patches – eliminerà il file creato dall’opzione “Converti configurazione in file patch”
  • Display settings – Puoi leggere nella sezione precedente.
  • Force English language – Se preferisci usare l’inglese, questa opzione forzerà l’overlay a usarlo. Si ottiene modificando automaticamente l’eseguibile, quindi dopo aver aggiornato l’overlay alla versione più recente verrà disattivato.

Informazioni sulla modifica del refresh rate in modalità portatile

In questo spazio viene fatta chiarezza su alcuni aspetti importanti legati alla modifica della frequenza di aggiornamento dello schermo in modalità portatile.

I display OLED della Switch richiedono una correzione gamma dei colori ogni volta che viene cambiato il refresh rate. Per ottenere un risultato il più fedele possibile all’esperienza originale, vengono modificati i registri del pannello OLED per adattare la curva gamma.

Tuttavia, poiché questi registri agiscono con step molto ampi, non è possibile ottenere una regolazione perfetta, per cui si possono notare lievi discrepanze nei colori.

Il caso più evidente si verifica con la luminosità al 60% impostata a 45 Hz. Inoltre, minore è il refresh rate selezionato, minore sarà anche la luminosità massima raggiungibile: ciò è dovuto al modo in cui il registro responsabile della gamma interviene alla massima luminosità.

Dai vari feedback ricevuti, solo un utente con pannello LCD ha segnalato un leggero sfarfallio nell’angolo in basso a sinistra dello schermo a 40 Hz.

Il pannello coinvolto era un InnoLux P062CCA-AZ2, ma altri utenti con lo stesso schermo non hanno riscontrato il problema, incluso lo sviluppatore stesso. Nessun altro tipo di anomalia è stato segnalato.

I display delle versioni Retro Remake hanno bisogno di un po’ di tempo per adattarsi al nuovo segnale. Per questo motivo, la frequenza di aggiornamento viene applicata con un certo ritardo.

Se si tenta di cambiarla troppo rapidamente, si può incorrere in uno schermo nero, risolvibile mettendo la console in standby, spegnendola o riavviandola. In caso di problemi, è consigliato segnalarli nell’apposita sezione “Issues” per permettere l’aumento del ritardo direttamente in SaltyNX.

È stato deciso di limitare i display LCD e Retro Remake a un minimo di 40 Hz, poiché scendere sotto questa soglia non porta benefici tangibili e potrebbe introdurre instabilità dovute all’underclock dello schermo.

Per i pannelli OLED, il limite minimo è invece fissato a 45 Hz, dato che già a 40 Hz il comportamento del display risulta anomalo.

Gli schermi LCD possono essere portati fino a 70 Hz senza problemi evidenti, ma per ora il limite massimo è stato lasciato a 60 Hz. A partire dai 75 Hz, gli utenti con pannelli originali hanno segnalato immagini difettose. I pannelli OLED invece presentano problemi già sopra i 60 Hz.

Se la sincronizzazione del display è disattivata, la frequenza personalizzata non viene ripristinata dopo la modalità riposo.

Cambiare la frequenza di aggiornamento influisce anche sulla fluidità delle animazioni del sistema operativo e dell’overlay Tesla, che appaiono più lente a frequenze inferiori.

L’introduzione del supporto alla frequenza di aggiornamento personalizzata ha richiesto una modifica nella gestione dei file di configurazione dei giochi. Per questo motivo, è necessario riscaricare tutte le configurazioni dalla repository FPSLocker Warehouse se si desidera una piena compatibilità con i nuovi refresh rate.

Infine, l’autore del software non si assume alcuna responsabilità per eventuali danni causati dalla modifica del refresh rate.

Ogni volta che si accede alle impostazioni dello schermo, l’utente verrà avvisato tramite un messaggio che ricorda che la responsabilità ricade interamente su di lui. Sarà necessario accettare l’avviso per proseguire.

Informazioni sulla modifica del refresh rate in modalità docked

Il limite massimo è stato fissato a 120 Hz poiché rappresenta il refresh rate più elevato supportato dal dock originale e dalle console Switch non OLED, rendendolo quindi lo standard più universale.

Molti display si fermano a un massimo di 75 Hz a 1080p, probabilmente a causa di un’interferenza nella connessione tra la Switch e il dock. Questo ostacolo porta a un fallimento dell’addestramento HBR2 (High Bit Rate 2) implementato nel sistema operativo della console (HOS), costringendo la connessione a funzionare in modalità HBR.

In HBR con 2 linee, il limite effettivo è di circa 180 MHz, leggermente superiore a quanto richiesto per 1080p a 75 Hz. Il problema potrebbe derivare dalla console stessa e/o dal dock.

Quando si opera in modalità HBR, inoltre, l’audio potrebbe non essere trasmesso al dock se si supera i 60 Hz a 1080p. I tentativi di forzare manualmente l’addestramento HBR2 portano al reset del segnale, che HOS cerca poi di ripristinare, bloccando quindi qualsiasi tentativo manuale.

Dai test effettuati, è emerso che gli applet di sistema di HOS diventano instabili già a partire dai 100 Hz. Questo significa, ad esempio, che se un gioco in esecuzione tenta di aprire l’applet per la selezione dell’utente, potrebbe verificarsi un crash.

Alcuni giochi, inoltre, mostrano instabilità anche senza l’intervento degli applet: ad esempio, Batman: The Enemy Within va in crash se viene chiuso quando il refresh rate supera una certa soglia.

Sync Wait

In questi giochi, è possibile disattivare il vsync a doppio buffer disabilitando l’opzione Window Sync Wait all’interno di FPSLocker.

  • Batman – The Telltale Series (la patch di Warehouse abilita il triple buffering, quindi non è necessario utilizzare questa opzione)
  • Pokémon Legends: Arceus
  • Pokémon Legends: Z-A
  • Pokémon Scarlet
  • Pokémon Violet
  • Sonic Frontier
  • The Legend of Zelda: Tears of the Kingdom (la patch di Warehouse abilita il triple buffering, quindi non è necessario utilizzare questa opzione)
  • Xenoblade Chronicles: Definitive Edition
  • Xenoblade Chronicles 2
  • Xenoblade Chronicles 3
  • Xenoblade Chronicles X

Changelog v3.2.3

  • Risolto un problema per cui, avviando un gioco con un programma diverso da quello principale, la versione del gioco non veniva visualizzata nelle Impostazioni avanzate.
  • Aggiornata la base interna dei Title ID.

Changelog v3.2.2

  • Risolto l’errore 0x207 che si presentava per alcuni utenti.
    • Il problema era causato dalla combinazione dell’uso di nx-ovlloader in modalità 4 MB e di buffer socket dell’overlay troppo grandi, aumentati di recente durante il debug di altri errori, che finivano per occupare quattro volte più spazio.
  • Aggiornata la base interna dei Title ID.

Changelog v3.2.1

  • Risolto un problema per cui l’opzione “Elimina impostazioni” specifica del gioco non cancellava le impostazioni dei programmi diversi da quello principale (limitata ai primi 16 ID).
  • Aggiornata la base interna dei Title ID.

Changelog v3.2.0

  • Aggiunta una fonte alternativa chiamata “Gitee” per il download delle configurazioni di FPSLocker, non bloccata in Cina e in altri Paesi che bloccano GitHub o sono bloccati da GitHub. È stata impostata come prima fonte perché universalmente accessibile, anche se può risultare leggermente più lenta per chi si trova lontano dalla Cina.
    • Un grande ringraziamento a sskyNS per aver ospitato la repository clonata automaticamente su Gitee, operazione resa necessaria dal fatto che la creazione di repository richiede un numero di telefono cinese.
    • Il sistema ora controlla prima Gitee: se la configurazione non viene trovata, verifica il README su Gitee, poi passa a GitHub per cercare la configurazione e, se assente, controlla il README anche lì.
  • Ora è possibile uscire dalle Impostazioni avanzate anche durante il controllo o il download del file di configurazione: la sessione verrà terminata prima di tornare al menu principale.
  • Quando il file di configurazione non viene trovato nel Warehouse, durante il download del README viene mostrato un indicatore percentuale di avanzamento.
  • Licenza cambiata in GPLv2 per essere conforme a libtesla.
  • Aggiornata la base interna dei Title ID.

Changelog v3.1.1

  • I titoli nella lista dei giochi (Game List) ora si caricano in media il 35% più velocemente sui firmware 19.0.0 e successivi.
    • Individuato un metodo alternativo per recuperare i titoli, più rapido rispetto alla funzione originale; è stata inviata una pull request a libnx affinché anche altri possano utilizzarlo.
  • Se si utilizza una versione di SaltyNX sufficientemente vecchia che mostra solo zeri per il BID, il controllo o il download del file di configurazione andrà immediatamente in timeout.
  • Aggiornata la base interna dei Title ID.
  • Aggiornata la traduzione in cinese semplificato. Grazie a @naicfeng (#80).

Changelog v3.1.0

  • Aggiunta la compatibilità con Atmosphère 1.10.0 e versioni successive.
    • Le versioni precedenti di FPSLocker potevano presentare problemi casuali se utilizzate con Atmosphère 1.10.0 o più recente.
    • Questa release è retrocompatibile, quindi può essere usata anche con versioni più vecchie di Atmosphère.
    • Per lo stesso motivo è necessario aggiornare SaltyNX alla versione 1.6.0 o superiore.
  • Durante il controllo o il download del file di configurazione, se la configurazione non viene trovata ma il gioco risulta presente nel Warehouse con una versione diversa, ora viene mostrato l’aggiornamento più recente disponibile.
  • Aggiornata la base interna dei Title ID.

Download: FPSLocker v3.2.3

Download: Debug.zip

Download: Source code FPSLocker v3.2.3