bool Game::Init() { videoSetMode(MODE_5_2D); videoSetModeSub(MODE_5_2D); mmInitDefault("assets/soundbank.bin"); std::cout << "Game Init success\n"; return true; }
int main() { // Init interrupts and VBlank irq. irq_init(NULL); irq_add(II_VBLANK, mmVBlank); mmInitDefault( (mm_addr)soundbank_bin, 8 ); CreditDevkitArmandtonc(); MainMenu(); while(1) { VBlankIntrWait(); } return 0; }
void game_manager::title_screen_func() { curr_game_mode = gm_title_screen; irq_init(); //irqEnable(irq_vblank); bios_wait_for_vblank(); // Use video Mode 0, use 1D object mapping, enable forced blank, // and display BG 0. reg_dispcnt = dcnt_mode0 | dcnt_obj_1d | dcnt_blank_on | dcnt_bg0_on; //// Use video Mode 0, use 1D object mapping, enable forced blank, //// and display BG 0, BG 1, BG 2, and BG 3 //reg_dispcnt = dcnt_mode0 | dcnt_obj_1d | dcnt_blank_on | dcnt_bg0_on // | dcnt_bg1_on | dcnt_bg2_on | dcnt_bg3_on | dcnt_obj_on; // Use screen base block 28 for BG0's Map reg_bg0cnt = bgcnt_sbb(bg0_sbb); reg_bg1cnt = bgcnt_sbb(bg1_sbb); reg_bg2cnt = bgcnt_sbb(bg2_sbb); reg_bg3cnt = bgcnt_sbb(bg3_sbb); // Clear bgofs_mirror for ( u32 i=0; i<3; ++i ) { gfx_manager::bgofs_mirror[i].curr.x = gfx_manager::bgofs_mirror[i].prev.x = {0}; gfx_manager::bgofs_mirror[i].curr.y = gfx_manager::bgofs_mirror[i].prev.y = {0}; } gfx_manager::copy_bgofs_mirror_to_registers(); // Copy the title screen's tiles and tilemap to VRAM bios_do_lz77_uncomp_vram( title_screenTiles, bg_tile_vram ); gfx_manager::upload_bg_palettes_to_target(bg_pal_ram); // This is sort of a hack. bios_do_lz77_uncomp_wram( title_screenMap, active_level::bg0_screenblock_mirror ); active_level_manager::copy_sublevel_from_array_2d_helper_to_vram(); // Disable forced blank clear_bits( reg_dispcnt, dcnt_blank_mask ); //memcpy8( test_sram_arr, (void *)debug_arr_u32, test_sram_arr_size ); for (;;) { bios_wait_for_vblank(); key_poll(); // Start the game if the Start button is hit if ( key_hit(key_start) ) { irqSet( irq_vblank, (u32)mmVBlank ); irqEnable(irq_vblank); // Don't call mmInitDefault more than once. It uses malloc(), // and it apparently MaxMOD doesn't ever call free(). mmInitDefault( (mm_addr)practice_17_bin, 8 ); mmSetVBlankHandler(reinterpret_cast<void*>(vblank_func)); reinit_the_game(); break; } } }
void DSGM_InitSoundFull(int soundStreamCount) { mmInitDefault("nitro:/soundbank.bin"); DSGM_soundStreamCount = soundStreamCount; }