Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <snes.h>
- extern char tilfont, palfont;
- extern char gfxbaba, gfxbaba_end, palbaba, palbaba_end;
- //---------------------------------------------------------------------------------
- int main(void) {
- char baba_x = 0; // baba x
- char baba_y = 0; // baba y
- char baba_s = 0; // baba state
- char baba_f = 0; // baba bigger frame
- char baba_S = 0; // baba stage, smaller frame
- // Initialize SNES
- consoleInit();
- // Initialize text console with our font
- consoleSetTextVramBGAdr(0x6800);
- consoleSetTextVramAdr(0x3000);
- consoleSetTextOffset(0x0100);
- consoleInitText(0, 16 * 2, &tilfont, &palfont);
- // Init background
- bgSetGfxPtr(0, 0x2000);
- bgSetMapPtr(0, 0x6800, SC_32x32);
- // Init sprites
- oamInitGfxSet(&gfxbaba, (&gfxbaba_end-&gfxbaba), &palbaba, (&palbaba_end-&palbaba), 0, 0x16000, OBJ_SIZE32_L64);
- // Now Put in 16 color mode and disable Bgs except current
- setMode(BG_MODE1, 0);
- bgSetDisable(1);
- bgSetDisable(2);
- // Draw a BABA
- oamSetEx(0, OBJ_SMALL, OBJ_SHOW);
- // Wait for nothing :P
- setScreenOn();
- while (1)
- {
- baba_S += 1;
- baba_S %= 60;
- unsigned short int pad0 = padsCurrent(0);
- if(pad0 && baba_S % 5 == 0) {
- if(pad0 & KEY_UP) {
- baba_y -= 1;
- baba_s = 1;
- }
- if(pad0 & KEY_DOWN) {
- baba_y += 1;
- baba_s = 3;
- }
- if(pad0 & KEY_LEFT) {
- baba_x -= 1;
- baba_s = 2;
- }
- if(pad0 & KEY_RIGHT) {
- baba_x += 1;
- baba_s = 0;
- }
- baba_x %= 10;
- baba_y %= 9;
- baba_f += 1;
- baba_f %= 4;
- }
- unsigned short int baba_p = baba_s * 4 * 3 + baba_f * 3 + baba_S / 20;
- oamSet(0, baba_x * 24, baba_y * 24, 0, 0, 0, (baba_p / 4) * 64 + (baba_p % 4) * 4, 0);
- WaitForVBlank();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment