Home Homebrew Counter-Strike: Source arriva su Nintendo Switch grazie a css_nx, il nuovo porting...

Counter-Strike: Source arriva su Nintendo Switch grazie a css_nx, il nuovo porting nativo

81
0

Counter-Strike: Source ora può essere eseguito direttamente su Nintendo Switch grazie a css_nx, un interessante progetto open source sviluppato da NaGaa95 che porta lo storico sparatutto della Valve sulla console ibrida attraverso un porting nativo del motore.

Il progetto non utilizza un emulatore per riprodurre la versione PC del gioco, ma sfrutta un approccio decisamente più particolare.

Difatti css_nx utilizza il porting Android ARM64 del Source Engine realizzato da nillerusr, caricando le librerie originali e facendole funzionare all’interno di un ambiente Android minimale adattato per Nintendo Switch.

Il risultato è quindi una versione di Counter-Strike: Source pensata per funzionare direttamente sull’hardware della console, anche se il progetto si trova ancora in una fase iniziale dello sviluppo.

Come funziona css_nx

Il porting viene distribuito come applicazione Nintendo Switch e non include i dati originali del gioco. L’utente deve quindi fornire autonomamente i file di Counter-Strike: Source ottenuti dalla propria installazione.

Sono richieste in particolare le cartelle cstrike, hl2 e platform, insieme ai componenti necessari del porting ARM64 del Source Engine. Questa scelta permette al progetto di distribuire solamente il codice e gli elementi necessari al funzionamento del port, lasciando all’utente i dati proprietari del gioco.

Una volta predisposti i file sulla scheda microSD, css_nx può essere avviato come una normale applicazione homebrew, rispettando però alcune limitazioni legate alla memoria disponibile.

Serve l’Application Memory

Uno degli aspetti più importanti riguarda la quantità di memoria necessaria, css_nx non può essere utilizzato in modalità applet, ad esempio avviandolo semplicemente dall’Album della Nintendo Switch.

Per eseguire correttamente il porting è quindi necessario utilizzare il game override, avviando l’applicazione mentre si tiene premuto il pulsante durante l’avvio di un gioco, oppure utilizzare un apposito forwarder.

In questo modo il programma può accedere all’intero application memory pool della console, una caratteristica fondamentale per un progetto che deve gestire il Source Engine e i relativi dati di gioco.

Counter-Strike: Source sfrutta il Source Engine ARM64

La parte più interessante di css_nx è probabilmente proprio l’architettura utilizzata. Il progetto non ricrea il motore di Counter-Strike: Source da zero, ma sfrutta il lavoro già realizzato per il porting Android ARM64 del Source Engine.

NaGaa95 ha realizzato un ambiente capace di caricare queste librerie sulla Switch e collegarle alle funzionalità offerte dal sistema operativo della console. Questo approccio permette di ottenere un’esecuzione molto più vicina a quella nativa rispetto a una soluzione basata sull’emulazione di un PC.

Il progetto include inoltre diverse possibilità di configurazione attraverso un file config.txt, che viene creato automaticamente al primo avvio.

Attraverso questo file è possibile modificare diversi parametri del motore, tra cui risoluzione, lingua, visualizzazione degli FPS, configurazione del gamepad e console degli sviluppatori.

Supporto ai controller e alla rete

Naturalmente, un porting di Counter-Strike: Source su Switch deve adattare anche i controlli, css_nx permette di utilizzare il gamepad della console e offre parametri specifici per configurare l’esperienza di gioco.

Non manca inoltre il supporto alla rete. Il progetto collega i socket BSD del sistema libnx, permettendo di utilizzare le funzionalità di rete della Nintendo Switch per le connessioni LAN e per collegarsi direttamente a un indirizzo IP.

Al momento esistono però alcune limitazioni. Il porting non dispone infatti di un resolver DNS completo, motivo per cui è necessario utilizzare direttamente gli indirizzi IP per le connessioni. Anche il normale browser dei server basato sul master server non può quindi essere utilizzato come sulla versione PC.

Per chi vuole semplicemente giocare offline, invece, sono disponibili anche i bot di Counter-Strike: Source, che possono essere utilizzati senza una connessione Internet.

Installazione

Sono necessari:

  • Il Source Engine .apk (QUI) — per i moduli .so condivisi del motore e i font;
  • I file di gioco di Counter-Strike: Source provenienti da una copia legalmente posseduta del gioco (le cartelle cstrike/, hl2/ e platform/ da un’installazione Steam);
  • Il cstrike APK — per i libclient.so / libserver.so specifici di CS:S e extras_dir.vpk (questo è l’APK sulla base del quale è stato realizzato questo porting).

Creare la directory /switch/css_nx/ sulla scheda SD e organizzarlo in questo modo:


/switch/css_nx/
  css_nx.nro
  config.txt            <- creato automaticamente al primo avvio
  lib/                  <- tutti i file .so dalla cartella lib/arm64-v8a/
                           dell'APK Source Engine,
                           POI sovrascrivere libclient.so + libserver.so
                           con quelli presenti nella cartella lib/arm64-v8a/
                           dell'APK cstrike
  assets/extras_dir.vpk <- dall'cartella assets/ dell'APK cstrike
  files/                <- i font dalla cartella assets/ dell'APK Source Engine
                           (dejavusans.ttf, dejavusans-bold.ttf, DroidSansFallback.ttf,
                           LiberationMono-Regular.ttf, Itim-Regular.otf)
  cstrike/              <- dati di gioco di CS:S (cstrike_pak_dir.vpk + parti
                           _NNN.vpk, gameinfo.txt, steam.inf, resource/, maps/, ...)
  hl2/                  <- contenuti condivisi del Source Engine montati da CS:S
                           (hl2_*.vpk)
  platform/             <- contenuti condivisi della piattaforma
                           (platform_*.vpk)

Note

Questo porting non funziona in modalità applet/Album. Utilizzare un game override (tenere premuto durante l’avvio di un titolo) oppure un forwarder. La Switch necessita dell’intero application memory pool.

Networking: I socket BSD reali di libnx sono collegati al sistema, quindi la LAN e i collegamenti diretti tramite connect <ip> possono raggiungere la rete.

Non è presente un resolver DNS, quindi è necessario connettersi tramite indirizzo IP e il browser del master server non verrà popolato. I bot di CS:S funzionano offline.

Al primo avvio viene creato un file config.txt accanto al file .nro:

  • screen_width / screen_height — vengono passati come -w / -h quando entrambi sono impostati; -1 permette al motore di scegliere in base allo stato docked (1920×1080 in modalità docked, 1280×720 in modalità portatile).
  • args — riga di comando aggiuntiva del Source Engine (ad esempio +map de_dust2).
  • lang — nome della lingua del Source Engine (predefinita: english).
  • show_fps1 per mostrare il contatore degli FPS in sovrimpressione.
  • gamepad1 per abilitare l’input tramite joystick (predefinito: 1).
  • console1 per abilitare la console degli sviluppatori (predefinito: 0).
  • gyro_enabled1 per abilitare la mira tramite giroscopio (predefinito: 0).
  • gyro_sensitivity_x / gyro_sensitivity_y — sensibilità orizzontale e verticale del giroscopio in percentuale (predefinita: 100).
  • gyro_invert_x / gyro_invert_y1 per invertire il relativo asse del giroscopio.
  • gyro_space0 per gli assi locali del controller, 1 per lo yaw nello spazio del mondo oppure 2 per il blending dello yaw nello spazio del giocatore (predefinito: 0).
  • gyro_tighten1 per ridurre i movimenti minimi e limitare la deriva del sensore.
  • gyro_accel1 per applicare fino al doppio della sensibilità durante i movimenti rapidi.

L’input del giroscopio supporta la modalità portatile, i Pro Controller e i Joy-Con associati. Viene utilizzato solamente quando il gioco ha attiva la modalità mouse relativa, quindi non sposta il cursore nei menu.

Un buon punto di partenza per la configurazione è:

txt

gyro_enabled 1
gyro_sensitivity_x 200
gyro_sensitivity_y 150
gyro_space 2
gyro_tighten 1

Changelog

  • Aggiunto il supporto alla mira tramite giroscopio.
    • gyro_enabled1 per abilitare la mira tramite giroscopio (predefinito 0).
    • gyro_sensitivity_x / gyro_sensitivity_y — sensibilità orizzontale e verticale del giroscopio in percentuale (predefinita 100).
    • gyro_invert_x / gyro_invert_y1 per invertire il relativo asse del giroscopio.
    • gyro_space0 per gli assi locali del controller, 1 per lo yaw nello spazio del mondo oppure 2 per il blending dello yaw nello spazio del giocatore (predefinito 0).
    • gyro_tighten1 per attenuare i movimenti minimi e ridurre la deriva del sensore.
    • gyro_accel1 per applicare fino al doppio della sensibilità durante i movimenti rapidi.

Download: css_nx v1.0.1

Download: Source code css_nx v1.0.1

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: Nintendo Switch

Vedi altri prodotti Nintendo Switch

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

Ultimo aggiornamento 2026-09-04 / Link di affiliazione / Immagini da Amazon Product Advertising API

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.