Esempio n. 1
0
void soundtest()
{


			tte_write("#{es}");

		tte_write("#{P:0,0}GBA Sound Test\n");
		tte_write("A song should now be playing.\n");
		tte_write("Pressing B will exit.\n");

		vid_vsync();
		key_poll();

		mmStart( MOD_SMACHOOSEAPLAYER, MM_PLAY_LOOP );

		while(key_is_up(KEY_B)){

			vid_vsync();

			mmFrame();

			key_poll();

		}

		mmStop();

}
void game_manager::vblank_func()
{
	// If a bug was automatically detected.
	if ( curr_game_mode == gm_do_halt )
	{
		// Stop the sound stuff
		if (mmActive())
		{
			//mmPause();
			mmSetModuleVolume(static_cast<mm_word>(0));
			mmSetJingleVolume(static_cast<mm_word>(0));
			mmEffectCancelAll();
			
			mmFrame();
			
			//mmPause();
			//mmStop();
		}
		
		
		// Enable forced blank
		reg_dispcnt = dcnt_blank_on;
		
		return;
	}
	
	
	gfx_manager::copy_bgofs_mirror_to_registers();
	
	//mmFrame();
	
	key_poll();
	//pause_or_unpause_music();
	
	if ( curr_game_mode != gm_title_screen 
		&& curr_game_mode != gm_initializing_the_game )
	{
		mmFrame();
	}
	
	switch ( curr_game_mode )
	{
		// When on the title screen.
		case gm_title_screen:
			break;
		
		// When initializing the game
		case gm_initializing_the_game:
			break;
		
		// When loading a level.
		case gm_loading_level:
			hud_manager::hud_was_generated = false;
			break;
		
		// When changing from one sublevel to another.
		case gm_changing_sublevel:
			break;
		
		// When in a sublevel.
		case gm_in_sublevel:
			//gfx_manager::copy_bgofs_mirror_to_registers();
			gfx_manager::upload_bg_tiles_to_vram();
			copy_oam_mirror_to_oam();
			
			active_level_manager
				::copy_sublevel_from_array_2d_helper_to_vram();
			sprite_manager::upload_tiles_of_active_sprites_to_vram();
			
			hud_manager::update_hud_in_screenblock_mirror_2d();
			hud_manager::copy_hud_from_array_2d_helper_to_vram();
			break;
		
		// If a bug was automatically detected (this should never be the
		// case since gm_do_halt is handled at the start of this function).
		case gm_do_halt:
			break;
		
		default:
			break;
	}
}
Esempio n. 3
0
void MainMenu()
{
	//This function brings up the main menu and has it do stuff.

	RegisterRamReset(RESET_GFX);

	REG_DISPCNT= DCNT_MODE0 | DCNT_BG0;

	tte_init_chr4c(0, 			// BG 0
		BG_CBB(0)|BG_SBB(31),	// Charblock 0; screenblock 31
		0xF000,					// Screen-entry offset
		bytes2word(1,2,0,0),	// Color attributes.
		CLR_WHITE, 			// White text
		&verdana9Font,			// Verdana 9 font
		NULL
		);

	vid_vsync();
	draw_main_menu();



	while(1){


		vid_vsync();
		mmFrame();
		key_poll();


//This code is still being worked on but it will handle what is selected on the menu.
		    if (key_hit(KEY_DOWN)){
		    	mainmenuselected++;
	           if (mainmenuselected > 3){
	        	   mainmenuselected = 3;
			   }

			    draw_main_menu();

			}else if (key_hit(KEY_UP)){
				mainmenuselected = mainmenuselected - 1;

			   if (mainmenuselected < 0){
				   mainmenuselected = 0;
			   }
			    draw_main_menu();
			}else if (key_hit(KEY_B)){

			}else if (key_hit(KEY_A)){

	          if (mainmenuselected == 0){
			  


	        	  biosdump();
	        	  vid_vsync();
	              draw_main_menu();
	
	
		   }else if (mainmenuselected == 1){
			   
			   buttontest();
			   vid_vsync();
			   draw_main_menu();
		   }else if (mainmenuselected == 2){

			   RTC_Main();
			   vid_vsync();
			   draw_main_menu();
		   }else if (mainmenuselected == 3){

			   soundtest();
			   vid_vsync();

			   draw_main_menu();
		   }

		}

	}
}