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; }
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 }