コード例 #1
0
ファイル: FPad.c プロジェクト: ysei/nintendont-mirror
void FPAD_Update( void )
{
	if (WPAD_ScanPads() > WPAD_ERR_NONE) {
		WPAD_Pressed = WPAD_ButtonsDown(0) | WPAD_ButtonsDown(1) | WPAD_ButtonsDown(2) | WPAD_ButtonsDown(3);
		WPAD_Pressed |= WPAD_ButtonsHeld(0) | WPAD_ButtonsHeld(1) | WPAD_ButtonsHeld(2) | WPAD_ButtonsHeld(3);
	} else {
		// No Wii remotes are connected
		WPAD_Pressed = 0;
	}
	
	if (PAD_ScanPads() > PAD_ERR_NONE) {
		PAD_Pressed  = PAD_ButtonsDown(0) | PAD_ButtonsDown(1) | PAD_ButtonsDown(2) | PAD_ButtonsDown(3);
		PAD_Pressed  |= PAD_ButtonsHeld(0) | PAD_ButtonsHeld(1) | PAD_ButtonsHeld(2) | PAD_ButtonsHeld(3);
		PAD_Stick_Y	 = PAD_StickY(0) | PAD_StickY(1) | PAD_StickY(2) | PAD_StickY(3);
		PAD_Stick_X	 = PAD_StickX(0) | PAD_StickX(1) | PAD_StickX(2) | PAD_StickX(3);
	} else {
		// No GC controllers are connected
		PAD_Pressed = 0;
		PAD_Stick_Y = 0;
		PAD_Stick_X = 0;
	}
		
	if( WPAD_Pressed == 0 && PAD_Pressed == 0 && ( PAD_Stick_Y < 25 && PAD_Stick_Y > -25 )  && ( PAD_Stick_X < 25 && PAD_Stick_X > -25 ) )
	{
		SLock = false;
		SpeedX= DELAY_START;
	}
}
コード例 #2
0
ファイル: nand.c プロジェクト: cloned67/wiimu
int backupNANDzestig()
{
	printf("\nWould you like to backup your Wii's NAND Flash? Hit A for Yes, or B for no.\n");
	while(1)
	{
		WPAD_ScanPads();
		PAD_ScanPads();
		u32 WPAD_Pressed = WPAD_ButtonsDown(0);
		WPAD_Pressed |= WPAD_ButtonsDown(1);
		WPAD_Pressed |= WPAD_ButtonsDown(2);
		WPAD_Pressed |= WPAD_ButtonsDown(3);

		u32 PAD_Pressed  = PAD_ButtonsDown(0);
		PAD_Pressed  |= PAD_ButtonsDown(1);
		PAD_Pressed  |= PAD_ButtonsDown(2);
		PAD_Pressed  |= PAD_ButtonsDown(3);

		if( (WPAD_Pressed & WPAD_BUTTON_A) || (PAD_Pressed & PAD_BUTTON_A) )
			break;
		if( (WPAD_Pressed & WPAD_BUTTON_B) || (PAD_Pressed & PAD_BUTTON_B) )
			return 0;

	}
	YAWND_Backup_Zestig();					// Thanks Redbird for releasing the YaWnD source code! 
	return 0;
}
コード例 #3
0
ファイル: tools.c プロジェクト: SmilingWolf/118-c-c-installer
void waitforbuttonpress(u32 *out, u32 *outGC)
{
	u32 pressed = 0;
	u32 pressedGC = 0;

	while (true)
	{
		WPAD_ScanPads();
		pressed = WPAD_ButtonsDown(0) | WPAD_ButtonsDown(1) | WPAD_ButtonsDown(2) | WPAD_ButtonsDown(3);

		PAD_ScanPads();
		pressedGC = PAD_ButtonsDown(0) | PAD_ButtonsDown(1) | PAD_ButtonsDown(2) | PAD_ButtonsDown(3);

		if(pressed || pressedGC) 
		{
			if (pressedGC)
			{
				// Without waiting you can't select anything
				usleep (20000);
			}
			if (out) *out = pressed;
			if (outGC) *outGC = pressedGC;
			return;
		}
	}
}
コード例 #4
0
ファイル: menu.c プロジェクト: perabuss/np2wii
void wiimenu_dip_cfg()
{
	int refresh = 1;
	int col = 0;
	int row = 0;
	int go = 1;
	while(go) {
		if(time_to_leave)
			break;
		VIDEO_WaitVSync();
		WPAD_ScanPads();
		u32 WPAD_Pressed = WPAD_ButtonsDown(0);
		WPAD_Pressed	|= WPAD_ButtonsDown(1);
		WPAD_Pressed	|= WPAD_ButtonsDown(2);
		WPAD_Pressed	|= WPAD_ButtonsDown(3);
		if(WPAD_Pressed & WPAD_BUTTON_DOWN) {
			row += 1;
			row %= 3;
			refresh = 1;
		}
		if(WPAD_Pressed & WPAD_BUTTON_UP) {
			row -= 1;
			if(row < 0)
				row = 2;
			refresh = 1;
		}
		if(WPAD_Pressed & WPAD_BUTTON_RIGHT) {
			col += 1;
			col %= 8;
			refresh = 1;
		}
		if(WPAD_Pressed & WPAD_BUTTON_LEFT) {
			col -= 1;
			if(col < 0)
				col = 7;
			refresh = 1;
		}
		if(WPAD_Pressed & WPAD_BUTTON_A) {
			np2cfg.dipsw[row] ^= 1 << col;
			refresh = 1;
		}
		if(WPAD_Pressed & WPAD_BUTTON_B) {
			go = 0;
		}
		if(refresh) {
			PrintMenuHead();
			printf("   DIP Switches:\n");
			printf("                      1  2  3  4  5  6  7  8  \n");
			printf("   Switch array 1:   ");
			PrintSwitches(np2cfg.dipsw[0], (row == 0) ? col : 9001);
			printf("\n   Switch array 2:   ");
			PrintSwitches(np2cfg.dipsw[1], (row == 1) ? col : 9001);
			printf("\n   Switch array 3:   ");
			PrintSwitches(np2cfg.dipsw[2], (row == 2) ? col : 9001);
			BorderOverlay();
		}
	}
}
コード例 #5
0
ファイル: joy_wii.c プロジェクト: clobber/jzIntv
void getWiiJoyEvents()
{
   WPAD_ScanPads();
   PAD_ScanPads();
   buttonsDown[0] = WPAD_ButtonsDown(WPAD_CHAN_0);
   buttonsDown[1] = WPAD_ButtonsDown(WPAD_CHAN_1);
   buttonsHeld[0] = WPAD_ButtonsHeld(WPAD_CHAN_0);
   buttonsHeld[1] = WPAD_ButtonsHeld(WPAD_CHAN_1);
   buttonsUp[0]   = WPAD_ButtonsUp(WPAD_CHAN_0);
   buttonsUp[1]   = WPAD_ButtonsUp(WPAD_CHAN_1);
   getGamecubePadInput();
   getWiimoteAndNunchukPadInput();
   getClassicControllerPadInput();
}
コード例 #6
0
ファイル: menu_error.cpp プロジェクト: Captnoord/Wodeflow
void CMenu::error(const wstringEx &msg)
{
	s32 padsState;
	WPADData *wd;

	WPAD_Rumble(WPAD_CHAN_0, 0);
	_hideAbout();
	_hideCode();
	_hideConfig();
	_hideConfig2();
	_hideConfigAdv();
	_hideDownload();
	_hideGame();
	_hideMain();
	_hideWBFS();
	_hideGameSettings();
	m_btnMgr.setText(m_errorLblMessage, msg, true);
	_showError();
	do
	{
		WPAD_ScanPads();
		padsState = WPAD_ButtonsDown(0);
		wd = WPAD_Data(0);
		_mainLoopCommon(wd);
	} while ((padsState & (WPAD_BUTTON_HOME | WPAD_BUTTON_A | WPAD_BUTTON_B)) == 0);
	WPAD_Rumble(WPAD_CHAN_0, 0);
	_hideError(false);
}
コード例 #7
0
ファイル: main.c プロジェクト: fagensden/postloader-1
bool WaitForAnyKey (void)
	{
	u32  wbtn, gcbtn;
	int i;
	bool pressed = false;
	char mask[80];
	char buff[80];
	
	strcpy (mask, "---------------------------------------------------------------------------");
	for (i = 0; i <strlen (mask); i++)
		{
		strcpy (buff, mask);
		buff[i] = '*';
		printf ("%s\r", buff);
		VIDEO_WaitVSync();

		WPAD_ScanPads();  // Scan the Wiimotes
		wbtn = WPAD_ButtonsDown(0);

		PAD_ScanPads();
		gcbtn = PAD_ButtonsDown(0);
		
		if (wbtn || gcbtn)
			{
			pressed = true;
			break;
			}
		usleep (10 * 1000);
		}
	printd ("---------------------------------------------------------------------------\n");
	
	return pressed;
	}
コード例 #8
0
ファイル: main.cpp プロジェクト: notnotme/nwancat
// rulez nyan scene
int main(int argc, char **argv)
{
	bool nyaning = true;

	// self explain
	nyan();
	MP3Player_PlayBuffer(nyannyannyan_mp3, nyannyannyan_mp3_size, NULL);

	VIDEO_SetBlack(FALSE);
	while(nyaning)
	{
		u64 cticks = ticks_to_millisecs(gettime());
		// Loop the sound if ended
		if(!MP3Player_IsPlaying()) MP3Player_PlayBuffer(nyannyannyan_mp3, nyannyannyan_mp3_size, NULL);
		//Check wiimote input
		WPAD_ScanPads();
		u32 pressed = WPAD_ButtonsDown(0);
		if (pressed & WPAD_BUTTON_HOME) nyaning = false;
		// blackscreen until 3,8s like the youtube video (not extreme precison ;))
		if(cticks < startTime+3900) continue;
		// bkg frame counter (tick each 100ms)
		if(cticks > bkgTimeCounter+100)
		{
			bkgTimeCounter = cticks;
			currentBkgStep = (currentBkgStep+1) % BKG_STEP;
		}
		// nyan frame counter (tick each 60ms)
		if(cticks > nyanTimeCounter+60)
		{
			nyanTimeCounter = cticks;
			currentNyanStep = (currentNyanStep+1) % NYAN_STEP;
		}
		// Set the 2d matrix
		guMtxIdentity(GXmodelView2D);
		GX_LoadPosMtxImm(GXmodelView2D, GX_PNMTX0);

		// nyan
		f32 move =  delta % BKG_SIZE;
		f32 x = -move;
		while(x < rmode->fbWidth)
		{
			drawBkgSprite(x, currentBkgStep);
			x += BKG_SIZE;
		}

		// nyan nyan
		drawNyan(-5, 240 - ((NYAN_HEIGHT*8)/2), currentNyanStep);

		// Copy & switch fb
		GX_DrawDone();
		GX_CopyDisp(xfb[wichFb], GX_TRUE);
		VIDEO_SetNextFramebuffer(xfb[wichFb]);
		VIDEO_Flush();
		VIDEO_WaitVSync();
		wichFb ^= 1;
		delta += 8;
	}

	return 0;
}
コード例 #9
0
ファイル: rvl.c プロジェクト: xdanieldzd/ozmav
void rvlInitFat()
{
	// temporary init video, pad, console
	VIDEO_Init();
	WPAD_Init();
	rmode = VIDEO_GetPreferredMode(NULL);
	xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
	CON_Init(xfb, 20, 20, rmode->fbWidth, rmode->xfbHeight, rmode->fbWidth * VI_DISPLAY_PIX_SZ);
	VIDEO_Configure(rmode);
	VIDEO_SetNextFramebuffer(xfb);
	VIDEO_SetBlack(FALSE);
	VIDEO_Flush();
	VIDEO_WaitVSync();
	if(rmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync();
	// loop until either Home has been pressed, or an SD card has been found
	while(!fatInitDefault()) {
		WPAD_ScanPads();
		printf("\x1b[2;0HFAT initialization error!");
		printf("\x1b[3;0HPlease insert a SD card to continue or press Home to exit!");
		u32 pressed = WPAD_ButtonsDown(0);
		if(pressed & WPAD_BUTTON_HOME) {
			printf("\x1b[5;0HExiting...");
			exit(0);
		}
		VIDEO_WaitVSync();
	}
	printf("\x1b[2;0H");
	// set the app path
	strcpy(program.apppath, "sd:/apps/wii_azunyan8");
}
コード例 #10
0
ファイル: main.cpp プロジェクト: AndrisLipenitis/priiloader
bool UserYesNoStop()
{
    u16 pDown;
    u16 GCpDown;
    while(1)
    {
        WPAD_ScanPads();
        PAD_ScanPads();
        pDown = WPAD_ButtonsDown(0);
        GCpDown = PAD_ButtonsDown(0);
        if (pDown & WPAD_BUTTON_A || GCpDown & PAD_BUTTON_A)
        {
            return true;
        }
        if (pDown & WPAD_BUTTON_B || GCpDown & PAD_BUTTON_B)
        {
            return false;
        }
        if (pDown & WPAD_BUTTON_HOME || GCpDown & PAD_BUTTON_START)
        {
            return false;
        }
    }
    //it should never get here, but to kill that silly warning... :)
    return false;
}
コード例 #11
0
ファイル: ogc_input.c プロジェクト: thecrazyboy/smsplus-gx
static void wpad_config(u8 num)
{
  int i,j;
  int max = MAX_KEYS;
  u8 quit;
  char msg[30];
  u32 current = 255;

  /* check wiimote status */
  if (WPAD_Probe(num, &current) != WPAD_ERR_NONE)
  {
    WaitPrompt("Wiimote is not connected !");
    return;
  }

  /* index for wpad_keymap */
  u8 index = current + (num * 3);

  /* loop on each mapped keys */
  for (i=0; i<max; i++)
  {
    /* remove any pending buttons */
    while (WPAD_ButtonsHeld(num))
    {
      WPAD_ScanPads();
      VIDEO_WaitVSync();
    }

    /* user information */
    ClearScreen();
    sprintf(msg,"Press key for %s",keys_name[i]);
    WriteCentre(254, msg);
    SetScreen();

    /* wait for input */
    quit = 0;
    while (quit == 0)
    {
      WPAD_ScanPads();

      /* get buttons */
      for (j=0; j<20; j++)
      {
        if (WPAD_ButtonsDown(num) & wpad_keys[j])
        {
          wpad_keymap[index][i]  = wpad_keys[j];
          quit = 1;
          j = 20;    /* leave loop */
        }
      }
    } /* wait for input */ 
  } /* loop for all keys */

  /* removed any pending buttons */
  while (WPAD_ButtonsHeld(num))
  {
    WPAD_ScanPads();
    VIDEO_WaitVSync();
  }
}
コード例 #12
0
static void XenonInputUpdate() {
    for (int i = 0; i < MAX_INPUTS; i++) {
        old_ctrl[i] = ctrl[i];
        usb_do_poll();
        get_controller_data(&ctrl[i], i);
    }
    // update wpad
    for (int i = 0; i < MAX_INPUTS; i++) {
        wpad_xenon[i].btns_d = WPAD_ButtonsDown(i);
        wpad_xenon[i].btns_u = WPAD_ButtonsUp(i);
        wpad_xenon[i].btns_h = WPAD_ButtonsHeld(i);

        //float irx = (float)((float)PAD_StickX(i)/128.f);
        //float iry = (float)(-(float)PAD_StickY(i)/128.f)-0.5f;
        //        float iry = 0.5f-((float)PAD_StickY(i)/128.f);
        float iry = 0.5f + ((float) -PAD_StickY(i) / 128.f);
        float irx = 0.5f + ((float) PAD_StickX(i) / 128.f);

        irx *= screenwidth;
        iry *= screenheight;

        wpad_xenon[i].ir.x = irx;
        wpad_xenon[i].ir.y = iry;

        wpad_xenon[i].ir.valid = 0;
    }
}
コード例 #13
0
ファイル: main.cpp プロジェクト: St0rmcrow/scummvm
static void show_console(int code) {
	u32 i, b;

	printf("ScummVM exited abnormally (%d).\n", code);

	gfx_frame_abort();
	gfx_init();

	if (!gfx_frame_start())
		return;

	gfx_con_draw();
	gfx_frame_end();

	for (i = 0; i < 60 * 3; ++i)
		VIDEO_WaitVSync();

#ifdef DEBUG_WII_GDB
	printf("attach gdb now\n");
	_break();
#endif

	printf("Press any key to continue.\n");

	if (!gfx_frame_start())
		return;

	gfx_con_draw();
	gfx_frame_end();
	VIDEO_WaitVSync();

	while (true) {
		b = 0;

		if (PAD_ScanPads() & 1)
			b = PAD_ButtonsDown(0);

#ifndef GAMECUBE
		WPAD_ScanPads();
		if (WPAD_Probe(0, NULL) == WPAD_ERR_NONE)
			b |= WPAD_ButtonsDown(0);
#endif

		if (b)
			break;

		VIDEO_WaitVSync();
	}

	printf("\n\nExiting...\n");

	if (!gfx_frame_start())
		return;

	gfx_con_draw();
	gfx_frame_end();
	VIDEO_WaitVSync();
}
コード例 #14
0
ファイル: tools.c プロジェクト: Belxjander/loadMii
u8 readKeys ()
{
	u8 bitmap;
	int pad;
	
	PAD_ScanPads();
	WPAD_ScanPads();
	
	bitmap = 0;
	
	for (pad=0;pad<4;pad++)
	{
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_UP || WPAD_ButtonsDown(pad) & WPAD_BUTTON_UP)
		{
			bitmap |= KEY_UP;
		}
		
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_DOWN || WPAD_ButtonsDown(pad) & WPAD_BUTTON_DOWN)
		{
			bitmap |= KEY_DOWN;
		}
		
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_LEFT || WPAD_ButtonsDown(pad) & WPAD_BUTTON_LEFT)
		{
			bitmap |= KEY_LEFT;
		}
		
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_RIGHT || WPAD_ButtonsDown(pad) & WPAD_BUTTON_RIGHT)
		{
			bitmap |= KEY_RIGHT;
		}
		
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_X || WPAD_ButtonsDown(pad) & WPAD_BUTTON_PLUS)
		{
			bitmap |= KEY_PLUS;
		}
		
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_Y || WPAD_ButtonsDown(pad) & WPAD_BUTTON_MINUS)
		{
			bitmap |= KEY_MINUS;
		}	
		
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_A || WPAD_ButtonsDown(pad) & WPAD_BUTTON_A)
		{
			bitmap |= KEY_A;
		}
		
		if (PAD_ButtonsDown(pad) & PAD_BUTTON_B || WPAD_ButtonsDown(pad) & WPAD_BUTTON_B)
		{
			bitmap |= KEY_B;
		}													
	}
	
	return bitmap;
}
コード例 #15
0
ファイル: PadSystem.cpp プロジェクト: ds84182/freetypegx
uint32_t PadSystem::scanPads(int controller) {
#ifdef __WIISYSTEM__
	WPAD_ScanPads();
	return WPAD_ButtonsDown(controller);
#else
	PAD_ScanPads();
	return PAD_ButtonsDown(controller);
#endif
}
コード例 #16
0
    void TProfanationGame::updateInputController()
    {
	  struct expansion_t stick;
	  bool sleft=false,sright=false,sup=false,sdown=false,nun_C=false,nun_Z=false;
	  
	  WPAD_ScanPads();
	  WPAD_Expansion(WPAD_CHAN_0, &stick);
 
	  u16 buttonsHeld = WPAD_ButtonsHeld(0);
	  u16 buttonsDown = WPAD_ButtonsDown(0);
		
	  if(stick.type == WPAD_EXP_NUNCHUK)
	  {
		float diffx = stick.nunchuk.js.pos.x - stick.nunchuk.js.center.x; 
		float diffy = stick.nunchuk.js.pos.y - stick.nunchuk.js.center.y; 
		
        if(fabs(diffx)>SENSIBILITY)  
        { 
		  sright = (stick.nunchuk.js.pos.x > stick.nunchuk.js.center.x);
		  sleft = (stick.nunchuk.js.pos.x < stick.nunchuk.js.center.x);
		} 
    
        if(fabs(diffy)>SENSIBILITY)  
        { 
		  sup = (stick.nunchuk.js.pos.y > stick.nunchuk.js.center.y);
		  sdown = (stick.nunchuk.js.pos.y < stick.nunchuk.js.center.y);
		} 

		nun_C = stick.nunchuk.btns_held & NUNCHUK_BUTTON_C;
		nun_Z = stick.nunchuk.btns_held & NUNCHUK_BUTTON_Z;
		
		inputController.setStatus(GKEY_LEFT, sleft ||  (buttonsHeld & WPAD_BUTTON_LEFT));
		inputController.setStatus(GKEY_RIGHT,sright || (buttonsHeld & WPAD_BUTTON_RIGHT));
		inputController.setStatus(GKEY_UP,   sup ||    (buttonsHeld & WPAD_BUTTON_UP));
		inputController.setStatus(GKEY_DOWN, sdown ||  (buttonsHeld & WPAD_BUTTON_DOWN));
        
		inputController.setStatus(GKEY_LONG_JUMP, nun_C || (buttonsDown & WPAD_BUTTON_1));
		inputController.setStatus(GKEY_SHORT_JUMP, nun_Z || (buttonsDown & WPAD_BUTTON_2));
	  }
	  else
	  {      
	    inputController.setStatus(GKEY_LEFT, (buttonsHeld & WPAD_BUTTON_UP));
        inputController.setStatus(GKEY_RIGHT,(buttonsHeld & WPAD_BUTTON_DOWN));
        inputController.setStatus(GKEY_UP,   (buttonsHeld & WPAD_BUTTON_RIGHT));
        inputController.setStatus(GKEY_DOWN, (buttonsHeld & WPAD_BUTTON_LEFT));
        
        inputController.setStatus(GKEY_LONG_JUMP, (buttonsDown & WPAD_BUTTON_1));
        inputController.setStatus(GKEY_SHORT_JUMP,(buttonsDown & WPAD_BUTTON_2));
      }
    
      inputController.setStatus(GKEY_SELECT,(buttonsDown & WPAD_BUTTON_A));
      inputController.setStatus(GKEY_ABORT,(buttonsDown & WPAD_BUTTON_HOME));

      inputController.setStatus(GKEY_SCR_PLUS,(buttonsDown & WPAD_BUTTON_PLUS));
      inputController.setStatus(GKEY_SCR_MINUS,(buttonsDown & WPAD_BUTTON_MINUS));
    }
コード例 #17
0
ファイル: cui_menu.c プロジェクト: odrevet/Chess-Wii
cui_menu menu_home(cui_game* p_game)
{
	cui_menu next_state = CUI_MENU_MAIN;
	bool done=false;
	GRRLIB_ttfFont* font = GRRLIB_LoadTTF(font_ttf, font_ttf_size); 
	
	UI_button button_loader;
	UI_InitBtn(&button_loader, 200, 200, "Loader");
	button_loader.img = GRRLIB_LoadTexture(button_png);
	button_loader.font = font;
	
	UI_button button_menu;
	UI_InitBtn(&button_menu, 400, 200, "Wii menu");
	button_menu.img = GRRLIB_LoadTexture(button_png);
	button_menu.font = font;
	

	while(!done)
	{		
		GRRLIB_FillScreen(0x000000FF);
		GRRLIB_PrintfTTF (15, 0, font, "HOME Menu", 96, 0xFFFFFFFF);
		GRRLIB_Line(0, 100, 640, 100, 0xFFFFFFFF);
		UI_DrawBtn(&button_loader);
		UI_DrawBtn(&button_menu);
		cui_cursor_display(p_game->cursor);
		
		cui_game_update_cursor(p_game->cursor);
		u32 pressed = WPAD_ButtonsDown(0);
		
		UI_UpdateBtn(&button_loader, p_game->cursor->hotspot_x, p_game->cursor->hotspot_y, pressed & WPAD_BUTTON_A);
		UI_UpdateBtn(&button_menu, p_game->cursor->hotspot_x, p_game->cursor->hotspot_y, pressed & WPAD_BUTTON_A);
		
		if ( pressed & WPAD_BUTTON_HOME ){
			done = true;
		}
		
		if(button_loader.click){
			done=true;
			next_state=CUI_MENU_EXIT;
		}
		
		if(button_menu.click){
			SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
		}
		
		GRRLIB_Render();
		
	}
	
	GRRLIB_FreeTexture(button_loader.img);
	GRRLIB_FreeTexture(button_menu.img);
	free(button_loader.text);
	free(button_menu.text);
	
	return next_state;
}
コード例 #18
0
ファイル: yawnd.c プロジェクト: cloned67/wiimu
// Wait for any button
void pressAnyButton()
{
	u32 pressed = false;
	
	printf("\nPress any button to continue...\n");
	do {
		WPAD_ScanPads();
		pressed = WPAD_ButtonsDown(0);
	} while (!pressed);
}
コード例 #19
0
ファイル: main.c プロジェクト: Gamer125/wmb-asm
void console_pause()
{
	while(1)
	{
		VIDEO_WaitVSync();
		WPAD_ScanPads();
		
		if (WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME)exit(0);
	}
}
コード例 #20
0
ファイル: Game.cpp プロジェクト: PowerKiKi/polukili
   void Game::run(const string& initialLevel)
   {
      this->changeLevel(initialLevel);
      int frameCount = 0;
      char framePerSecond[32] = "";
      
      while (!this->levels.empty())
      {
         WPAD_ScanPads();

         Level* level = this->levels.top();
         level->nextStep();
         level->render();

         if (this->debugDrawEnabled)
            level->world->DrawDebugData();

         if (this->console.isEnabled())
           this->console.render();

         // Render FPS
         GRRLIB_PrintfTTF(570, 32, this->font, framePerSecond, 16, GRRLIB_RED);

         GRRLIB_Render();  // Render the frame buffer to the screen


         // If level is finished, resume the previous one
         if (level->isFinished())
         {
            Console::log(LOG_INFO, "Game::run() - resume previous level");
            this->levels.pop();
            delete level;
            
            if (this->levels.top())
               this->levels.top()->loadGraphics();
         }
         
         // WPAD_ButtonsDown tells us which buttons were pressed in this loop
         // this is a "one shot" state which will not fire again until the button has been released
         u32 pressed = WPAD_ButtonsDown(WPAD_CHAN_0);

         // We return to the launcher application via exit
         if (pressed & WPAD_BUTTON_HOME) return;
         if (pressed & WPAD_BUTTON_PLUS) this->console.enable(!this->console.isEnabled());
         if (pressed & WPAD_BUTTON_MINUS) this->debugDrawEnabled = !this->debugDrawEnabled;

         // Count FPS
         frameCount++;
         if (this->fpsTimer.isExpired())
         {
            sprintf(framePerSecond, "%2d FPS", frameCount);
            frameCount = 0;
         }
      }
   }
コード例 #21
0
ファイル: editing.c プロジェクト: dbarnett/wiimu
void save_options()
{
	printf("\nWARNING: READ THE README FIRST!\nPress \x1b[32;1mA\x1b[39;0m to save or \x1b[31;1mB\x1b[39;0m to return to the Configuration.\n");
	while(1)
	{
		WPAD_ScanPads();
		PAD_ScanPads();
		u32 WPAD_Pressed;
		u32 WPAD1_Pressed = WPAD_ButtonsDown(0);
		u32 WPAD2_Pressed = WPAD_ButtonsDown(1);
		u32 WPAD3_Pressed = WPAD_ButtonsDown(2);
		u32 WPAD4_Pressed = WPAD_ButtonsDown(3);

		u32 PAD_Pressed;
		u32 PAD1_Pressed  = PAD_ButtonsDown(0);
		u32 PAD2_Pressed  = PAD_ButtonsDown(1);
		u32 PAD3_Pressed  = PAD_ButtonsDown(2);
		u32 PAD4_Pressed  = PAD_ButtonsDown(3);

		WPAD_Pressed	  = WPAD1_Pressed | WPAD2_Pressed | WPAD3_Pressed | WPAD4_Pressed;
		PAD_Pressed	  = PAD1_Pressed  | PAD2_Pressed  | PAD3_Pressed  | PAD4_Pressed ;

 		if((WPAD_Pressed & WPAD_BUTTON_A)	|| (PAD_Pressed & PAD_BUTTON_A))
		{
			if (country != sadr[0]){
				memset(sadr, 0, SADR_LENGTH);
				sadr[0] = country;
				int ret = SYSCONF_Set("IPL.SADR", sadr, SADR_LENGTH);
				if (ret) { printf("SYSCONF_Set IPL.SADR %d", ret); sleep(5); return;}
			}
			SYSCONF_SaveChanges();
			ClearScreen();
			return;
		}
 		if((WPAD_Pressed & WPAD_BUTTON_B)	|| (PAD_Pressed & PAD_BUTTON_B))
		{
			ClearScreen();
			return;
		}
		VIDEO_WaitVSync();
	}
}
コード例 #22
0
ファイル: Init.cpp プロジェクト: Annovae/dolphin
void end() {
	int columns = 0, rows = 0;
	CON_GetMetrics(&columns, &rows);
	printf("\x1b[%i;0H",rows);
	printf("File written... press Home/Start to exit.");
	while(1) {
		WPAD_ScanPads(); PAD_ScanPads();
		if ((WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME) || (PAD_ButtonsDown(0) & PAD_BUTTON_START))
			exit(0);
		VIDEO_WaitVSync();
	}
}
コード例 #23
0
ファイル: main.cpp プロジェクト: Back2BackDev/rssmii
void fail(int val)
{
	if (LANG_GER) printf("Fehler: %i\nMit HOME zurueck zum Loader.", val);
	else printf("Error: %i\nGet back to the Loader by pressing the HOME-Button.", val);
	while (1)
	{
		WPAD_ScanPads();
		if (WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME)
		{
			end();
		}
	}
}
コード例 #24
0
ファイル: cui_menu.c プロジェクト: odrevet/Chess-Wii
cui_menu menu_credits(cui_game* p_game)
{
	cui_menu next_state = CUI_MENU_MAIN;
	bool done=false;
	
	GRRLIB_ttfFont* font = GRRLIB_LoadTTF(font_ttf, font_ttf_size);  
		
	UI_button button_return;
	UI_InitBtn(&button_return, 400, 400, "Return");
	button_return.img = GRRLIB_LoadTexture(button_png);
	button_return.font = font;
	
	while(!done){		
		cui_game_update_cursor(p_game->cursor);
		u32 pressed = WPAD_ButtonsDown(0);
		
		UI_UpdateBtn(&button_return, p_game->cursor->hotspot_x, p_game->cursor->hotspot_y, pressed & WPAD_BUTTON_A);
		
		
		GRRLIB_PrintfTTF2 (20, 60, font, 20, 0xFFFFFFFF, "%s", "ChessUi -- a chess interface for Wii --");
		GRRLIB_PrintfTTF2 (20, 80, font, 20, 0xFFFFFFFF, "%s", "Presented & programmed by TheDrev");
		GRRLIB_PrintfTTF2 (20, 100, font, 20, 0xFFFFFFFF, "%s", "Using the FirstChess engine by Pham Hong Nguyen ");
		GRRLIB_PrintfTTF2 (20, 120, font, 20, 0xFFFFFFFF, "%s", "and piece graphismes by Wapcaplet");
		GRRLIB_PrintfTTF2 (20, 140, font, 20, 0xFFFFFFFF, "%s", "and also the GRRLIB graphic library");
		GRRLIB_PrintfTTF2 (20, 160, font, 20, 0xFFFFFFFF, "%s", "see http://wiibrew.org/wiki/Chessui for more details");
		
		if(button_return.click){
			done=true;
			next_state=CUI_MENU_MAIN;
		}
		
		if ( pressed & WPAD_BUTTON_HOME ){
			if(!p_game->is_mute)AESND_Pause(true);
			if(menu_home(p_game) == CUI_MENU_EXIT){done=true;next_state=CUI_MENU_EXIT;}	
			if(!p_game->is_mute)AESND_Pause(false);
		}

		UI_DrawBtn(&button_return);
		
		cui_cursor_display(p_game->cursor);
		
		GRRLIB_Render();
	}
	
	GRRLIB_FreeTTF(font);
	free(button_return.text);
	GRRLIB_FreeTexture(button_return.img);
	
	return next_state;
}
コード例 #25
0
ファイル: main.c プロジェクト: cheeyee/Forwarder-USBLoaderCFG
void press_button_to_reboot()
{
	s32 pressed = 0;
	while (1) 
	{
		WPAD_ScanPads();
		pressed = WPAD_ButtonsDown(0);
		if (pressed) 
		{
			release_storage();
			SYS_ResetSystem(SYS_RESTART,0,0);
		}
	}
}
コード例 #26
0
ファイル: ending.c プロジェクト: suloku/meritous-wii
int EndingEvents()
{
	static SDL_Event event;
	
	player_room = 0;
	current_boss = 3;
	boss_fight_mode = 4;
	
	MusicUpdate();

#ifdef HW_NINTENDO
	#ifdef HW_RVL	
	WPAD_ScanPads();
	//u32	WM_held = WPAD_ButtonsHeld(0);
	//u32	WM_up = WPAD_ButtonsUp(0);
	u32 WM_down = WPAD_ButtonsDown(0);
	#endif
	PAD_ScanPads();
	
	//u16 PAD_ButtonsHeld(0);
	//u16 GC_up = PAD_ButtonsUp(0);
	u16 GC_down = PAD_ButtonsDown(0);
		
	if (GC_down & PAD_BUTTON_START
	#ifdef HW_RVL
		|| WM_down & WPAD_BUTTON_HOME || WM_down & WPAD_CLASSIC_BUTTON_HOME
	#endif
		)
		return 1;
		
#endif
	
	while (SDL_PollEvent(&event)) {
		if (event.type == SDL_KEYDOWN) {
			switch (event.key.keysym.sym) {
				case SDLK_ESCAPE:
					return 1;
					break;
				default:
					break;
			}
		}
		if (event.type == SDL_QUIT) {
			return 1;
		}
	}
	
	return 0;
}
コード例 #27
0
ファイル: editing.c プロジェクト: dbarnett/wiimu
void quit_options()
{
	printf("\nIf you quit, all unsaved changes will be lost.\nPress \x1b[32;1mA\x1b[39;0m to exit or \x1b[31;1mB\x1b[39;0m to return to the Configuration.\n");
	while(1)
	{
		WPAD_ScanPads();
		PAD_ScanPads();
		u32 WPAD_Pressed;
		u32 WPAD1_Pressed = WPAD_ButtonsDown(0);
		u32 WPAD2_Pressed = WPAD_ButtonsDown(1);
		u32 WPAD3_Pressed = WPAD_ButtonsDown(2);
		u32 WPAD4_Pressed = WPAD_ButtonsDown(3);

		u32 PAD_Pressed;
		u32 PAD1_Pressed  = PAD_ButtonsDown(0);
		u32 PAD2_Pressed  = PAD_ButtonsDown(1);
		u32 PAD3_Pressed  = PAD_ButtonsDown(2);
		u32 PAD4_Pressed  = PAD_ButtonsDown(3);

		WPAD_Pressed	  = WPAD1_Pressed | WPAD2_Pressed | WPAD3_Pressed | WPAD4_Pressed;
		PAD_Pressed	  = PAD1_Pressed  | PAD2_Pressed  | PAD3_Pressed  | PAD4_Pressed ;

 		if((WPAD_Pressed & WPAD_BUTTON_A)	|| (PAD_Pressed & PAD_BUTTON_A))
		{
			dont_exit_configure=0;
			ClearScreen();
			return;
		}
 		if((WPAD_Pressed & WPAD_BUTTON_B)	|| (PAD_Pressed & PAD_BUTTON_B))
		{
			ClearScreen();
			return;
		}
		VIDEO_WaitVSync();
	}
}
コード例 #28
0
ファイル: wpad.c プロジェクト: Jeremy-D-Miller/usbloader-gui
u32 ButtonsPressed(void)
{
	int i;
	u32 buttons = 0;
	WUPC_UpdateButtonStats();
	WPAD_ScanPads();
	PAD_ScanPads();

	for (i = 3; i >= 0; i--)
	{
		buttons |= WUPC_ButtonsDown(i);
		buttons |= PAD_ButtonsDown(i);
		buttons |= WPAD_ButtonsDown(i);
	}
	return buttons;
}
コード例 #29
0
ファイル: main.cpp プロジェクト: libAthena/athena
int main()
{
#if GEKKO
    VIDEO_Init();
#if HW_RVL
    WPAD_Init();
#endif
    PAD_Init();

    rmode = VIDEO_GetPreferredMode(nullptr);
    xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));

    CON_Init(xfb, 20, 20, rmode->fbWidth, rmode->xfbHeight, rmode->fbWidth * VI_DISPLAY_PIX_SZ);
    CON_EnableGecko(CARD_SLOTB, true);

    VIDEO_Configure(rmode);
    VIDEO_SetBlack(false);

    VIDEO_Flush();

    VIDEO_WaitVSync();
    if (rmode->viTVMode & VI_NON_INTERLACE)
        VIDEO_WaitVSync();

    athena::io::MemoryCopyReader test("sd:/test.dat");
    while(true)
    {
#if HW_RVL
        WPAD_ScanPads();
#endif
        PAD_ScanPads();
        if (PAD_ButtonsDown(0) & PAD_BUTTON_START)
            break;

#if HW_RVL
        if (WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME)
            break;
#endif
        VIDEO_WaitVSync();
    }
#endif
    return 0;
}
コード例 #30
0
void CMenu::ButtonsPressed()
{
	
	gc_btnsPressed = 0;
	if (CheckTime())
	{
		ds3_btnsPressed = DS3_ButtonsDown();
		UpdateTime();
	}
	else
		ds3_btnsPressed = 0;
		
	if(ds3_btnsPressed & DBTN_SELECT) shutdown = 1;
	{
		for(int chan = WPAD_MAX_WIIMOTES-1; chan >= 0; chan--)
		{
			wii_btnsPressed[chan] = WPAD_ButtonsDown(chan);
			gc_btnsPressed |= PAD_ButtonsDown(chan);
			wupc_btnsPressed[chan] = WUPC_ButtonsDown(chan);
		}
	}
}