Home Homebrew Rilasciato FPSLocker v3.0.1

[Scena Switch] Rilasciato FPSLocker v3.0.1

71
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 tesla funziona sovrapponendo informazioni aggiuntive sullo schermo durante il gioco e offre la possibilità di personalizzare vari aspetti, tra cui l’FPS.

Gli utenti potranno definire un valore specifico per l’FPS mentre l’overlay si occuperà di rilevare l’API grafica utilizzata dal gioco per adeguare automaticamente il frame rate.

Questa funzionalità offre un maggiore controllo sull’esperienza di gioco, consentendo agli utenti di ottimizzare le prestazioni dei loro giochi in base alle capacità della console e alle loro preferenze personali.

La repository FPSLocker Warehouse raccoglie numerosi file YAML utilizzati da FPSLocker che oltre a memorizzare informazioni sui giochi a 30FPS, include anche tutta una serie di informazioni aggiuntive su come aggiornare le patch per gli hack a oltre 30 fps.

Nota: La dimensione massima di yaml supportata è 32kB, sebbene possa essere espansa nei prossimi aggiornamenti.

La nuova versione introduce il supporto alla funzionalità appena aggiunta in SaltyNX 1.5.2, che permette di modificare in tempo reale il numero di buffer nei giochi NVN compatibili.

Se un titolo non supporta questa funzione, un avviso nel menu “Set Buffering” informerà che le modifiche saranno applicate al successivo riavvio del gioco.

Gli sviluppatori ricordano che alcuni giochi potrebbero non mostrare differenze tra doppio e triplo buffering, spesso per via di mancate chiamate di sincronizzazione NVN, come nel caso di The Hundred Line.

Per sfruttare questa nuova funzione è necessario aggiornare SaltyNX alla versione 1.5.2 o successiva.

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 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

Aggiunto supporto alla nuova funzionalità di SaltyNX 1.5.2 che permette di modificare il buffering in tempo reale nei giochi NVN compatibili. Se un gioco non è compatibile con questa funzione in tempo reale, nel menu Set Buffering verrà mostrato il messaggio: "It will be applied on next game boot".

  • Nota: Alcuni giochi sono progettati in modo tale che non si noterà alcuna differenza nel comportamento degli FPS tra doppio e triplo buffering. Questo di solito deriva dalla mancanza di alcune chiamate di sincronizzazione NVN (che potrebbero causare condizioni di race della GPU). Un esempio citato è The Hundred Line.

È necessario aggiornare a SaltyNX 1.5.2+ per poter utilizzare questa funzione.

Download: FPSLocker v3.0.1

Download: Debug.zip

Download: Source code FPSLocker v3.0.1

Fonte: github.com