diff --git a/Assets/dll/dsda.wbx.zst b/Assets/dll/dsda.wbx.zst index c8fa792ab2..d85b366f2f 100644 Binary files a/Assets/dll/dsda.wbx.zst and b/Assets/dll/dsda.wbx.zst differ diff --git a/src/BizHawk.Emulation.Cores/Computers/Doom/DSDA.ISettable.cs b/src/BizHawk.Emulation.Cores/Computers/Doom/DSDA.ISettable.cs index 0ef3a9a9b4..0b43861e34 100644 --- a/src/BizHawk.Emulation.Cores/Computers/Doom/DSDA.ISettable.cs +++ b/src/BizHawk.Emulation.Cores/Computers/Doom/DSDA.ISettable.cs @@ -129,7 +129,7 @@ namespace BizHawk.Emulation.Cores.Computers.Doom public bool DoUpdate = false; [DisplayName("Internal Resolution Scale Factor")] - [Description("Which factor to increase internal resolution by [1 - 12]. Affects \"quality\" of rendered image at the cost of accuracy. Native resolution is 320x200 resized to 4:3 DAR on a CRT monitor.")] + [Description("Which factor to increase internal resolution by [1 - 12]. Affects \"quality\" of rendered image at the cost of accuracy. Native resolution is 320x200 resized to 4:3 DAR on a CRT monitor.\n\nRequires restart.")] [Range(1, 12)] [DefaultValue(1)] [TypeConverter(typeof(ConstrainedIntConverter))] @@ -198,13 +198,16 @@ namespace BizHawk.Emulation.Cores.Computers.Doom } public PutSettingsDirtyBits PutSettings(DoomSettings o) { + var ret = _settings.ScaleFactor == o.ScaleFactor + ? PutSettingsDirtyBits.None + : PutSettingsDirtyBits.RebootCore; _settings = o; if (_settings.DisplayPlayer == 1 && !_syncSettings.Player1Present) throw new Exception($"Trying to set display player '{_settings.DisplayPlayer}' but it is not active in this movie."); if (_settings.DisplayPlayer == 2 && !_syncSettings.Player2Present) throw new Exception($"Trying to set display player '{_settings.DisplayPlayer}' but it is not active in this movie."); if (_settings.DisplayPlayer == 3 && !_syncSettings.Player3Present) throw new Exception($"Trying to set display player '{_settings.DisplayPlayer}' but it is not active in this movie."); if (_settings.DisplayPlayer == 4 && !_syncSettings.Player4Present) throw new Exception($"Trying to set display player '{_settings.DisplayPlayer}' but it is not active in this movie."); _settings.DoUpdate = true; - return PutSettingsDirtyBits.None; + return ret; } [CoreSettings] diff --git a/waterbox/dsda/BizhawkInterface.c b/waterbox/dsda/BizhawkInterface.c index d743dff300..1138d60617 100644 --- a/waterbox/dsda/BizhawkInterface.c +++ b/waterbox/dsda/BizhawkInterface.c @@ -161,15 +161,8 @@ ECL_EXPORT bool dsda_frame_advance(CommonButtons commonButtons, struct PackedPla { if (renderInfo->DoUpdate) { - char setting_buffer[512]; - sprintf(setting_buffer, "%dx%d", - SCREENWIDTH * renderInfo->ScaleFactor, - SCREENHEIGHT * renderInfo->ScaleFactor); - dsda_UpdateStringConfig(dsda_config_screen_resolution, setting_buffer, true); - - dsda_UpdateIntConfig(dsda_config_screenblocks, renderInfo->HeadsUpMode ? 11 : 10, true); - dsda_UpdateIntConfig(dsda_config_hud_displayed, renderInfo->HeadsUpMode == 2 ? 0 : 1, true); - + dsda_UpdateIntConfig(dsda_config_screenblocks, renderInfo->HeadsUpMode != HUD_VANILLA ? 11 : 10, true); + dsda_UpdateIntConfig(dsda_config_hud_displayed, renderInfo->HeadsUpMode == HUD_NONE ? 0 : 1, true); dsda_UpdateIntConfig(dsda_config_usegamma, renderInfo->Gamma, true); dsda_UpdateIntConfig(dsda_config_show_messages, renderInfo->ShowMessages, true); dsda_UpdateIntConfig(dsda_config_hudadd_secretarea, renderInfo->ReportSecrets, true); diff --git a/waterbox/dsda/BizhawkInterface.h b/waterbox/dsda/BizhawkInterface.h index 02bfb49c80..b929cedaf8 100644 --- a/waterbox/dsda/BizhawkInterface.h +++ b/waterbox/dsda/BizhawkInterface.h @@ -83,10 +83,17 @@ extern fixed_t scale_ftom; #define PALETTE_SIZE 256 uint32_t _convertedPaletteBuffer[PALETTE_SIZE]; +enum HudMode +{ + HUD_VANILLA = 0, + HUD_DSDA = 1, + HUD_NONE = 2 +}; + enum MemoryArrayType { - ARRAY_THINGS = 0, - ARRAY_LINES = 1, + ARRAY_THINGS = 0, + ARRAY_LINES = 1, ARRAY_SECTORS = 2 }; diff --git a/waterbox/dsda/core b/waterbox/dsda/core index dafb3a130e..aedab0b282 160000 --- a/waterbox/dsda/core +++ b/waterbox/dsda/core @@ -1 +1 @@ -Subproject commit dafb3a130ebece8bc2320d8fe144eee17541ac12 +Subproject commit aedab0b2825646f06f85a9d13b4c67e231baa5dc