Pubblicato un nuovo aggiornamento per nx.js, la piattaforma utilizza JavaScript e TypeScript per lo sviluppo di applicazioni homebrew della console Nintendo Switch.
Questo strumento è basato sul motore QuickJS e consente di eseguire script direttamente sulla console Nintendo Switch.
Molte delle API web comuni, come fetch
, setTimeout
, Audio
e Canvas
, sono supportate su questa piattaforma, il che rende più agevole il lavoro per gli sviluppatori web che desiderano creare software per la Switch.
Inoltre, nx.js offre API speciali specifiche per la console Switch, fornendo un ambiente di sviluppo completo per la creazione di programmi homebrew. Gli sviluppatori possono trovare ispirazione e esempi su GitHub per iniziare rapidamente con il loro progetto.
Una caratteristica interessante di nx.js è la possibilità di creare applicazioni più complesse utilizzando npm (Node Package Manager) e quindi impacchettarle come file NRO.
Questo processo coinvolge l’utilizzo di esbuild per raggruppare il codice JavaScript, consentendo anche l’uso di TypeScript per lo sviluppo. Inoltre, i file nella directory “romfs” vengono compressi nell’NRO, semplificando la distribuzione delle applicazioni.
Caratteristiche
- Sviluppo in JavaScript: Scrivi applicazioni homebrew per Nintendo Switch utilizzando JavaScript, un linguaggio di programmazione popolare e ampiamente supportato.
- API di alto livello: Beneficia di un’API JavaScript di alto livello progettata specificamente per la piattaforma Nintendo Switch, offrendo facile accesso a funzionalità e caratteristiche specifiche della console.
- Gestione dell’Input: Cattura e elabora l’input dell’utente con facilità, inclusi pulsanti, touchscreen e controlli di movimento, per creare esperienze di gioco coinvolgenti.
- Grafica e UI: Crea interfacce utente visivamente accattivanti e interattive utilizzando l’API Canvas web.
- Supporto audio: Integra la riproduzione audio e gli effetti sonori nelle tue applicazioni utilizzando l’API Audio web.
- WebAssembly: Supporto per l’esecuzione di codice compilato in WebAssembly (WASM).
Per iniziare, seguire questi passaggi
- Configurare un firmware personalizzato sulla console Switch per consentirle di eseguire applicazioni homebrew (istruzioni).
- Scaricare il file
nxjs.nro
. - Creare un file chiamato
nxjs.js
con il seguente contenuto:console.log('Hello Switch, from JavaScript!');
- Copiare entrambi i file nella directory
/switch
sulla scheda SD. - Avviare l’applicazione.
Consultare la documentazione dell’API per ulteriori dettagli e dare un’occhiata alla directory delle app per trovare altri esempi.
Creazione di un’applicazione
- Per creare un’applicazione, eseguire il seguente comando per avviare la creazione di un’applicazione nx.js:
npm create nxjs-app@latest
Potrete scegliere uno degli esempi di applicazioni come punto di partenza. Seguendo le istruzioni verrà creata successivamente una nuova directory con il nome del progetto inserito.
I seguenti script nel file package.json
sono configurati:
build
: Raggruppa il codice dell’applicazione in un singolo file JavaScript utilizzando esbuild.nro
: Incapsula l’applicazione raggruppata (+ eventuali altri file nella directory romfs) in un file.nro
autocontenuto.
Changelog v0.0.43
@nx.js/nro@0.0.43
Modifiche alle patch
- Dipendenze aggiornate [
0dffe29ad101d6699af5353f1e4dfaeb85bf8fec
]:- @nx.js/patch-nacp@0.0.3
@nx.js/nsp@0.0.43
Modifiche alle patch
- Dipendenze aggiornate [
0dffe29ad101d6699af5353f1e4dfaeb85bf8fec
]:- @nx.js/patch-nacp@0.0.3
@nx.js/patch-nacp@0.0.3
Modifiche alle patch
- Publish (
0dffe29ad101d6699af5353f1e4dfaeb85bf8fec
)
Changelog v0.0.42
Modifiche alle patch
- Corretta la dimensione del buffer sorgente riportata nel messaggio di errore
fs.writeFileSync()
(eee23840e04778aa4db64e5942ae657cb9e62c86
). - Miglioramenti a
localStorage
basati sui test della piattaforma web (36ed28f54c8a404b143edc6d5668590ee3942db
). - Aggiunto
Switch.Profile.current
eSwitch.Profile.select()
(sostituisceSwitch.currentProfile()
eSwitch.selectProfile()
) (4018d0446bbc3f7714addca98007ff973c01e486
). - Utilizza il carattere di sostituzione corretto per i surrogati solitari in
TextEncoder#encode()
(1cbfc49ac02f8834f5c479964f9272b27931fe53
). - Convertire la
console
in una classeConsole
(33eb3b0b7c99be7136b0d314970d61c50aab7069
). - Definito
inspect.keys
perSwitch.Application
(cba5ff3d9a6fa5e5ee306ea7fb372eb9cd1a612f
). - Aggiunti i simboli
keys
,values
eentries
perSwitch.inspect
(84f2c090162eac084b0c489b4cce750c4bb515cf
). - Legati i metodi della
console
aquesto
(b672db9607446e6651966bb3df4225942cb6540b
). - Aggiunta la classe
Switch.SaveData
(sostituisceSwitch.FsDev
) (#113). - Consenti a
console.print()
di essere patchato per monkey (4648806875843dc7a72bd7171c62782d9ad8f3cf
). - Sostituito
Switch.profiles
conSwitch.Profile
iterable (d60ae8c3f8167af492dad96991ae5cb42b7342e8
). - Implementata la funzione
TextEncoder#encodeInto()
(3f2e22d8291d094adb23040e89d479ad925824bc
). - Implementata la classe
CustomEvent
(1b9a8d94a7b82164cfe44bd3a3f39667bdac99db
).
Changelog v0.0.41
Modifiche alle patch
- Corretta l’impostazione di valori non stringa su
localStorage
(d4d0ccf2144d736114aa30731cf9351ce8382c54
). - Esporta la classe
Switch.FsDev
(ef2801cf05ba16fff2dc007fd206e36abe8649db
). - Aggiunto
Switch.appletType()
(e74f83a4df004af0e6dda6915cf04b49c80d75a9
) - Rendere opzionale il parametro
name
diApplication#mountSaveData()
(e87cae9b77874afaadd1bf82db4a41989b2adf33
). - Aggiunto
Switch.operationMode()
(696580cfe1f660768fd2b45a49fd3c3af8036632
). - Aggiunto
FsDev#url
, rimossoFsDev#name
(8d00088d6b1c39dc1b909837fa45e6a0ea8e6f8a
). - Aggiunto
Application#createCacheData()
eApplication#mountCacheData()
(eae68c1715d7e87b58286f3796e2e672dd38a4d6
).
Download: nx.js v0.0.43
Download: Source code nx.js v0.0.43
Fonte: github.com