annotate test/nds-test-progs/general/source/main.c @ 2696:0b395a60deff gsoc2008_nds

Timers work now.
author Darren Alton <dalton@stevens.edu>
date Mon, 18 Aug 2008 07:29:52 +0000
parents c1c7cb1b5a47
children e1da92da346c
rev   line source
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
1
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
2 #include <SDL/SDL.h>
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
3 #if defined(NDS) || defined(__NDS__) || defined (__NDS)
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
4 #include <nds.h>
2694
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
5 #include <fat.h>
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
6 #else
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
7 #define swiWaitForVBlank()
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
8 #define consoleDemoInit()
2694
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
9 #define fatInitDefault()
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
10 #define RGB15(r,g,b) SDL_MapRGB(screen->format,((r)<<3),((g)<<3),((b)<<3))
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
11 #endif
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
12
2694
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
13 void splash(SDL_Surface *screen, int s) {
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
14 SDL_Surface *logo;
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
15 SDL_Rect area = {0,0,256,192};
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
16
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
17 logo = SDL_LoadBMP("sdl.bmp");
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
18 if(!logo) {
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
19 printf("Couldn't splash.\n");
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
20 return;
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
21 }
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
22 /*logo->flags &= ~SDL_PREALLOC;*/
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
23 SDL_BlitSurface(logo, NULL, screen, &area);
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
24 SDL_Flip(screen);
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
25 while(s-- > 0) {
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
26 int i = 60;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
27 while(--i) swiWaitForVBlank();
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
28 }
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
29 }
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
30
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
31 int main(void) {
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
32 SDL_Surface *screen;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
33 SDL_Joystick *stick;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
34 SDL_Event event;
2696
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
35 SDL_Rect rect = {0,0,256,192};
2691
87cfb5fde5db Rendering now partially works! (Some BIZARRE bug that I inadvertently fixed.)
Darren Alton <dalton@stevens.edu>
parents: 2686
diff changeset
36 int i;
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
37
2694
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
38 consoleDemoInit(); puts("Hello world! Initializing FAT...");
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
39 fatInitDefault();
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
40 if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0) {
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
41 puts("# error initializing SDL");
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
42 puts(SDL_GetError());
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
43 return 1;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
44 }
2692
cd8978f47849 Minor cleanups in renderer.
Darren Alton <dalton@stevens.edu>
parents: 2691
diff changeset
45 puts("* initialized SDL");
2691
87cfb5fde5db Rendering now partially works! (Some BIZARRE bug that I inadvertently fixed.)
Darren Alton <dalton@stevens.edu>
parents: 2686
diff changeset
46 screen = SDL_SetVideoMode(256, 192, 15, SDL_SWSURFACE);
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
47 if(!screen) {
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
48 puts("# error setting video mode");
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
49 puts(SDL_GetError());
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
50 return 2;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
51 }
2691
87cfb5fde5db Rendering now partially works! (Some BIZARRE bug that I inadvertently fixed.)
Darren Alton <dalton@stevens.edu>
parents: 2686
diff changeset
52 screen->flags &= ~SDL_PREALLOC;
2692
cd8978f47849 Minor cleanups in renderer.
Darren Alton <dalton@stevens.edu>
parents: 2691
diff changeset
53 puts("* set video mode");
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
54 stick = SDL_JoystickOpen(0);
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
55 if(stick == NULL) {
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
56 puts("# error opening joystick");
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
57 puts(SDL_GetError());
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
58 // return 3;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
59 }
2691
87cfb5fde5db Rendering now partially works! (Some BIZARRE bug that I inadvertently fixed.)
Darren Alton <dalton@stevens.edu>
parents: 2686
diff changeset
60 puts("* opened joystick");
2694
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
61
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
62 /*splash(screen, 3);*/
c1c7cb1b5a47 More sprite-work in the render driver, and some updates to the nds-test-progs.
Darren Alton <dalton@stevens.edu>
parents: 2692
diff changeset
63
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
64 SDL_FillRect(screen, &rect, RGB15(0,0,31)|0x8000);
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
65 SDL_Flip(screen);
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
66
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
67 while(1)
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
68 while(SDL_PollEvent(&event))
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
69 switch(event.type) {
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
70 case SDL_JOYBUTTONDOWN:
2696
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
71 SDL_FillRect(screen, &rect, (u16)rand()|0x8000);
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
72 SDL_Flip(screen);
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
73 if(rect.w > 8) {
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
74 rect.x += 4; rect.y += 3;
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
75 rect.w -= 8; rect.h -= 6;
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
76 }
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
77 printf("button %d pressed at %d ticks\n",
0b395a60deff Timers work now.
Darren Alton <dalton@stevens.edu>
parents: 2694
diff changeset
78 event.jbutton.which, SDL_GetTicks());
2686
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
79 break;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
80 case SDL_QUIT: SDL_Quit(); return 0;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
81 default: break;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
82 }
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
83
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
84 return 0;
e9f27fe4f2a1 Existing testsprite programs made into NDS projects
Darren Alton <dalton@stevens.edu>
parents:
diff changeset
85 }