#include #include "game.h" #include "hugedriver.h" #include "sdk/assets.h" #include "sdk/hardware.h" #include "sdk/joypad.h" #include "sdk/oam.h" #include "sdk/video.h" ASSET(bg_tiles, "bg/title.2bpp"); ASSET(bg_map, "bg/title.map"); void title(void) { // NOTE: Replace with lcdc_off() if necessary rLCDC &= ~LCDC_ON; // Copy title screen to VRAM memcpy((uint8_t *)_VRAM, &bg_tiles[0], bg_tiles_end - bg_tiles); uint8_t *vram_ptr = (uint8_t *)_SCRN0; const uint8_t *map_ptr = &bg_map[0]; for (uint8_t y = 0; y < SCRN_Y_B; ++y) { memcpy(vram_ptr, map_ptr, SCRN_X_B); vram_ptr += SCRN_VX_B; map_ptr += SCRN_X_B; } rLCDC |= LCDC_ON; while (1) { joypad_update(); if (joypad_state & PAD_START) { game_state = GAME_STATE_LEVEL; break; } // Wait for VBLANK. Clear IF since global interrupts are disabled. HALT(); rIF = 0; hUGE_dosound(); } audio_reset(); }