void gb_reset() { set_gb_type(); g_regs.SC=0; g_regs.DIV=0; g_regs.TIMA=0; g_regs.TMA=0; g_regs.TAC=0; g_regs.LCDC=0x91; g_regs.STAT=0; g_regs.SCY=0; g_regs.SCX=0; g_regs.LY=153; g_regs.LYC=0; g_regs.BGP=0xFC; g_regs.OBP1=0xFF; g_regs.OBP2=0xFF; g_regs.WY=0; g_regs.WX=0; g_regs.IF=0; g_regs.IE=0; cpu_irq_check(); // memset(&c_regs,0,sizeof(c_regs)); cpu_reset(); lcd_reset(); apu_reset(); mbc_reset(); sgb_reset(); renderer_reset(); gb_fill_vframe(0); now_frame=0; skip=skip_buf=0; re_render=0; // char *gb_names[]={"Invalid","Gameboy","SuperGameboy","Gameboy Color","Gameboy Advance"}; // if (m_rom->get_loaded()) // renderer_output_log("Current GB Type : %s \n",gb_names[m_rom->get_info()->gb_type]); }
void sdl_window_info::toggle_full_screen() { // if we are in debug mode, never go full screen if (machine().debug_flags & DEBUG_FLAG_OSD_ENABLED) return; // If we are going fullscreen (leaving windowed) remember our windowed size if (!fullscreen()) { m_windowed_dim = get_size(); } // reset UI to main menu machine().ui().menu_reset(); // kill off the drawers renderer_reset(); bool is_osx = false; #ifdef SDLMAME_MACOSX // FIXME: This is weird behaviour and certainly a bug in SDL is_osx = true; #endif if (fullscreen() && (video_config.switchres || is_osx)) { SDL_SetWindowFullscreen(platform_window(), 0); // Try to set mode SDL_SetWindowDisplayMode(platform_window(), &m_original_mode->mode); // Try to set mode SDL_SetWindowFullscreen(platform_window(), SDL_WINDOW_FULLSCREEN); // Try to set mode } SDL_DestroyWindow(platform_window()); set_platform_window(nullptr); downcast<sdl_osd_interface &>(machine().osd()).release_keys(); set_renderer(osd_renderer::make_for_type(video_config.mode, shared_from_this())); // toggle the window mode set_fullscreen(!fullscreen()); complete_create(); }