Пример #1
0
void
mainmenu (int selectedMenu)
{
	int quit = 0;
	int ret;

	// disable game-specific menu items if a ROM isn't loaded
	if ( ARAM_ROMSIZE == 0 )
    	menuitems[3][0] = '\0';
	else
		sprintf (menuitems[3], "Game Menu");

	VIDEO_WaitVSync ();

	while (quit == 0)
	{
		if(selectedMenu >= 0)
		{
			ret = selectedMenu;
			selectedMenu = -1; // default back to main menu
		}
		else
		{
			ret = RunMenu (menuitems, menucount, (char*)"Main Menu");
		}

		switch (ret)
		{
			case 0:
				// Load ROM Menu
				quit = LoadManager ();
				break;

			case 1:
				// Configure Controllers
				ConfigureControllers ();
				break;

			case 2:
				// Preferences
				PreferencesMenu ();
				break;

			case 3:
				// Game Options
				quit = GameMenu ();
				break;

			case 4:
				// Credits
				Credits ();
				WaitButtonA ();
                break;

			case 5:
				// Reset the Gamecube/Wii
			    Reboot();
                break;

			case 6:
				// Exit to Loader
				#ifdef HW_RVL
					#ifdef WII_DVD
					DI_Close();
					#endif
					exit(0);
				#else	// gamecube
					if (psoid[0] == PSOSDLOADID)
						PSOReload ();
				#endif
				break;

			case -1: // Button B
				// Return to Game
				quit = 1;
				break;
		}
	}

	/*** Remove any still held buttons ***/
	#ifdef HW_RVL
		while( PAD_ButtonsHeld(0) || WPAD_ButtonsHeld(0) )
		    VIDEO_WaitVSync();
	#else
		while( PAD_ButtonsHeld(0) )
		    VIDEO_WaitVSync();
	#endif
}
Пример #2
0
/****************************************************************************
 * Rom Info Menu
 *
 ****************************************************************************/
void RomInfo ()
{
  char msg[128];
  int rlen, ypos;

  ClearScreen ();
    strcpy (menutitle, "");
  ypos = 140;
  
    /* Title */
  WriteCentre (ypos , "Game Information");
  
  /* Rom name */
  ypos += fheight + fheight/2;
  sprintf(msg,"Internal Name - %s",rom.name);
  WriteCentre (ypos , msg);

  /* ROM Size */
  rlen = 16384 * mbc.romsize;
  rlen = rlen / 1024;
  if ((rlen/1024) == 0) sprintf(msg,"Rom Size - %d Ko",rlen);
  else sprintf(msg,"ROM Size - %d Mo",rlen/1024);
  ypos += fheight;
  WriteCentre (ypos , msg);

  /* RAM Size */
  sprintf(msg,"RAM Size - %d Ko",mbc.ramsize);
  ypos += fheight;
  WriteCentre (ypos , msg);

  /* Type */
  ypos += fheight;
  if (hw.cgb) WriteCentre (ypos , "Type - GameBoy COLOR");
  else WriteCentre (ypos , "Type - GameBoy MONO");

  /* Memory Controller Type */
  switch (mbc.type)
  {
    case MBC_NONE:
      sprintf(msg,"MBC Type - NONE");
      break;
    case MBC_MBC1:
      sprintf(msg,"MBC Type - MBC1");
      break;
    case MBC_MBC2:
      sprintf(msg,"MBC Type - MBC2");
      break;
    case MBC_MBC3:
      sprintf(msg,"MBC Type - MBC3");
      break;
    case MBC_MBC5:
      sprintf(msg,"MBC Type - MBC5");
      break;
    case MBC_RUMBLE:
      sprintf(msg,"MBC Type - RUMBLE");
      break;
    case MBC_HUC1:
      sprintf(msg,"MBC Type - HUC1");
      break;
    case MBC_HUC3:
      sprintf(msg,"MBC Type - HUC3");
      break;
  }
  
  ypos += fheight;
  WriteCentre ( ypos , msg);

  /* Internal battery */
  ypos += fheight;
  if (mbc.batt) WriteCentre (ypos , "Internal SRAM Batt. - YES");
  else WriteCentre (ypos , "Internal SRAM Batt. - NO");

  /* Internal RTC */
  ypos += fheight;
  if (rtc.batt) WriteCentre (ypos , "Internal RTC - YES");
  else WriteCentre (ypos , "Internal RTC - NO");

  ypos += 2*fheight;
  WriteCentre (ypos , "Press A to exit");
  
  SetScreen ();
  WaitButtonA ();
}
Пример #3
0
int
GameMenu ()
{
	int gamemenuCount = 10;
	char gamemenu[][50] = {
	  "Return to Game",
	  "Reset Game",
	  "ROM Information",
	  "Cheats",
	  "Load SRAM", "Save SRAM",
	  "Load Game Snapshot", "Save Game Snapshot",
	  "Reset Zoom",
	  "Back to Main Menu"
	};

	int ret, retval = 0;
	int quit = 0;
	int oldmenu = menu;
	menu = 0;

	while (quit == 0)
	{
		// disable SRAM/SNAPSHOT saving/loading if AUTO is on

		if (GCSettings.AutoLoad == 1) // Auto Load SRAM
			gamemenu[4][0] = '\0';
		else if (GCSettings.AutoLoad == 2) // Auto Load SNAPSHOT
			gamemenu[6][0] = '\0';

		if (GCSettings.AutoSave == 1) // Auto Save SRAM
			gamemenu[5][0] = '\0';
		else if (GCSettings.AutoSave == 2) // Auto Save SNAPSHOT
			gamemenu[7][0] = '\0';
		else if (GCSettings.AutoSave == 3) // Auto Save BOTH
		{
			gamemenu[5][0] = '\0';
			gamemenu[7][0] = '\0';
		}

		// hide cheats menu if cheats file not present
		if(Cheat.num_cheats == 0)
			gamemenu[3][0] = '\0';

		ret = RunMenu (gamemenu, gamemenuCount, (char*)"Game Menu");

		switch (ret)
		{
			case 0: // Return to Game
				quit = retval = 1;
				break;

			case 1: // Reset Game
				zoom_reset ();
				S9xSoftReset ();
				quit = retval = 1;
				break;

			case 2: // ROM Information
				RomInfo();
				WaitButtonA ();
				break;

			case 3: // load cheats
				CheatMenu();
				break;

			case 4: // Load SRAM
				zoom_reset ();
				quit = retval = LoadSRAM(GCSettings.SaveMethod, NOTSILENT);
				break;

			case 5: // Save SRAM
				SaveSRAM(GCSettings.SaveMethod, NOTSILENT);
				break;

			case 6: // Load Freeze
				zoom_reset ();
				quit = retval = NGCUnfreezeGame (GCSettings.SaveMethod, NOTSILENT);
				break;

			case 7: // Save Freeze
				NGCFreezeGame (GCSettings.SaveMethod, NOTSILENT);
				break;

			case 8:	// Reset Zoom
				zoom_reset ();
				quit = retval = 1;
				break;

			case -1: // Button B
			case 9: // Return to previous menu
				retval = 0;
				quit = 1;
				break;
		}
	}

	menu = oldmenu;

	return retval;
}
Пример #4
0
void
MainMenu (int selectedMenu)
{
	tb_t start,end;
	mftb(&start);

	int quit = 0;
	int ret;

	#ifdef HW_RVL
	// don't show dvd motor off on the wii
	menuitems[5][0] = 0;
	// rename reset/exit items
	sprintf (menuitems[6], "Return to Wii Menu");
	sprintf (menuitems[7], "Return to Homebrew Channel");
	#endif

	// disable game-specific menu items if a ROM isn't loaded
	if (!ROMLoaded)
    	menuitems[3][0] = '\0';
	else
		sprintf (menuitems[3], "Game Menu");

	VIDEO_WaitVSync ();

	while (quit == 0)
	{
		if(selectedMenu >= 0)
		{
			ret = selectedMenu;
			selectedMenu = -1; // default back to main menu
		}
		else
		{
			ret = RunMenu (menuitems, menucount, (char*)"Main Menu");
		}

		switch (ret)
		{
			case 0:
				// Load ROM Menu
				quit = LoadManager ();
				break;

			case 1:
				// Configure Controllers
				ConfigureControllers ();
				break;

			case 2:
				// Preferences
				PreferencesMenu ();
				break;

			case 3:
				// Game Options
				quit = GameMenu ();
				break;

			case 4:
				// Credits
				Credits ();
				WaitButtonA ();
                break;

			case 5:
				// turn the dvd motor off (GC only)
				#ifdef HW_DOL
				dvd_motor_off ();
				#endif

			case 6:
				// Reset the Gamecube/Wii
			    Reboot();
                break;

			case 7:
				ExitToLoader();
				break;

			case -1: // Button B
				// Return to Game
				if(ROMLoaded)
					quit = 1;
				break;
		}
	}

	// Wait for buttons to be released
	int count = 0; // how long we've been waiting for the user to release the button
	while(count < 50 && (
		PAD_ButtonsHeld(0)
		#ifdef HW_RVL
		|| WPAD_ButtonsHeld(0)
		#endif
	))
	{
		VIDEO_WaitVSync();
		count++;
	}

	mftb(&end);
	loadtimeradjust += tb_diff_msec(&end, &start);
}