lol its in c
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
954 B

  1. #include <string.h>
  2. #include "game.h"
  3. #include "sdk/assets.h"
  4. #include "sdk/hardware.h"
  5. #include "sdk/joypad.h"
  6. #include "sdk/oam.h"
  7. #include "sdk/video.h"
  8. ASSET(bg_tiles, "bg/title.2bpp");
  9. ASSET(bg_map, "bg/title.map");
  10. void title(void) {
  11. // NOTE: Replace with lcdc_off() if necessary
  12. rLCDC &= ~LCDC_ON;
  13. // Copy title screen to VRAM
  14. memcpy((uint8_t *)_VRAM, &bg_tiles[0], bg_tiles_end - bg_tiles);
  15. uint8_t *vram_ptr = (uint8_t *)_SCRN0;
  16. const uint8_t *map_ptr = &bg_map[0];
  17. for (uint8_t y = 0; y < SCRN_Y_B; ++y) {
  18. memcpy(vram_ptr, map_ptr, SCRN_X_B);
  19. vram_ptr += SCRN_VX_B;
  20. map_ptr += SCRN_X_B;
  21. }
  22. rLCDC |= LCDC_ON;
  23. while (1) {
  24. joypad_update();
  25. if (joypad_state & PAD_START) {
  26. game_state = GAME_STATE_LEVEL;
  27. break;
  28. }
  29. // Wait for VBLANK. Clear IF since global interrupts are disabled.
  30. HALT();
  31. rIF = 0;
  32. }
  33. }