diff --git a/Source/Glide64/Settings.cpp b/Source/Glide64/Settings.cpp index 1350694da..952d84627 100644 --- a/Source/Glide64/Settings.cpp +++ b/Source/Glide64/Settings.cpp @@ -69,7 +69,7 @@ flame_corona(0), //hack for zeldas flame's corona increase_texrect_edge(0), // add 1 to lower right corner coordinates of texrect decrease_fillrect_edge(0), // sub 1 from lower right corner coordinates of fillrect texture_correction(0), // enable perspective texture correction emulation. is on by default -stipple_mode(0), //used for dithered alpha emulation + m_stipple_mode(STIPPLE_Disable), //used for dithered alpha emulation stipple_pattern(0), //used for dithered alpha emulation force_microcheck(0), //check microcode each frame, for mixed F3DEX-S2DEX games force_quad3d(0), //force 0xb5 command to be quad, not line 3d @@ -171,7 +171,7 @@ void CSettings::RegisterSettings(void) game_setting(Set_decrease_fillrect_edge, "decrease_fillrect_edge", 0); game_setting(Set_texture_correction, "texture_correction", 1); game_setting(Set_pal230, "pal230", 0); - game_setting(Set_stipple_mode, "stipple_mode", 2); + game_setting(Set_stipple_mode, "stipple_mode", STIPPLE_Rotate); game_setting(Set_stipple_pattern, "stipple_pattern", 0x3E0F83E0); game_setting(Set_force_microcheck, "force_microcheck", 0); @@ -494,7 +494,7 @@ void CSettings::ReadGameSettings(const char * name) g_settings->decrease_fillrect_edge = GetSetting(Set_decrease_fillrect_edge); g_settings->texture_correction = GetSetting(Set_texture_correction) == 0 ? 0 : 1; g_settings->pal230 = GetSetting(Set_pal230) == 1 ? 1 : 0; - g_settings->stipple_mode = GetSetting(Set_stipple_mode); + m_stipple_mode = (StippleMode_t)GetSetting(Set_stipple_mode); int stipple_pattern = GetSetting(Set_stipple_pattern); g_settings->stipple_pattern = stipple_pattern > 0 ? (uint32_t)stipple_pattern : 0x3E0F83E0; g_settings->force_microcheck = GetSetting(Set_force_microcheck); diff --git a/Source/Glide64/Settings.h b/Source/Glide64/Settings.h index d82c3426d..f388f0849 100644 --- a/Source/Glide64/Settings.h +++ b/Source/Glide64/Settings.h @@ -97,6 +97,13 @@ public: LOD_Precise = 2, }; + enum StippleMode_t + { + STIPPLE_Disable = 0x0, + STIPPLE_Pattern = 0x1, + STIPPLE_Rotate = 0x2, + }; + uint32_t res_x, scr_res_x; uint32_t res_y, scr_res_y; #ifndef ANDROID @@ -183,7 +190,7 @@ public: int increase_texrect_edge; // add 1 to lower right corner coordinates of texrect int decrease_fillrect_edge; // sub 1 from lower right corner coordinates of fillrect int texture_correction; // enable perspective texture correction emulation. is on by default - int stipple_mode; //used for dithered alpha emulation + inline StippleMode_t stipple_mode(void) const { return m_stipple_mode; } //used for dithered alpha emulation uint32_t stipple_pattern; //used for dithered alpha emulation int force_microcheck; //check microcode each frame, for mixed F3DEX-S2DEX games int force_quad3d; //force 0xb5 command to be quad, not line 3d @@ -229,6 +236,7 @@ private: Filtering_t m_filtering; SwapMode_t m_swapmode; PixelLevelOfDetail_t m_lodmode; + StippleMode_t m_stipple_mode; hacks_t m_hacks; }; diff --git a/Source/Glide64/Util.cpp b/Source/Glide64/Util.cpp index 7d37d8691..a710b2e17 100644 --- a/Source/Glide64/Util.cpp +++ b/Source/Glide64/Util.cpp @@ -1880,7 +1880,7 @@ void update() { if (g_settings->old_style_adither || rdp.alpha_dither_mode != 3) { WriteTrace(TraceRDP, TraceDebug, " |- alpha compare: dither"); - grStippleModeExt(g_settings->stipple_mode); + grStippleModeExt(g_settings->stipple_mode()); } else grStippleModeExt(GR_STIPPLE_DISABLE);