IPB

Benvenuto Visitatore ( Log In | Registrati )

Seguici su:    
 
Reply to this topicStart new topic
> Passare in modalità GBA
Alessandro Big
messaggio Friday 14 August 2009 - 09:02
Messaggio #1

Boss GBA/NDS
Gruppo icone

Gruppo: Membri
Messaggi: 600
Iscritto il: Thu 20 December 2007 - 14:21
Da: Bari
Utente Nr.: 23.768
Feedback: 0 (0%)




Buongiorno a tutti, ho da poco reinstallato il devKitPro su Ubuntu e per testarlo ho deciso di scrivere un homebrew "semplice-semplice".

Ho deciso di scrivere un codice per passare alla modalità GBA, permettendo l'inserimento di cornici, selezione dello schermo etc...

Il problema si è subito presentato, ho tentato di usare la funzione "swiSwitchToGBAMode(void)" inclusa nel file "bios.h" ma il compilatore mi "dice" che la funzione non esiste.
Allora, incuriosito dal problema, ho tentato di fare lo stesso, ma in assembler:
CODICE
ARM9:
int main (void){
...
    asm volatile(
    ".arm\n"
    "mov    r2, #0x40\n"
    "swi 0x1F0000\n"
)
...
return ...

Non so che dire...
Sbaglio sicuramente qualcosa, ma cosa?


--------------------
 Go to the top of the page
 
+Quote Post
Aurelio
messaggio Friday 14 August 2009 - 09:10
Messaggio #2

DsOs Developer
Gruppo icone

Gruppo: Tecnico
Messaggi: 3.798
Iscritto il: Tue 7 June 2005 - 09:23
Da: Vico Equense(NA) - Milano
Utente Nr.: 5.122
Feedback: 6 (100%)

Codice Amico 3DS:
2664-2091-2256



CITAZIONE (Alessandro Big @ Friday 14 August 2009 - 10:02) *
Buongiorno a tutti, ho da poco reinstallato il devKitPro su Ubuntu e per testarlo ho deciso di scrivere un homebrew "semplice-semplice".

Ho deciso di scrivere un codice per passare alla modalità GBA, permettendo l'inserimento di cornici, selezione dello schermo etc...

Il problema si è subito presentato, ho tentato di usare la funzione "swiSwitchToGBAMode(void)" inclusa nel file "bios.h" ma il compilatore mi "dice" che la funzione non esiste.
Allora, incuriosito dal problema, ho tentato di fare lo stesso, ma in assembler:
CODICE
ARM9:
int main (void){
...
    asm volatile(
    ".arm\n"
    "mov    r2, #0x40\n"
    "swi 0x1F0000\n"
)
...#
# Mip-mapping
# Trilinear filtering
return ...

Non so che dire...
Sbaglio sicuramente qualcosa, ma cosa?

Semplice, devi eseguire la funziona dall'arm7 tongue.gif
 Go to the top of the page
 
+Quote Post
Alessandro Big
messaggio Friday 14 August 2009 - 09:16
Messaggio #3

Boss GBA/NDS
Gruppo icone

Gruppo: Membri
Messaggi: 600
Iscritto il: Thu 20 December 2007 - 14:21
Da: Bari
Utente Nr.: 23.768
Feedback: 0 (0%)




Ho scritto il codice partendo dal modello "combinato" e nei vari tentativi ho anche provato ad eseguire la funzione swiSwitchToGBAMode all'arm7 ma risulta sempre inesistente...
Leggendo il codice di bios.h sembra che quelle funzioni siano "visibili" solo al codice ARM7:
CODICE
#ifdef ARM7
...
#endif

Il problema è che neanche quello viene rilevato.

Comunque tra poco provo a scrivere il codice ASM nella sezione dell'ARM7.


--------------------
 Go to the top of the page
 
+Quote Post
Aurelio
messaggio Saturday 15 August 2009 - 10:03
Messaggio #4

DsOs Developer
Gruppo icone

Gruppo: Tecnico
Messaggi: 3.798
Iscritto il: Tue 7 June 2005 - 09:23
Da: Vico Equense(NA) - Milano
Utente Nr.: 5.122
Feedback: 6 (100%)

Codice Amico 3DS:
2664-2091-2256



prova con
CODICE
swiSetHaltCR(0x40);

eseguito da ARM7
 Go to the top of the page
 
+Quote Post
Alessandro Big
messaggio Saturday 15 August 2009 - 10:25
Messaggio #5

Boss GBA/NDS
Gruppo icone

Gruppo: Membri
Messaggi: 600
Iscritto il: Thu 20 December 2007 - 14:21
Da: Bari
Utente Nr.: 23.768
Feedback: 0 (0%)




Appena posso provo.
Comunque il codice in assembly funziona.

Vorrei sapere se c'è un metodo per "bloccare" il codice ARM7 e riprenderlo quando dico io.
A me servirebbe caricare una cornice e poi "switchare" in modalità GBA...
È possibile?

p.s.: Cosa centrano le mappe multus-in-parvo e il Trilinear filtering?


--------------------
 Go to the top of the page
 
+Quote Post
Aurelio
messaggio Saturday 15 August 2009 - 10:26
Messaggio #6

DsOs Developer
Gruppo icone

Gruppo: Tecnico
Messaggi: 3.798
Iscritto il: Tue 7 June 2005 - 09:23
Da: Vico Equense(NA) - Milano
Utente Nr.: 5.122
Feedback: 6 (100%)

Codice Amico 3DS:
2664-2091-2256



CITAZIONE (Alessandro Big @ Saturday 15 August 2009 - 11:25) *
Appena posso provo.
Comunque il codice in assembly funziona.

Vorrei sapere se c'è un metodo per "bloccare" il codice ARM7 e riprenderlo quando dico io.
A me servirebbe caricare una cornice e poi "switchare" in modalità GBA...
È possibile?

p.s.: Cosa centrano le mappe multus-in-parvo e il Trilinear filtering?

Semplicemente devi dire all'ARM7 di attivare la modalità GBA tramite un FIFO smile.gif

PS:Non lo so, me le ha aggiunte IPB(bug?) pinch.gif
 Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


RSS Versione Lo-Fi Oggi è il: Tue 4 June 2024- 01:32

.: GBArl.it :. Copyright © 2003-2020, All Rights Reserved.
Loghi, documenti e immagini contenuti in questo Sito appartengono ai rispettivi proprietari,
e sono resi pubblici sotto licenza Creative Commons

Creative Commons License
.::.