[Scena 3DS] Rilasciato Custom Firmware Luma3DS v8.0

La sviluppatrice italiana Aurorawright rilascia un nuovo importante aggiornamento per il Custom Firmware Luma3DS, questa interessantissima versione introduce Rosalina, un nuovo e innovativo modulo di sistema personalizzato.

Per installare questa versione dovrete necessariamente aggiornare boot9strap alla versione 1.2, il nuovo modulo Rosalina introduce l’esecuzione dell’Homebrew Launcher dal Custom Firmware Luma3DS.

Nota: Per impostazione predefinita, il titolo utilizzato per l’avvio del file boot.3dsx è hblauncher_loader, ma questo può essere modificato in qualsiasi momento (da Opzioni varie> attivare il titolo hb per l’applicazione corrente), è sufficiente lanciare qualsiasi titolo, utilizzare questa opzione, chiudere il titolo; la prossima volta che si avvia quel titolo, verrà eseguito boot.3dsx.

Installazione

  • Ad ogni nuova installazione o aggiornamento copiare sempre il file boot.firm nella root della scheda SD. Non c’è bisogno di eseguire nessun’altra operazione se si fa uso dell’exploit boot9strap.

Per avviare la NAND 3.x-4.x, è necessario caricare il FIRM dalla scheda SD. Scaricare questo file e rinominarlo in firmware.bin, allora quest’ altro file e rinominarlo in cetk, quindi copiare entrambi nella cartella luma.

Changelog

  • Un menu che può essere aperto in qualsiasi momento (combo: ++ , anche se è possibile cambiarlo in fase di runtime), con:
    • Un sottomenu di un elenco di processi (utilizzato per selezionare il processo da collegare quando viene abilitato il debugger).
    • Un sottomenu di patch processi: patch FS e SM.
    • Un sottomenu N3DS Clock + L2 (nascosto su O3DS).
    • Un’azione di screenshot. Questo è lento ma funziona.
    • Altre varie opzioni, vedi sotto.
    • Un display della percentuale residua della batteria in basso a destra dello schermo e in Luma3DS in basso a sinistra.
  • Reindirizzamento
    • Implementazione grazie a @Stary2001, basata sul lavoro di ShinyQuagsire.
    • Consente di controllare il tuo 3DS utilizzando il PC con ad esempio, un controller esterno (controller Xbox360, ecc…).
    • Dovrebbe lavorare con ogni gioco e con un minimo ritardo.
    • Il reindirizzamento C-stick/ZL/ZR è solo per New 3DS e forse solo con i nuovi giochi.
    • Utilizzare questo client (compatibile con xinput su Windows, evdev su Linux, dovrebbe essere compatibile con OSX) oppure quest’altra versione.
    • Se si attiva questa funzione nel menu Home, si impedirà la disconnessione delle applicazioni da internet mentre sono in esecuzione. Ciò ha effetto fino all’avvio successivo.
  • Caricamento 3DSX
    • Grazie a @fincs
    • I file 3DSX ora possono essere caricati senza problemi e funzionano proprio come i titoli installati (il che significa che è possibile utilizzare il menu Home e le applet durante l’esecuzione di un’applicazione 3DSX, utilizza lo stub GDB (vedi sotto) ecc…)!
    • Non c’è più alcun bisogno di utilizzare i payloads *hax!
    • Per impostazione predefinita, il titolo utilizzato per avviare boot.3dsx è hblauncher_loader, ma può essere modificato in qualsiasi momento (da opzioni varie> passare il titolo hb all’applicazione corrente): basta avviare qualsiasi titolo, utilizzare tale opzione e chiudere il titolo; La prossima volta che si andrà ad eseguire quel titolo, verrà eseguito il file boot.3dsx.
    • *I payload hax non funzionano più su questa versione. Dovrete utilizzare la versione più recente del menu Homebrew >= 2.0, che si trova qui (e in un pacchetto iniziale di homebrew in seguito)
  • Migliorata l’emulazione della lingua
    • L’emulazione della lingua (e della regione) dovrebbe funzionare per tutti i giochi ora.
    • Ora è possibile specificare un paese (codice a 2 lettere) e un ID di stato (numero intero esadecimale a 2 cifre), ad esempio: EUR FR FR 01
  • Uno stub completo per GDB
    • Codice di rete e scheletro grazie a @Stary2001.
    • Può eseguire il debug di 3 processi contemporaneamente (il processo da collegare deve essere selezionato nel menu degli elenchi del processo).
      • Utilizzare il menu dei processi quando il debugger è abilitato per selezionare i processi da collegare.
    • Usare -lctrud e -lcitro3dd invece di -lctru e -lcitro3d, -Og invece di -O2, aggiungere -fomit-frame-pointer per creare versioni di debug delle proprie applicazioni.
      • Compatibile con GDB e IDA PRO:
      • Lo stub GDB richiede una patch per funzionare. Questa patch sarà infine integrata in devkitARM.
      • Gli stub GDB funzionano anche con IDA (utilizzare il supporto a singolo passaggio, nel prompt delle opzioni di debugger, deve essere disattivato).
    • Punti di interruzione software, 2 punti di fissaggio hardware (a livello globale), tutte le funzionalità di base e molti altri, come il sistema di cattura syscall, info os, ecc.
    • Può accedere alla mappatura fortemente ordinata 80000000..B0000000 (vedi sotto) e alla memoria privilegiata
    • Se si attiva questa funzione nel menu Home, si impedirà la disconnessione delle applicazioni da internet mentre sono in esecuzione. Ciò ha effetto fino all’avvio successivo.

Dettagli tecnici per sviluppatori

  • Una “estensione del kernel” che estende le caratteristiche di Kernel11 (͡ ° ͜ʖ ͡ °):
    • Nuove funzionalità per SVC esistenti, ad esempio:
      • Nuovi tipi di svcGetProcessInfo: 0x10000 per ottenere il nome di un processo, 0x10001 per ottenere l’ID del titolo di un processo, 0x10002 a 0x10007 per gli attributi di sezione, 0x10008 per TTBR1, ecc.
      • Nuovi tipi di svcGetSystemInfo: 0x10000 per info CFW, 0x10001 per informazioni relative a N3DS, 0x10002 per TTBCR e TTBR0 per nucleo, ecc.
      • Nuovi tipi di svcGetThreadInfo: 0x10000 per l’archiviazione locale di thread
      • Molte altre modifiche non elencate qui
    • Nuovi SVC
      • Vedere csvc.h (͡ ° ͜ʖ ͡ °)
      • SVC indiretto: svc 0xFE
    • Funzioni di debug
      • I controlli delle autorizzazioni SVC non esistono più
      • Tutto si comporta come se le bandierine del kernel “Allow debug” siano state sempre impostate, e svcKernelSetState, oltre che i gestori di debug ufficiali, ritengono sempre che l’unità sia uno sviluppo. Questo è necessario per l’elemento sottostante
      • Non è necessario eseguire svcKernelSetState (6, 1, 1LL) per i gestori di eccezioni specificati dall’utente.
      • Numerose correzioni dei gestori eccezionali di Luma3DS. Inoltre, ora vengono utilizzati solo in crash privilegiati o quando non esistono alternative preferite, vale a dire: debugging basato su KDebug o gestori di eccezioni definiti dall’utente.
    • Nuova mappatura di memoria: PA 00000000..30000000 -> VA 80000000..B0000000 [Priv: RWX, Utente: RWX] [Condiviso, fortemente ordinato] (accessibile dallo stub GDB)
    • A causa di problemi di memoria, ErrDisp non viene lanciato; Err:f è stato reimplementato.

Problemi minori: Il menu potrebbe bloccarsi di tanto in tanto in alcuni giochi (i bug verranno comunque risolti prima della prossima release), le versioni <9.0 non sono state testate.


  • Luma ora è un vero e proprio FIRM con segmenti separati arm11, arm9 e moduli.
  • Passa a un whitelist per il caricamento di FIRM.
  • Ora è possibile avviare anche i più recenti flashcart del DS (quelli che appaiono nel menu principale di DS) e i primi flash del DSi direttamente dal menu Home.
  • Luma ora lavora con NAND utilizzando NCSD/MBR personalizzati.
  • “Abilita gestori di eccezioni” è stato rimosso, poiché è sempre in corso con Rosalina che sceglie il metodo migliore a seconda del contesto.
  • Luma ora può essere eseguito da solo come FIRM0/1 (anche se nota che questo non è consigliato o supportato affatto e consigliamo vivamente di utilizzare boot9strap).

Per qualsiasi altra informazione potrete fare riferimento al wiki presente all’interno della repository di AuroraWright.

Download: Custom Firmware Luma3DS v8.0

Download: Source code Custom Firmware Luma3DS v8.0

(Visited 389 times, 1 visits today)

3 commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *