Aiuto - Cerca - Utenti - Calendario
Versione completa: Alcune domande sul Bios del DS !
.: GBArl.it :. News sulle Console Nintendo - Emulazione - Flash Cards - Trainer > Discussioni Console Nintendo > Discussioni Nintendo DS > Hardware e Utilità DS
Avanaboy
Salve , ho da qualche giorno un grosso dubbio che riguarda il bios ( firmware ) del nostro caro nintendo DS ...

Il bios del DS dovrebbe essere il sistema operativo della console , giusto ? Quindi ogni gioco/homebrew/programma/.nds che sia , deve essere processato dal Bios prima di poter essere eseguito ?
In pratica vorrei sapere se il bios sul DS fa la stessa funziona di "windows" o "linux" sui normali PC ...
Leon89
CITAZIONE (Avanaboy @ Monday 24 January 2011 - 16:12) *
Salve , ho da qualche giorno un grosso dubbio che riguarda il bios ( firmware ) del nostro caro nintendo DS ...

Il bios del DS dovrebbe essere il sistema operativo della console , giusto ? Quindi ogni gioco/homebrew/programma/.nds che sia , deve essere processato dal Bios prima di poter essere eseguito ?
In pratica vorrei sapere se il bios sul DS fa la stessa funziona di "windows" o "linux" sui normali PC ...


Il bios? Non so come funzioni esattamente, ma credo che nel DS (sia i vecchi Ciccio/Lite che i nuovi DSi/XL) a tutto ciò che dici dovrebbe badare il firmware. Quindi diciamo che fa a metà tra Sistema Operativo (Win/Linux) e il BIOS del PC.
Avanaboy
Forse mi sono espresso male ragazzi , per BIOS del DS intendevo proprio il fimware stesso wink.gif

Mi piacerebbe poter capire , se senza appunto il firmware del DS fosse possibile eseguire del codice ? ( magari programmando direttamente in ASM il processore ?? )
Alessandro Big
Stai parlando di interrupts?
In questo caso posso dirti che esistono alcuni software-interrupts riguardanti varie funzioni, ne trovi una lista qui e qui (Rispettivamente per l'ARM9 e il 7).
Non sono esperto nella programmazione in basso livello per nds, ma suppongo che tutti gli interrupts possano essere chiamati tramite l'istruzione swi.
Avanaboy
Grazie Alessandro , ci stiamo avvicinando a quello ke volevo sapere wink.gif smile.gif
Alex , dimmi , programmando i due processori in assembler , vi è ancora la necessità del firmware ? o quest'ultimo puo' venire "scavalcato" visto ke si tratta di programmazione a bassissimo livello ?

EDIT : PS : ma quelli interrupt sono gestiti dal firmware ?
Alessandro Big
Prima di rispondere, ti ricordo che non sono esperto in questo campo, quindi non fidarti ciecamente.
Comunque, a mio parere, potresti anche riuscire a non utilizzare alcun interrupt in un homebrew, ma dovresti conoscere il funzionamento del Ds, ovvero conoscere tutti gli indirizzi di memoria etc., ma che io sappia non è mai stata distribuita una mappa della memoria del Ds: è proprio per questo che i programmatori utilizzano gli interrupt, gli interrupt "svolgono" il lavoro al posto del programmatore.
Comunque, ammesso che tu riesca a "scavalcare" il firmware durante l'esecuzione dell'homebrew, tieni conto che tutte le flash-card ne fanno uso; non so cosa tu abbia in mente di realizzare, ma qualsiasi cosa tu faccia necessita del BIOS se non altro per essere avviato (mi sembra ovvio).
samu313
CITAZIONE (Avanaboy @ Monday 24 January 2011 - 16:26) *
Grazie Alessandro , ci stiamo avvicinando a quello ke volevo sapere wink.gif smile.gif
Alex , dimmi , programmando i due processori in assembler , vi è ancora la necessità del firmware ? o quest'ultimo puo' venire "scavalcato" visto ke si tratta di programmazione a bassissimo livello ?

EDIT : PS : ma quelli interrupt sono gestiti dal firmware ?

Vuoi installare linux su un DS, sostituendo il precedente firmware? mellow.gif
Avanaboy
CITAZIONE
Prima di rispondere, ti ricordo che non sono esperto in questo campo, quindi non fidarti ciecamente.
Comunque, a mio parere, potresti anche riuscire a non utilizzare alcun interrupt in un homebrew, ma dovresti conoscere il funzionamento del Ds, ovvero conoscere tutti gli indirizzi di memoria etc., ma che io sappia non è mai stata distribuita una mappa della memoria del Ds: è proprio per questo che i programmatori utilizzano gli interrupt, gli interrupt "svolgono" il lavoro al posto del programmatore.
Comunque, ammesso che tu riesca a "scavalcare" il firmware durante l'esecuzione dell'homebrew, tieni conto che tutte le flash-card ne fanno uso; non so cosa tu abbia in mente di realizzare, ma qualsiasi cosa tu faccia necessita del BIOS se non altro per essere avviato (mi sembra ovvio).


Esatto ! era quello ke volevo capire ... per far si che un file .nds sia bootato , ho bisogno per forza del firmware (bios) giusto ? Perche solo il firmware sa come interpretare il file .nds e sa cosa ne deve fare giusto ?
Quindi in pratica le R4 e le altre flashcard vengono bootate dal firmware come se fossero delle vere cartuccie ? e poi passano sempre al firmware della console la ROM da bootare giusto ? in pratica non scavalcano assolutamente il fiirmware !

Sto iniziando a capire ? biggrin.gif

PS: quindi in generale non si programmare l'hardware del DS , ma bensi' il suo Firmware !!! Correggimi se sbaglio wink.gif


CITAZIONE
Vuoi installare linux su un DS, sostituendo il precedente firmware?

No , voglio solo capire nel dettaglio come funzionano le cose wink.gif
E se sto capendo bene , installando un altro firmware sul DS , avrei un DS che ha lo stesso hardware , ma perde completamente la capacità di BOOTARE FILE .NDS , giusto ? ( VI PREGO CONFERMATEMI QUESTOOO !! smile.gif )
Alessandro Big
Ovviamente mantiene lo stesso hardware, ma dovresti trovare (o scrivere) un firmware compatibile con quell'hardware; senò il ds non funzionerebbe!
Per quanto riguarda il booting degli eseguibili, dovrebbe funzionare così:
-tramite il bios copio l'eseguibile in una determinata zona di RAM,
-"salto" su quella zona.
Le flashcard dovrebbero utilizzare il bios solamente per copiare l'eseguibile sulla RAM (cosa non da poco).

Ovvio che, se il nuovo-firmware che vai ad installare è "retrocompatibile" con l'originale, allora funzionerebbe tutto a meraviglia.
Ma qui torniamo all'inizio: se vuoi scrivere un firmware del genere dovresti provvedere tu stesso alla programmazione di tutti gli interrupt.
Avanaboy
Perfetto capisco smile.gif

Pero' ora mi sorge spontanea una domanda : se solo il firmware puo' bootare una rom , allora perchè nel noto emulatore del GBA visualboy Advance , non c'è bisogno di usare il bios del gba ? ( cosa ke invece è richiesta in NO$GBA )
Accro
CITAZIONE (Avanaboy @ Monday 24 January 2011 - 17:31) *
Perfetto capisco smile.gif

Pero' ora mi sorge spontanea una domanda : se solo il firmware puo' bootare una rom , allora perchè nel noto emulatore del GBA visualboy Advance , non c'è bisogno di usare il bios del gba ? ( cosa ke invece è richiesta in NO$GBA )

boh,non me ne intendo assolutamente,ma direi perchè visualboy advance è stato programmato in maniera tale da non usare/bypassare il bios del gba...
Alessandro Big
CITAZIONE (Avanaboy @ Monday 24 January 2011 - 17:31) *
Perfetto capisco smile.gif

Pero' ora mi sorge spontanea una domanda : se solo il firmware puo' bootare una rom , allora perchè nel noto emulatore del GBA visualboy Advance , non c'è bisogno di usare il bios del gba ? ( cosa ke invece è richiesta in NO$GBA )


E' ovvio che ognuno il suo emulatore lo programma come crede; probabilmente chi ha programmato visualboy Advance si è preso la briga di scrivere delle funzioni che emulino il bios, mentre quelli di No$gba avranno preferito farne a meno. Comunque, come ho detto prima, (che io sappia) l'unico compito del bios è "spostare" la rom da una posizione ad un'altra, sta poi direttamente al processore eseguire la rom. Suppongo che per gli emulatori non ci sia differenza per quanto riguarda la posizione in memoria della rom, loro eseguono e basta (considera la potenza di un PC paragonato al Ds).
Questa è la versione 'lo-fi' del forum. Per visualizzare la versione completa con molte più informazioni, formattazione ed immagini, per favore clicca qui.
Invision Power Board © 2001-2019 Invision Power Services, Inc.