bool Game::Init()
{
	videoSetMode(MODE_5_2D);
	videoSetModeSub(MODE_5_2D);

	mmInitDefault("assets/soundbank.bin");

	std::cout << "Game Init success\n";
	return true;
}
Example #2
0
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;
		}
		
	}
}
Example #4
0
void DSGM_InitSoundFull(int soundStreamCount) {
	mmInitDefault("nitro:/soundbank.bin");
	DSGM_soundStreamCount = soundStreamCount;
}