about summary refs log tree commit diff stats
path: root/source/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/main.c')
-rw-r--r--source/main.c55
1 files changed, 54 insertions, 1 deletions
diff --git a/source/main.c b/source/main.c index 128feb9..dd252b5 100644 --- a/source/main.c +++ b/source/main.c
@@ -240,12 +240,29 @@ u32 getMsg()
240 } 240 }
241 241
242 send(0); 242 send(0);
243 while (recv()!=0) {sleep(1);}; 243 while (recv()!=0) {sleep(1);}
244 send(0); 244 send(0);
245 245
246 return val; 246 return val;
247} 247}
248 248
249void getMsgArr(u32* arr, int len)
250{
251 for (int i=0; i<len; i++)
252 {
253 *(vu32*)(arr+i) = __builtin_bswap32(recv());
254 usleep(500000);
255 }
256}
257
258void sendMsg(u32 msg)
259{
260 while (recv()==0) {sleep(1);}
261 send(msg);
262 while (recv()!=0) {sleep(1);}
263 send(0);
264}
265
249int main(int argc, char *argv[]) 266int main(int argc, char *argv[])
250{ 267{
251 void *xfb = NULL; 268 void *xfb = NULL;
@@ -520,8 +537,44 @@ int main(int argc, char *argv[])
520 537
521 if (waitForButtons(PAD_BUTTON_A | PAD_BUTTON_B) & PAD_BUTTON_B) 538 if (waitForButtons(PAD_BUTTON_A | PAD_BUTTON_B) & PAD_BUTTON_B)
522 { 539 {
540 printf("Cancelling...\n");
541 VIDEO_WaitVSync();
542
543 sendMsg(0);
544
523 continue; 545 continue;
524 } 546 }
547
548 printf("Importing...\n");
549 VIDEO_WaitVSync();
550
551 sendMsg(1);
552
553 // Get Pokédex data
554 u32 pokedexSeen[13];
555 u32 pokedexCaught[13];
556
557 getMsgArr(pokedexSeen, 13);
558 getMsgArr(pokedexCaught, 13);
559 int numCaught = 0;
560 int numSeen = 0;
561 for (int i=0; i<(13*32); i++)
562 {
563 if (pokedexCaught[i >> 5] >> (i & 31) & 1)
564 {
565 //printf("Caught #%d\n", i);
566 numCaught++;
567 numSeen++;
568 } else if (pokedexSeen[i >> 5] >> (i & 31) & 1)
569 {
570 //printf("Saw #%d\n", i);
571 numSeen++;
572 }
573 }
574
575 printf("Caught: %d\nSeen: %d\n", numCaught, numSeen);
576
577 waitForButtons(PAD_BUTTON_START);
525 } 578 }
526 } 579 }
527 580