[Progetto] Custom firmware "fai da te" per 3ds...

Discussione in 'Off topic' iniziata da iostream, 2 Mar 2018.

  1. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.783
    Like ricevuti:
    1.564
    Buonasera, apro questo post in sezione off-topic per aver alcune informazioni. Come qualche settimana/settigiorno fa ho scritto in chat, ho intenzione di creare un cfw per 3ds solo come "passatempo". Sto iniziando a scrivere qualcosa, prendendo un po' spunto dai sorgenti di luma...
    A quanto ho capito, nella prima fase del boot si deve:
    • Disabilitare gli interrupt, "pulire" (mettere a 0) le flag e passare in modalità supervisore (in pratica il ring 0 dei processori x86)
    • Controllare i registri
    • Impostare il puntatore allo stack (sp, stack pointer)
    • Disabilitare cache ed mpu
    • Invalidare le cache e "drenare" (equivalente italiano del termine anglosassone utilizzato) il buffer di scrittura
    • Fornire l'accesso a questo loader a tutte le regioni di memoria (lettura-scrittura)
    • Reimpostare mpu e cache
    • Impostare il dtcm (un'interfaccia di memoria applicata ai dati, come dice la documentazione di arm)
    • Riabilitare cache, mpu e itcm (che sarebbe un tcm applicato alle istruzioni)
    • Pulire la sezione bss
    • Continuare nel main del 3DS...

    Quindi, ho scritto il codice che fa i passaggi scritti sopra e nel main ho messo un bel 'while(1);'. Ho creato un makefile studiandomi un po' quello di luma e dei vari "cugini" e ho compilato il "tutto". Il 3ds s'accende e dà una fantastica schermata nera (come mi aspettavo), ora rimane solo da aggiungere delle funzionalità. Come già dissi in chat, questo cfw "a tempo perso" non ha lo scopo di essere pieno di funzionalità, ma ha lo scopo di funzionare e fornire comunque le patch che sono strettamente necessarie (senza alcuna configurazione strana).
    Avete alcuni consigli da darmi riguardo il lato algoritmo/codice? Come vi pare questo progetto?

    Eventuali aggiornamenti li scriverò sia nelle risposte che in questo posto. Alla prossima! ~iostream​
     
    #1
  2. erik007

    erik007 Livello 9

    Iscritto:
    16 Set 2015
    Messaggi:
    230
    Like ricevuti:
    32
    fai in c++?
     
    #2
  3. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.783
    Like ricevuti:
    1.564
    C e assembly
     
    #3
  4. Francesco90

    Francesco90 Livello 2

    Iscritto:
    9 Feb 2018
    Messaggi:
    24
    Like ricevuti:
    2
    Potresti aggiungere una funzione che permette di giocare online senza aggiornare
     
    #4
  5. iostream

    iostream Phoenix Wright

    Iscritto:
    13 Ago 2016
    Messaggi:
    4.783
    Like ricevuti:
    1.564
    Chiedi miracoli, e comunque il CFW non l'ho mai fatto diventare un vero CFW (arrivai al punto che c'era un specie di shell di base, ma smisi di svilupparlo)…
     
    #5
Sto caricando...

Condividi questa Pagina