Domanda

Sono totalmente nuovo a libdns. Provo a modificare la grafica di esempio sfondi 256_Color_BMP per visualizzare lo sfondo sul subscreen.

Ecco il mio codice. Hai idea di cosa manca per visualizzare hey_typbitmap sul subscreen? Sono già riuscito a visualizzare la nuova immagine sullo schermo in alto.

#include <nds.h>
#include <stdio.h>
#include "drunkenlogo.h"
#include "hey_typ.h"

int main(void)
{
    videoSetMode(MODE_5_2D);
    vramSetBankA(VRAM_A_MAIN_BG_0x06000000);

    videoSetModeSub(MODE_5_2D);
    vramSetBankC(VRAM_C_SUB_BG_0x06200000);

    int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0);
    dmaCopy(hey_typBitmap, bgGetGfxPtr(bg3), 256*256);
    dmaCopy(hey_typPal, BG_PALETTE, 256*2);

    int bg2 = bgInit(2, BgType_Bmp8, BgSize_B8_256x256, 0,0);
    dmaCopy(drunkenlogoBitmap, bgGetGfxPtr(bg2), 256*256);
    dmaCopy(drunkenlogoPal, BG_PALETTE, 256*2);

    while(1)swiWaitForVBlank();

    return 0;
}
È stato utile?

Soluzione

In Modalità 5 Il DS ha 3 livelli di fondo disponibili e chiama bgInit con 2 restituisce un riferimento a un livello diverso sullo stesso schermo. Se si desidera utilizzare un livello sul sub-screen, usa bgInitSub.

Ci sono anche 2 palette; uno sulla schermata principale e uno diverso sul sotto-schermo. La tavolozza sub-screen è a BG_PALETTE_SUB.

Speriamo che questo codice mostri l'immagine sulla seconda schermata (modifiche contrassegnate con /* ! */):

int main(void)
{
    videoSetMode(MODE_5_2D);
    vramSetBankA(VRAM_A_MAIN_BG_0x06000000);

    videoSetModeSub(MODE_5_2D);
    vramSetBankC(VRAM_C_SUB_BG_0x06200000);

    int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0);
    dmaCopy(hey_typBitmap, bgGetGfxPtr(bg3), 256*256);
    dmaCopy(hey_typPal, BG_PALETTE, 256*2);

    int bg3sub = bgInitSub(3, BgType_Bmp8, BgSize_B8_256x256, 0,0);  /* ! */
    dmaCopy(drunkenlogoBitmap, bgGetGfxPtr(bg3sub), 256*256);  /* ! */
    dmaCopy(drunkenlogoPal, BG_PALETTE_SUB, 256*2);  /* ! */

    while(1)swiWaitForVBlank();

    return 0;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top