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; } }
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(); } } } }