BizHawk/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.Jabo.cs

184 lines
4.9 KiB
C#

using System.Collections.Generic;
using System.ComponentModel;
using Newtonsoft.Json;
using BizHawk.Emulation.Common;
using System.Reflection;
namespace BizHawk.Emulation.Cores.Nintendo.N64
{
public partial class N64SyncSettings
{
public class N64JaboPluginSettings : IPluginSettings
{
public N64JaboPluginSettings()
{
UseDefaultHacks = true;
anisotropic_level = ANISOTROPIC_FILTERING_LEVEL.FourTimes;
antialiasing_level = ANTIALIASING_LEVEL.Off;
brightness = 100;
super2xsal = false;
texture_filter = false;
adjust_aspect_ratio = false;
legacy_pixel_pipeline = false;
alpha_blending = false;
//wireframe = false;
direct3d_transformation_pipeline = false;
z_compare = false;
copy_framebuffer = false;
// Per game
resolution_width = -1;
resolution_height = -1;
clear_mode = Direct3DClearMode.Default;
}
public PluginType GetPluginType()
{
return PluginType.Jabo;
}
public void FillPerGameHacks(GameInfo game)
{
if (UseDefaultHacks)
{
resolution_width = game.GetInt("Jabo_Resolution_Width", -1);
resolution_height = game.GetInt("Jabo_Resolution_Height", -1);
clear_mode = (Direct3DClearMode)game.GetInt("Jabo_Clear_Frame", (int)Direct3DClearMode.Default);
}
}
public bool UseDefaultHacks { get; set; }
[DefaultValue(ANISOTROPIC_FILTERING_LEVEL.FourTimes)]
[DisplayName("Anisotropic filtering")]
[Description("Anisotropic filtering level")]
public ANISOTROPIC_FILTERING_LEVEL anisotropic_level { get; set; }
[DefaultValue(ANTIALIASING_LEVEL.Off)]
[DisplayName("Full-Scene Antialiasing")]
[Description("Full-Scene Antialiasing level")]
public ANTIALIASING_LEVEL antialiasing_level { get; set; }
// Range: 100-190 in increments of 3, TODO: would be nice to put this in the metadata
[DefaultValue(100)]
[DisplayName("Brightness")]
[Description("Brightness level, 100%-190%")]
public int brightness { get; set; }
[DefaultValue(false)]
[DisplayName("Super2xSal textures")]
[Description("Enables Super2xSal textures")]
public bool super2xsal { get; set; }
[DefaultValue(false)]
[DisplayName("Always use texture filter")]
[Description("Always use texture filter")]
public bool texture_filter { get; set; }
[DefaultValue(false)]
[DisplayName("Adjust game aspect ratio to match yours")]
[Description("Adjust game aspect ratio to match yours")]
public bool adjust_aspect_ratio { get; set; }
[DefaultValue(false)]
[DisplayName("Use legacy pixel pipeline")]
[Description("Use legacy pixel pipeline")]
public bool legacy_pixel_pipeline { get; set; }
[DefaultValue(false)]
[DisplayName("Force alpha blending")]
[Description("Force alpha blending")]
public bool alpha_blending { get; set; }
// As far as I can tell there is no way to apply this setting without opening the dll config window
//[DefaultValue(false)]
//[DisplayName("Wireframe rendering")]
//[Description("Wireframe rendering")]
//public bool wireframe { get; set; }
[DefaultValue(false)]
[DisplayName("Use Direct3D trans pipeline")]
[Description("Use Direct3D transformation pipeline")]
public bool direct3d_transformation_pipeline { get; set; }
[DefaultValue(false)]
[DisplayName("Force Z Compare")]
[Description("Force Z Compare")]
public bool z_compare { get; set; }
[DefaultValue(false)]
[DisplayName("Copy framebuffer")]
[Description("Copy framebuffer to RDRAM")]
public bool copy_framebuffer { get; set; }
[DefaultValue(-1)]
[DisplayName("Emulated Width")]
[Description("Emulated Width")]
public int resolution_width { get; set; }
[DefaultValue(-1)]
[DisplayName("Emulated Height")]
[Description("Emulated Height")]
public int resolution_height { get; set; }
[DefaultValue(Direct3DClearMode.Default)]
[DisplayName("Direct3D Clear Mode")]
[Description("Direct3D Clear Mode")]
public Direct3DClearMode clear_mode { get; set; }
public enum ANISOTROPIC_FILTERING_LEVEL
{
[Description("Off")]
Off = 0,
[Description("2X")]
TwoTimes = 1,
[Description("4X")]
FourTimes = 2,
[Description("8X")]
EightTimes = 3,
[Description("16X")]
SixteenTimes = 4
}
public enum ANTIALIASING_LEVEL
{
[Description("Off")]
Off = 0,
[Description("2X")]
TwoTimes = 1,
[Description("4X")]
FourTimes = 2,
[Description("8X")]
EightTimes = 3
}
public enum Direct3DClearMode
{
[Description("Default")]
Default = 0,
[Description("Only Per Frame")]
PerFrame = 1,
[Description("Always")]
Always = 2
}
public N64JaboPluginSettings Clone()
{
return (N64JaboPluginSettings)MemberwiseClone();
}
}
}
}