PageRenderTime 39ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/Main.c

https://github.com/halcy/pucmcawesome
C | 79 lines | 62 code | 11 blank | 6 comment | 6 complexity | ee3ebe46549d0f49ac6074004d668ae4 MD5 | raw file
  1. #include <nds.h>
  2. #include <nds/fifocommon.h>
  3. #include <stdlib.h>
  4. #include "gfx/pucmcawesome.png.h"
  5. #include "gfx/bgbottom.png.h"
  6. #include "gfx/bgtop.png.h"
  7. int main()
  8. {
  9. // irqInit();
  10. // irqEnable(IRQ_VBLANK);
  11. // fifoInit();
  12. videoSetMode(MODE_5_2D);
  13. videoSetModeSub(MODE_5_2D);
  14. vramSetBankA(VRAM_A_MAIN_SPRITE);
  15. vramSetBankB(VRAM_B_MAIN_BG_0x06000000);
  16. vramSetBankC(VRAM_C_SUB_BG_0x06200000);
  17. vramSetBankD(VRAM_D_SUB_SPRITE);
  18. oamInit(&oamMain, SpriteMapping_1D_128, false);
  19. oamInit(&oamSub, SpriteMapping_1D_128, false);
  20. u16* puc = oamAllocateGfx(&oamMain, SpriteSize_32x32, SpriteColorFormat_256Color);
  21. dmaCopy((u8*)pucmcawesome_pngTiles, puc, 32*32*6);
  22. dmaCopy(pucmcawesome_pngPal, SPRITE_PALETTE, 512);
  23. int bg = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0);
  24. dmaCopy(bgtop_pngBitmap, bgGetGfxPtr(bg), 256*256);
  25. dmaCopy(bgtop_pngPal, BG_PALETTE, 256*2);
  26. bg = bgInitSub(3, BgType_Bmp8, BgSize_B8_256x256, 0,0);
  27. dmaCopy(bgbottom_pngBitmap, bgGetGfxPtr(bg), 256*256);
  28. dmaCopy(bgbottom_pngPal, BG_PALETTE_SUB, 256*2);
  29. int x = 0;
  30. int y = 0;
  31. int frame = 0;
  32. int framedelay = 0;
  33. while( 1 ) {
  34. // iprintf("\n Lets print pretty text on the\n NDS screen ");
  35. // iprintf("\x1b[32musing devkitpro!\n\n");
  36. // iprintf("\x1b[32;1m All we need now is actual game\n code!\x1b[39m");
  37. scanKeys();
  38. int keys = keysHeld();
  39. if( keys & KEY_DOWN ) {
  40. y++;
  41. }
  42. if( keys & KEY_UP) {
  43. y--;
  44. }
  45. if( keys & KEY_RIGHT) {
  46. x++;
  47. }
  48. if( keys & KEY_LEFT) {
  49. x--;
  50. }
  51. framedelay = (framedelay + 1)%3;
  52. if(framedelay == 0) {
  53. frame = (frame + 1) % 6;
  54. }
  55. oamSet(
  56. &oamMain,
  57. 0, x, y, 0, 0,
  58. SpriteSize_32x32,
  59. SpriteColorFormat_256Color,
  60. puc + (frame * 32 * 32)/2,
  61. -1, false, false, false, false, false
  62. );
  63. swiWaitForVBlank();
  64. oamUpdate(&oamMain);
  65. oamUpdate(&oamSub);
  66. }
  67. return 0;
  68. }