Пример #1
0
void videoInit()
{
	videoSetModeSub(MODE_0_2D);
	oamInit(&oamSub, SpriteMapping_Bmp_1D_128, false);

	int bgId = bgInitSub(3, BgType_Text8bpp, BgSize_T_256x256, 0, 1);
	bgSetPriority(bgId, 3);
	dmaCopy(background.gfxData, bgGetGfxPtr(bgId), MemChunk_GetSize(background.gfxData));
	dmaCopy(background.mapData, bgGetMapPtr(bgId), MemChunk_GetSize(background.mapData));
	dmaCopy(background.palData, BG_PALETTE_SUB,    MemChunk_GetSize(background.palData));

	videoSetMode(MODE_3_2D);

	int bgBmp = bgInit(3, BgType_Bmp16, BgSize_B16_256x256, 2, 0);
	bmpBuf = bgGetGfxPtr(bgBmp);
	clearBitmap();

	int bgTop = bgInit(2, BgType_Text8bpp, BgSize_T_256x256, 0, 1);
	bgSetPriority(bgTop, 3);
	dmaCopy(topscr.gfxData, bgGetGfxPtr(bgTop), MemChunk_GetSize(topscr.gfxData));
	dmaCopy(topscr.mapData, bgGetMapPtr(bgTop), MemChunk_GetSize(topscr.mapData));
	dmaCopy(topscr.palData, BG_PALETTE,         MemChunk_GetSize(topscr.palData));

	u16* gfx = SPRITE_GFX_SUB;
	for (int i = 0; i < 6; i ++)
	{
		int xPos = 16 + (i % 3) * (64+16);
		int yPos = 48 + (i / 3) * (64+8);
		oamSet(&oamSub, i, xPos, yPos, 1, 15, SpriteSize_64x64, SpriteColorFormat_Bmp, gfx, -1, 0, false, false, false, false);
		gfx += 64*64;
	}
	{
		dmaCopy(selection.gfxData, gfx, MemChunk_GetSize(selection.gfxData));
		oamSet(&oamSub, 6, 0, 0, 0, 15, SpriteSize_16x16, SpriteColorFormat_Bmp, gfx, -1, 0, false, false, false, false);
		gfx += 16*16;
	}
	for (int i = 0; i < MAX_RUNNING_APP_COUNT; i ++)
	{
		oamSet(&oamSub, 7+i, 64+(i*(16+8)), 16, 1, 15, SpriteSize_16x16, SpriteColorFormat_Bmp, gfx, -1, 0, false, false, false, false);
		oamSub_mem[7+i].isHidden = true;
		gfx += 16*16;
	}

	g_appListChanged = true;

	bump.init(BG_PALETTE_SUB);
	bump.SelectBump(page);
	updCursor();
	loadPageIcons();
	updAppList();
	forceTopScrRefresh = true;
}
Пример #2
0
void createSegment(uint8_t value) {
    uint8_t mask = segments[value];
    clearBitmap(bitmap, BLACK);

    palette = grayPalette;
    if (mask & 0b00000001) {
       palette = colorPalette;
    }
    bitBltIdx(&adRedBlack, bitmap, 3, 0);      // a

    palette = grayPalette;
    if (mask & 0b00000010) {
       palette = colorPalette;
    }
    bitBltIdxVM(&bcefRedBlack, bitmap, 32, 3);   // b

    palette = grayPalette;
    if (mask & 0b00000100) {
       palette = colorPalette;
    }
    bitBltIdxHVM(&bcefRedBlack, bitmap, 32, 32); // c

    palette = grayPalette;
    if (mask & 0b00001000) {
       palette = colorPalette;
    }
    bitBltIdxHM(&adRedBlack, bitmap, 3, 56);    // d

    palette = grayPalette;
    if (mask & 0b00010000) {
       palette = colorPalette;
    }
    bitBltIdxHM(&bcefRedBlack, bitmap, 0, 32);  // e

    palette = grayPalette;
    if (mask & 0b00100000) {
       palette = colorPalette;
    }
    bitBltIdx(&bcefRedBlack, bitmap, 0, 3);  // f

    palette = grayPalette;
    if (mask & 0b01000000) {
       palette = colorPalette;
    }
    bitBltIdx(&gRedBlack, bitmap, 5, 28);      // g
}