static void DecreaseFrameSkip(bool pressed) { if (!pressed) return; if (render.frameskip.max>0) render.frameskip.max--; LOG_MSG("Frame Skip at %d",render.frameskip.max); GFX_SetTitle(-1,render.frameskip.max,false); }
//extern void GFX_SetTitle(Bit32s cycles, Bits frameskip, Bits timing, bool paused); static void IncreaseFrameSkip(bool pressed) { if (!pressed) return; if (render.frameskip.max<10) render.frameskip.max++; LOG_MSG("Frame Skip at %d",(int)render.frameskip.max); GFX_SetTitle(-1,render.frameskip.max,-1,false); }
void RENDER_Init(Section * sec) { Section_prop * section=static_cast<Section_prop *>(sec); //For restarting the renderer. static bool running = false; bool aspect = render.aspect; render.pal.first=256; render.pal.last=0; render.aspect=section->Get_bool("aspect"); render.frameskip.max=section->Get_int("frameskip"); render.frameskip.count=0; //If something changed that needs a ReInit // Only ReInit when there is a src.bpp (fixes crashes on startup and directly changing the scaler without a screen specified yet) if(running && render.src.bpp && render.aspect != aspect) RENDER_CallBack( GFX_CallBackReset ); if(!running) render.updating=true; running = true; MAPPER_AddHandler(DecreaseFrameSkip,MK_f7,MMOD1,"decfskip","Dec Fskip"); MAPPER_AddHandler(IncreaseFrameSkip,MK_f8,MMOD1,"incfskip","Inc Fskip"); GFX_SetTitle(-1,render.frameskip.max,false); }
void DOS_UpdatePSPName(void) { DOS_MCB mcb(dos.psp()-1); static char name[9]; mcb.GetFileName(name); if (!strlen(name)) strcpy(name,"DOSBOX"); RunningProgram=name; GFX_SetTitle(-1,-1,false); }
void RENDER_Init(Section * sec) { Section_prop * section=static_cast<Section_prop *>(sec); //For restarting the renderer. static bool running = false; bool aspect = render.aspect; Bitu scalersize = render.scale.size; bool scalerforced = render.scale.forced; scalerOperation_t scaleOp = render.scale.op; render.pal.first=256; render.pal.last=0; render.aspect=section->Get_bool("aspect"); render.frameskip.max=section->Get_int("frameskip"); render.frameskip.count=0; std::string cline; std::string scaler; //Check for commandline paramters and parse them through the configclass so they get checked against allowed values if (control->cmdline->FindString("-scaler",cline,false)) { section->HandleInputline(std::string("scaler=") + cline); } else if (control->cmdline->FindString("-forcescaler",cline,false)) { section->HandleInputline(std::string("scaler=") + cline + " forced"); } Prop_multival* prop = section->Get_multival("scaler"); scaler = prop->GetSection()->Get_string("type"); std::string f = prop->GetSection()->Get_string("force"); render.scale.forced = false; if(f == "forced") render.scale.forced = true; if (scaler == "none") { render.scale.op = scalerOpNormal;render.scale.size = 1; } else if (scaler == "normal2x") { render.scale.op = scalerOpNormal;render.scale.size = 2; } else if (scaler == "normal3x") { render.scale.op = scalerOpNormal;render.scale.size = 3; } #if RENDER_USE_ADVANCED_SCALERS>2 else if (scaler == "advmame2x") { render.scale.op = scalerOpAdvMame;render.scale.size = 2; } else if (scaler == "advmame3x") { render.scale.op = scalerOpAdvMame;render.scale.size = 3; } else if (scaler == "advinterp2x") { render.scale.op = scalerOpAdvInterp;render.scale.size = 2; } else if (scaler == "advinterp3x") { render.scale.op = scalerOpAdvInterp;render.scale.size = 3; } else if (scaler == "hq2x") { render.scale.op = scalerOpHQ;render.scale.size = 2; } else if (scaler == "hq3x") { render.scale.op = scalerOpHQ;render.scale.size = 3; } else if (scaler == "2xsai") { render.scale.op = scalerOpSaI;render.scale.size = 2; } else if (scaler == "super2xsai") { render.scale.op = scalerOpSuperSaI;render.scale.size = 2; } else if (scaler == "supereagle") { render.scale.op = scalerOpSuperEagle;render.scale.size = 2; } #endif #if RENDER_USE_ADVANCED_SCALERS>0 else if (scaler == "tv2x") { render.scale.op = scalerOpTV;render.scale.size = 2; } else if (scaler == "tv3x") { render.scale.op = scalerOpTV;render.scale.size = 3; } else if (scaler == "rgb2x"){ render.scale.op = scalerOpRGB;render.scale.size = 2; } else if (scaler == "rgb3x"){ render.scale.op = scalerOpRGB;render.scale.size = 3; } else if (scaler == "scan2x"){ render.scale.op = scalerOpScan;render.scale.size = 2; } else if (scaler == "scan3x"){ render.scale.op = scalerOpScan;render.scale.size = 3; } #endif //If something changed that needs a ReInit // Only ReInit when there is a src.bpp (fixes crashes on startup and directly changing the scaler without a screen specified yet) if(running && render.src.bpp && ((render.aspect != aspect) || (render.scale.op != scaleOp) || (render.scale.size != scalersize) || (render.scale.forced != scalerforced) || render.scale.forced)) RENDER_CallBack( GFX_CallBackReset ); if(!running) render.updating=true; running = true; MAPPER_AddHandler(DecreaseFrameSkip,MK_f7,MMOD1,"decfskip","Dec Fskip"); MAPPER_AddHandler(IncreaseFrameSkip,MK_f8,MMOD1,"incfskip","Inc Fskip"); GFX_SetTitle(-1,render.frameskip.max,false); }
void RENDER_Init(Section * sec) { Section_prop * section=static_cast<Section_prop *>(sec); vga.draw.linewise_set=true; vga.draw.doublescan_set=section->Get_bool("doublescan"); vga.draw.char9_set=section->Get_bool("char9"); //For restarting the renderer. static bool running = false; bool aspect = render.aspect; Bitu scalersize = render.scale.size; bool scalerforced = render.scale.forced; scalerOperation_t scaleOp = render.scale.op; render.pal.first=0; render.pal.last=255; render.aspect=section->Get_bool("aspect"); render.frameskip.max=section->Get_int("frameskip"); /* BUG FIX: Some people's dosbox.conf files have frameskip=-1 WTF?? */ /* without this fix, nothing displays, EVER */ if ((int)render.frameskip.max < 0) render.frameskip.max = 0; render.frameskip.count=0; render.forceUpdate=false; std::string cline; std::string scaler; //Check for commandline paramters and parse them through the configclass so they get checked against allowed values if (control->cmdline->FindString("-scaler",cline,false)) { section->HandleInputline(std::string("scaler=") + cline); } else if (control->cmdline->FindString("-forcescaler",cline,false)) { section->HandleInputline(std::string("scaler=") + cline + " forced"); } Prop_multival* prop = section->Get_multival("scaler"); scaler = prop->GetSection()->Get_string("type"); std::string f = prop->GetSection()->Get_string("force"); render.scale.forced = false; if(f == "forced") render.scale.forced = true; if (scaler == "none") { render.scale.op = scalerOpNormal; render.scale.size = 1; render.scale.hardware=false; } else if (scaler == "normal2x") { render.scale.op = scalerOpNormal; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "normal3x") { render.scale.op = scalerOpNormal; render.scale.size = 3; render.scale.hardware=false; } else if (scaler == "normal4x") { render.scale.op = scalerOpNormal; render.scale.size = 4; render.scale.hardware=false; } else if (scaler == "normal5x") { render.scale.op = scalerOpNormal; render.scale.size = 5; render.scale.hardware=false; } #if RENDER_USE_ADVANCED_SCALERS>2 else if (scaler == "advmame2x") { render.scale.op = scalerOpAdvMame; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "advmame3x") { render.scale.op = scalerOpAdvMame; render.scale.size = 3; render.scale.hardware=false; } else if (scaler == "advinterp2x") { render.scale.op = scalerOpAdvInterp; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "advinterp3x") { render.scale.op = scalerOpAdvInterp; render.scale.size = 3; render.scale.hardware=false; } else if (scaler == "hq2x") { render.scale.op = scalerOpHQ; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "hq3x") { render.scale.op = scalerOpHQ; render.scale.size = 3; render.scale.hardware=false; } else if (scaler == "2xsai") { render.scale.op = scalerOpSaI; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "super2xsai") { render.scale.op = scalerOpSuperSaI; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "supereagle") { render.scale.op = scalerOpSuperEagle; render.scale.size = 2; render.scale.hardware=false; } #endif #if RENDER_USE_ADVANCED_SCALERS>0 else if (scaler == "tv2x") { render.scale.op = scalerOpTV; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "tv3x") { render.scale.op = scalerOpTV; render.scale.size = 3; render.scale.hardware=false; } else if (scaler == "rgb2x"){ render.scale.op = scalerOpRGB; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "rgb3x"){ render.scale.op = scalerOpRGB; render.scale.size = 3; render.scale.hardware=false; } else if (scaler == "scan2x"){ render.scale.op = scalerOpScan; render.scale.size = 2; render.scale.hardware=false; } else if (scaler == "scan3x"){ render.scale.op = scalerOpScan; render.scale.size = 3; render.scale.hardware=false; } #endif else if (scaler == "hardware_none") { render.scale.op = scalerOpNormal; render.scale.size = 1; render.scale.hardware=true; } else if (scaler == "hardware2x") { render.scale.op = scalerOpNormal; render.scale.size = 4; render.scale.hardware=true; } else if (scaler == "hardware3x") { render.scale.op = scalerOpNormal; render.scale.size = 6; render.scale.hardware=true; } else if (scaler == "hardware4x") { render.scale.op = scalerOpNormal; render.scale.size = 8; render.scale.hardware=true; } else if (scaler == "hardware5x") { render.scale.op = scalerOpNormal; render.scale.size = 10; render.scale.hardware=true; } render.autofit=section->Get_bool("autofit"); //If something changed that needs a ReInit // Only ReInit when there is a src.bpp (fixes crashes on startup and directly changing the scaler without a screen specified yet) if(running && render.src.bpp && ((render.aspect != aspect) || (render.scale.op != scaleOp) || (render.scale.size != scalersize) || (render.scale.forced != scalerforced) || render.scale.forced)) RENDER_CallBack( GFX_CallBackReset ); if(!running) render.updating=true; running = true; MAPPER_AddHandler(DecreaseFrameSkip,MK_f7,MMOD1,"decfskip","Dec Fskip"); MAPPER_AddHandler(IncreaseFrameSkip,MK_f8,MMOD1,"incfskip","Inc Fskip"); VGA_TweakUserVsyncOffset(0.0f); GFX_SetTitle(-1,render.frameskip.max,-1,false); }