annotate test/nds-test/source/main.c @ 2683:e858ac8868b6 gsoc2008_nds

Ongoing video render work; initial work on NDS Timers.
author Darren Alton <dalton@stevens.edu>
date Fri, 08 Aug 2008 08:22:08 +0000
parents
children
rev   line source
2683
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
1
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
2 #include <SDL/SDL.h>
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
3 #if defined(NDS) || defined(__NDS__) || defined (__NDS)
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
4 #include <nds.h>
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
5 #else
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
6 #define swiWaitForVBlank()
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
7 #define consoleDemoInit()
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
8 #define RGB15(r,g,b) SDL_MapRGB(screen->format,((r)<<3),((g)<<3),((b)<<3))
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
9 #endif
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
10
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
11 void delay(int s) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
12 while(s-- > 0) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
13 int i = 60;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
14 while(--i) swiWaitForVBlank();
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
15 }
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
16 }
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
17
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
18 int main(void) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
19 SDL_Surface *screen;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
20 SDL_Joystick *stick;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
21 SDL_Event event;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
22 SDL_Rect rect = {8,8,240,176};
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
23
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
24 consoleDemoInit();
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
25 if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
26 puts("# error initializing SDL");
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
27 puts(SDL_GetError());
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
28 return 1;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
29 }
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
30 puts("* initialized SDL\n"); delay(1);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
31
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
32 screen = SDL_SetVideoMode(256, 192, 16, SDL_SWSURFACE);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
33 if(!screen) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
34 puts("# error setting video mode");
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
35 puts(SDL_GetError());
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
36 return 2;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
37 }
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
38 puts("* set video mode\n"); delay(1);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
39
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
40 stick = SDL_JoystickOpen(0);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
41 if(stick == NULL) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
42 puts("# error opening joystick");
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
43 puts(SDL_GetError());
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
44 // return 3;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
45 }
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
46 puts("* opened joystick"); delay(1);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
47 SDL_FillRect(screen, &rect, RGB15(0,0,31)|0x8000);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
48 SDL_Flip(screen);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
49
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
50 while(1)
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
51 while(SDL_PollEvent(&event))
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
52 switch(event.type) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
53 case SDL_JOYBUTTONDOWN:
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
54 switch(event.jbutton.which) {
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
55 case 0:
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
56 SDL_FillRect(screen, &rect, RGB15(31,0,0)|0x8000);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
57 break;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
58 case 1:
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
59 SDL_FillRect(screen, &rect, RGB15(0,31,0)|0x8000);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
60 break;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
61 case 2:
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
62 SDL_FillRect(screen, &rect, RGB15(0,0,31)|0x8000);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
63 break;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
64 case 3:
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
65 SDL_FillRect(screen, &rect, RGB15(0,0,0)|0x8000);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
66 break;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
67 default: break;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
68 }
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
69 printf("joy_%d\n", event.jbutton.which);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
70 SDL_Flip(screen);
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
71 break;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
72 case SDL_QUIT: SDL_Quit(); return 0;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
73 default: break;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
74 }
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
75
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
76 return 0;
e858ac8868b6 Ongoing video render work; initial work on NDS Timers.
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
77 }