184 lines
4.9 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
}
|
|
} |