void init() { initMemory(); //Init backgrounds // Main 3D init3DSettings(); // Main Map: mapEngine = new MapEngine(1, 4, 1); // Main Console: consoleInit(&main_console,3,BgType_ExRotation, BgSize_ER_256x256, 31, 0, true, false); bg3 = main_console.bgId; bgSetCenter(bg3, 254, 0); bgSetRotate(bg3, -8192); // Sub Console: consoleInit(&sub_console,3,BgType_ExRotation, BgSize_ER_256x256, 31, 1, false, false); bg3Sub = sub_console.bgId; bgSetCenter(bg3Sub, 254, 0); bgSetRotate(bg3Sub, -8192); // Sub Image: bg2Sub = bgInitSub(2, BgType_Bmp8, BgSize_B8_256x256, 4,0); dmaCopy(leftmenuBitmap, bgGetGfxPtr(bg2Sub), 256*192); dmaCopy(leftmenuPal, BG_PALETTE_SUB, leftmenuPalLen); // Init Sprites oamInit(&oamMain, SpriteMapping_1D_128, false); // Set the priorities bgSetPriority(0,1); bgSetPriority(1,2); bgSetPriority(2,3); bgSetPriority(3,0); bgSetPriority(bg3Sub, 2); bgSetPriority(bg2Sub, 3); //Init font font.gfx = (u16*)fontTiles; font.pal = (u16*)fontPal; font.numChars = 95; font.numColors = fontPalLen / 2; font.bpp = 8; font.asciiOffset = 32; font.convertSingleColor = false; consoleSetFont(&main_console, &font); consoleSetFont(&sub_console, &font); consoleSelect(&main_console); iprintf("\x1b[2J"); iprintf("Arkham Tower v0.01"); consoleSelect(&sub_console); iprintf("\x1b[2J"); }
void advRotating(void) { videoSetMode(MODE_5_2D); vramSetBankA(VRAM_A_MAIN_BG); int bg = bgInit(3, BgType_ExRotation, BgSize_ER_256x256, 0,1); dmaCopy(TextBackgroundsTiles, bgGetGfxPtr(bg), sizeof(TextBackgroundsTiles)); dmaCopy(TextBackgroundsPal, BG_PALETTE, sizeof(TextBackgroundsPal)); dmaCopy(Layer256x256Map, bgGetMapPtr(bg), Layer256x256MapLen); bgMosaicEnable(bg); int keys = 0; int angle = 0; int center_x = 0; int center_y = 0; while(!(keys & KEY_B)) { scanKeys(); keys = keysHeld(); if(keys & KEY_UP) center_y--; if(keys & KEY_DOWN) center_y++; if(keys & KEY_LEFT) center_x--; if(keys & KEY_RIGHT) center_x++; if(keys & KEY_L) angle-=40; if(keys & KEY_R) angle+=40; if(center_x > 256) center_x = 256; if(center_x < 0) center_x = 0; if(center_y > 192) center_y = 192; if(center_y < 0) center_y = 0; swiWaitForVBlank(); bgSetRotate(bg, angle); bgSetScroll(bg, center_x, center_y); bgSetCenter(bg, center_x, center_y); bgUpdate(); consoleClear(); iprintf("Press B to exit.n"); iprintf("Angle: %d \ncenter X: %d center Y: %d", angleToDegrees(angle), center_x, center_y); } }