Skip to content

Commit 6c7653e

Browse files
author
adelikat
committed
Merge branch 'master' into MoreUnixMonoCompatWork
This doesn't compile because of Input.cs, didn't know what to do. Also search for Merge TODO for some commenting things that probably need to be deleted # Conflicts: # BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj # BizHawk.Client.EmuHawk/CustomControls/InputRoll.Drawing.cs # BizHawk.Client.EmuHawk/CustomControls/InputRoll/InputRoll.cs # BizHawk.Client.EmuHawk/Program.cs # BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs # BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs # BizHawk.Client.EmuHawk/tools/ToolHelpers.cs # BizHawk.Client.EmuHawk/tools/ToolManager.cs # BizHawk.Client.EmuHawk/tools/TraceLogger.Designer.cs # BizHawk.Client.EmuHawk/tools/TraceLogger.cs # BizHawk.Client.EmuHawk/tools/Watch/RamSearch.Designer.cs # BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs # BizHawk.Common/BizInvoke/DynamicLibraryImportResolver.cs
2 parents ada256b + 7d554f0 commit 6c7653e

File tree

350 files changed

+14108
-18587
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

350 files changed

+14108
-18587
lines changed

.editorconfig

+9
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,12 @@ root = true
22

33
[*]
44
indent_style = tab
5+
6+
[*.cs]
7+
csharp_new_line_before_open_brace = all
8+
csharp_new_line_before_else = true
9+
csharp_new_line_before_catch = true
10+
csharp_new_line_before_finally = true
11+
csharp_indent_switch_labels = true
12+
csharp_indent_case_contents = true
13+
csharp_indent_labels = one_less_than_current

Assets/gamedb/gamedb_goodnes.txt

+394-394
Large diffs are not rendered by default.

Assets/gamedb/gamedb_n64.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,8 @@ A5359E35839B40C414EAE498CA633B28176629AA G Olympic Hockey 98 (Japan) N64 Glide_
555555
7592F4C16B8E040539B5DCC201FAB2965A5E8C8D G Onegai Monsters (Japan) N64
556556
133F17162B2734286F9E94F64ACB1538B11506B2 G Operation WinBack (Europe) (En,Fr,De,Es,It) N64
557557
B8F29E8EFCF51EE9A6A16E2A1E60442B4F304950 G Pachinko 365 Nichi (Japan) N64
558-
2111D39265A317414D359E35A7D971C4DFA5F9E1 G Paper Mario (Europe) (En,Fr,De,Es) N64 Glide_enable_hacks_for_game=15;Glide_fb_hires_buf_clear=false;Glide_fb_optimize_texrect=false;Glide_swapmode=2;Glide_fb_smart=true;Glide_fb_read_alpha=true;Glide64mk2_enable_hacks_for_game=20;Glide64mk2_hires_buf_clear=false;Glide64mk2_optimize_texrect=false;Glide64mk2_filtering=1;Glide64mk2_swapmode=2;Glide64mk2_fb_smart=true;Glide64mk2_fb_read_alpha=true;Jabo_Clear_Frame=1;GLideN64_CopyColorToRDRAM=2
559-
3837F44CDA784B466C9A2D99DF70D77C322B97A0 G Paper Mario (USA) N64 RiceFrameBufferOption=3;RiceRenderToTextureOption=3;RiceScreenUpdateSettingHack=4;Glide_enable_hacks_for_game=15;Glide_fb_hires_buf_clear=false;Glide_fb_optimize_texrect=false;Glide_swapmode=2;Glide_fb_smart=true;Glide_fb_read_alpha=true;Glide64mk2_enable_hacks_for_game=20;Glide64mk2_hires_buf_clear=false;Glide64mk2_optimize_texrect=false;Glide64mk2_filtering=1;Glide64mk2_swapmode=2;Glide64mk2_fb_smart=true;Glide64mk2_fb_read_alpha=true;Jabo_Clear_Frame=1;GLideN64_CopyColorToRDRAM=2
558+
2111D39265A317414D359E35A7D971C4DFA5F9E1 G Paper Mario (Europe) (En,Fr,De,Es) N64 Glide_enable_hacks_for_game=15;Glide_fb_hires_buf_clear=false;Glide_fb_optimize_texrect=false;Glide_swapmode=2;Glide_fb_smart=true;Glide_fb_read_alpha=true;Glide64mk2_enable_hacks_for_game=20;Glide64mk2_hires_buf_clear=false;Glide64mk2_optimize_texrect=false;Glide64mk2_filtering=1;Glide64mk2_swapmode=2;Glide64mk2_fb_smart=true;Glide64mk2_fb_read_alpha=true;Jabo_Clear_Frame=1;GLideN64_CopyColorToRDRAM=1
559+
3837F44CDA784B466C9A2D99DF70D77C322B97A0 G Paper Mario (USA) N64 RiceFrameBufferOption=3;RiceRenderToTextureOption=3;RiceScreenUpdateSettingHack=4;Glide_enable_hacks_for_game=15;Glide_fb_hires_buf_clear=false;Glide_fb_optimize_texrect=false;Glide_swapmode=2;Glide_fb_smart=true;Glide_fb_read_alpha=true;Glide64mk2_enable_hacks_for_game=20;Glide64mk2_hires_buf_clear=false;Glide64mk2_optimize_texrect=false;Glide64mk2_filtering=1;Glide64mk2_swapmode=2;Glide64mk2_fb_smart=true;Glide64mk2_fb_read_alpha=true;Jabo_Clear_Frame=1;GLideN64_CopyColorToRDRAM=1
560560
7DB4808042B9651B47592E814AC4C125B51D4D2F G Paperboy (Europe) N64
561561
B043C47B9758FA6BB289CA7DBA2068BDA6CAFA3A G Paperboy (USA) N64
562562
9887A0E4BFE3C5E85E31638853574069F6C41CD3 G Parlor! Pro 64 - Pachinko Jikki Simulation Game (Japan) N64 Glide_force_microcheck=true;Glide64mk2_force_microcheck=true;Glide64mk2_filtering=1

Assets/gamedb/gamedb_nes.txt

-1
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,6 @@ sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (China) (Unl) NE
305305
sha1:B1C74236FD17FAB4AB9AA6AB28E38864C66D6255 Pocahontus (UNL) NES board=MAPPER182;PRG=256;CHR=256;WRAM=8;PAD_H=1
306306
sha1:5FA23F88432006DCF6874EA36E9E7DA8934427BE Super Donkey Kong (Unl) NES board=MAPPER182;PRG=128;CHR=128;WRAM=8;PAD_H=1
307307
sha1:8A7DAB8B78DA1C5EA159BA9EEC00FF97742245F1 B Super Donkey Kong (Unl) [b1] NES board=MAPPER182;PRG=128;CHR=128;WRAM=8;PAD_H=1
308-
sha1:8A7DAB8B78DA1C5EA159BA9EEC00FF97742245F1 O Super Donkey Kong (Unl) [o1] NES board=MAPPER182;PRG=128;CHR=128;WRAM=8;PAD_H=1
309308

310309
;wrong vram info
311310
sha1:32D71DD6C5A8D78A918FE1B9D6D6C4A570D9652D Oeka Kids Anpanman no Hiragana Daisuki (J) NES board=MAPPER096;VRAM=32

BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@
3333
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
3434
<FileAlignment>512</FileAlignment>
3535
<TargetFrameworkProfile />
36-
<NoWarn>1591</NoWarn><!-- don't bug us with "Missing XML comment [...]" until we have and enforce .stylecop.json i.e. when we care -->
36+
<LangVersion>8.0</LangVersion>
37+
<NoWarn>1591</NoWarn>
38+
<!-- don't bug us with "Missing XML comment [...]" until we have and enforce .stylecop.json i.e. when we care -->
3739
</PropertyGroup>
3840
<ItemGroup>
3941
<Reference Include="System" />
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2-
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp60</s:String></wpf:ResourceDictionary>
2+
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp80</s:String></wpf:ResourceDictionary>

BizHawk.Client.ApiHawk/Classes/BizHawkSystemIdToCoreSystemEnumConverter.cs

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ public object Convert(object value, Type targetType, object parameter, CultureIn
117117
case "GB4x":
118118
return CoreSystem.GB3x;
119119

120+
case "MAME":
121+
return CoreSystem.MAME;
122+
120123
case "VB":
121124
case "NGP":
122125
case "DNGP":

BizHawk.Client.Common/7z/LibraryManager.cs

+40-40
Original file line numberDiff line numberDiff line change
@@ -134,54 +134,54 @@ private static void Init()
134134
/// <param name="format">Archive format</param>
135135
public static void LoadLibrary(object user, Enum format)
136136
{
137-
lock (_syncRoot)
138-
{
139-
if (_inArchives == null
137+
lock (_syncRoot)
138+
{
139+
if (_inArchives == null
140140
#if COMPRESS
141-
|| _outArchives == null
141+
|| _outArchives == null
142142
#endif
143-
)
144-
{
145-
Init();
146-
}
147-
#if !WINCE && !MONO
148-
if (_modulePtr == IntPtr.Zero)
149-
{
150-
//zero 29-oct-2012 - this check isnt useful since LoadLibrary can pretty much check for the same thing. and it wrecks our dll relocation scheme
151-
//if (!File.Exists(_libraryFileName))
152-
//{
153-
// throw new SevenZipLibraryException("DLL file does not exist.");
154-
//}
155-
if ((_modulePtr = libLoader.LoadPlatformSpecific(_libraryFileName)) == IntPtr.Zero)
143+
)
156144
{
157-
//try a different directory
158-
string alternateFilename = Path.Combine(Path.Combine(Path.GetDirectoryName(_libraryFileName),"dll"),"7z.dll");
159-
if ((_modulePtr = libLoader.LoadPlatformSpecific(alternateFilename)) == IntPtr.Zero)
160-
throw new SevenZipLibraryException("failed to load library.");
145+
Init();
161146
}
162-
if (libLoader.GetProcAddr(_modulePtr, "GetHandlerProperty") == IntPtr.Zero)
147+
#if !WINCE && !MONO
148+
if (_modulePtr == IntPtr.Zero)
163149
{
164-
libLoader.FreePlatformSpecific(_modulePtr);
165-
throw new SevenZipLibraryException("library is invalid.");
150+
//zero 29-oct-2012 - this check isnt useful since LoadOrNull can pretty much check for the same thing. and it wrecks our dll relocation scheme
151+
//if (!File.Exists(_libraryFileName))
152+
//{
153+
// throw new SevenZipLibraryException("DLL file does not exist.");
154+
//}
155+
var newPtr = libLoader.LoadOrNull(_libraryFileName);
156+
if (!newPtr.HasValue)
157+
{
158+
//try a different directory
159+
newPtr = libLoader.LoadOrNull(Path.Combine(Path.Combine(Path.GetDirectoryName(_libraryFileName), "dll"), "7z.dll"));
160+
if (!newPtr.HasValue) throw new SevenZipLibraryException("failed to load library.");
161+
}
162+
_modulePtr = newPtr.Value;
163+
164+
if (libLoader.GetProcAddr(_modulePtr, "GetHandlerProperty") == IntPtr.Zero)
165+
{
166+
libLoader.FreeByPtr(_modulePtr);
167+
throw new SevenZipLibraryException("library is invalid.");
168+
}
166169
}
167-
}
168170
#endif
169-
if (format is InArchiveFormat)
170-
{
171-
InitUserInFormat(user, (InArchiveFormat) format);
172-
return;
173-
}
171+
if (format is InArchiveFormat)
172+
{
173+
InitUserInFormat(user, (InArchiveFormat) format);
174+
return;
175+
}
174176
#if COMPRESS
175-
if (format is OutArchiveFormat)
176-
{
177-
InitUserOutFormat(user, (OutArchiveFormat) format);
178-
return;
179-
}
177+
if (format is OutArchiveFormat)
178+
{
179+
InitUserOutFormat(user, (OutArchiveFormat) format);
180+
return;
181+
}
180182
#endif
181-
throw new ArgumentException(
182-
"Enum " + format + " is not a valid archive format attribute!");
183-
}
184-
183+
throw new ArgumentException("Enum " + format + " is not a valid archive format attribute!");
184+
}
185185
}
186186

187187
/*/// <summary>
@@ -435,7 +435,7 @@ public static void FreeLibrary(object user, Enum format)
435435
if (_totalUsers == 0)
436436
{
437437
#if !WINCE && !MONO
438-
libLoader.FreePlatformSpecific(_modulePtr);
438+
libLoader.FreeByPtr(_modulePtr);
439439

440440
#endif
441441
_modulePtr = IntPtr.Zero;

BizHawk.Client.Common/Api/CoreSystem.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ public enum CoreSystem
3434
ZXSpectrum,
3535
AmstradCPC,
3636
GGL,
37-
ChannelF,
3837
GB3x,
39-
GB4x
38+
GB4x,
39+
ChannelF,
40+
MAME
4041
}
4142
}

BizHawk.Client.Common/BizHawk.Client.Common.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
1414
<FileAlignment>512</FileAlignment>
1515
<TargetFrameworkProfile />
16+
<LangVersion>8.0</LangVersion>
1617
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
1718
</PropertyGroup>
1819
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
@@ -127,6 +128,7 @@
127128
<Compile Include="config\ConfigPersistAttribute.cs" />
128129
<Compile Include="config\ConfigService.cs" />
129130
<Compile Include="config\PathEntry.cs" />
131+
<Compile Include="config\RestoreDefaultsAttribute.cs" />
130132
<Compile Include="config\ToolDialogSettings.cs" />
131133
<Compile Include="ControllerBinding.cs" />
132134
<Compile Include="CoreFileProvider.cs" />
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2-
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp60</s:String></wpf:ResourceDictionary>
2+
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp80</s:String></wpf:ResourceDictionary>

BizHawk.Client.Common/OpenAdvanced.cs

+50-6
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public static class OpenAdvancedTypes
3636
public const string OpenRom = "OpenRom";
3737
public const string Libretro = "Libretro";
3838
public const string LibretroNoGame = "LibretroNoGame";
39+
public const string MAME = "MAME";
3940
}
4041

4142

@@ -55,12 +56,33 @@ private static IOpenAdvanced Deserialize(string text)
5556
string type = text.Substring(0, idx);
5657
string token = text.Substring(idx + 1);
5758
IOpenAdvanced ioa;
58-
if (type == OpenAdvancedTypes.OpenRom) ioa = new OpenAdvanced_OpenRom();
59-
else if (type == OpenAdvancedTypes.Libretro) ioa = new OpenAdvanced_Libretro();
60-
else if (type == OpenAdvancedTypes.LibretroNoGame) ioa = new OpenAdvanced_LibretroNoGame();
61-
else ioa = null;
62-
if (ioa == null)
63-
throw new InvalidOperationException($"{nameof(IOpenAdvanced)} deserialization error");
59+
60+
if (type == OpenAdvancedTypes.OpenRom)
61+
{
62+
ioa = new OpenAdvanced_OpenRom();
63+
}
64+
else if (type == OpenAdvancedTypes.Libretro)
65+
{
66+
ioa = new OpenAdvanced_Libretro();
67+
}
68+
else if (type == OpenAdvancedTypes.LibretroNoGame)
69+
{
70+
ioa = new OpenAdvanced_LibretroNoGame();
71+
}
72+
else if (type == OpenAdvancedTypes.MAME)
73+
{
74+
ioa = new OpenAdvanced_MAME();
75+
}
76+
else
77+
{
78+
ioa = null;
79+
}
80+
81+
if (ioa == null)
82+
{
83+
throw new InvalidOperationException($"{nameof(IOpenAdvanced)} deserialization error");
84+
}
85+
6486
ioa.Deserialize(token);
6587
return ioa;
6688
}
@@ -161,4 +183,26 @@ public void Serialize(TextWriter tw)
161183
tw.Write(Path);
162184
}
163185
}
186+
187+
public class OpenAdvanced_MAME : IOpenAdvanced
188+
{
189+
public OpenAdvanced_MAME()
190+
{ }
191+
192+
public string Path;
193+
194+
public string TypeName { get { return "MAME"; } }
195+
public string DisplayName { get { return Path; } }
196+
public string SimplePath { get { return Path; } }
197+
198+
public void Deserialize(string str)
199+
{
200+
Path = str;
201+
}
202+
203+
public void Serialize(TextWriter tw)
204+
{
205+
tw.Write(Path);
206+
}
207+
}
164208
}

BizHawk.Client.Common/RecentFiles.cs

+1-11
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,7 @@ public bool Remove(string newFile)
8989
{
9090
if (!Frozen)
9191
{
92-
var removed = false;
93-
foreach (var recent in recentlist.ToList())
94-
{
95-
if (string.Compare(newFile, recent, StringComparison.CurrentCultureIgnoreCase) == 0)
96-
{
97-
recentlist.Remove(newFile); // intentionally keeps iterating after this to remove duplicate instances, though those should never exist in the first place
98-
removed = true;
99-
}
100-
}
101-
102-
return removed;
92+
return recentlist.RemoveAll(recent => string.Compare(newFile, recent, StringComparison.CurrentCultureIgnoreCase) == 0) != 0; // none removed => return false
10393
}
10494

10595
return false;

BizHawk.Client.Common/RomLoader.cs

+13-4
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
using BizHawk.Emulation.Cores.Sony.PSP;
2525
using BizHawk.Emulation.Cores.Sony.PSX;
2626
using BizHawk.Emulation.Cores.Computers.SinclairSpectrum;
27+
using BizHawk.Emulation.Cores.Arcades.MAME;
2728
using BizHawk.Emulation.DiscSystem;
2829

2930
using GPGX64 = BizHawk.Emulation.Cores.Consoles.Sega.gpgx;
@@ -171,7 +172,7 @@ private bool PreferredPlatformIsDefined(string extension)
171172
return false;
172173
}
173174

174-
public bool AsLibretro { get; set; }
175+
public AdvancedRomLoaderType AdvancedLoader { get; set; }
175176

176177
private bool HandleArchiveBinding(HawkFile file)
177178
{
@@ -268,8 +269,13 @@ public bool LoadRom(string path, CoreComm nextComm, bool forceAccurateCore = fal
268269
// only try mounting a file if a filename was given
269270
if (!string.IsNullOrEmpty(path))
270271
{
271-
// lets not use this unless we need to
272-
// file.NonArchiveExtensions = romExtensions;
272+
// MAME uses these extensions for arcade ROMs, but also accepts all sorts of variations of archives, folders, and files. if we let archive loader handle this, it won't know where to stop, since it'd require MAME's ROM database (which contains ROM names and blob hashes) to look things up, and even then it might be confused by archive/folder structure
273+
// so assume the user provides the proper ROM directly, and handle possible errors later
274+
if (AdvancedLoader == AdvancedRomLoaderType.MAMELaunchGame)
275+
{
276+
file.NonArchiveExtensions = new[] { ".zip", ".7z" };
277+
}
278+
273279
file.Open(path);
274280

275281
// if the provided file doesnt even exist, give up!
@@ -289,7 +295,7 @@ public bool LoadRom(string path, CoreComm nextComm, bool forceAccurateCore = fal
289295
{
290296
string ext = null;
291297

292-
if (AsLibretro)
298+
if (AdvancedLoader == AdvancedRomLoaderType.LibretroLaunchGame)
293299
{
294300
string codePathPart = Path.GetFileNameWithoutExtension(nextComm.LaunchLibretroCore);
295301

@@ -1152,6 +1158,9 @@ public bool LoadRom(string path, CoreComm nextComm, bool forceAccurateCore = fal
11521158
nextEmulator = new Octoshock(nextComm, null, null, rom.FileData, GetCoreSettings<Octoshock>(), GetCoreSyncSettings<Octoshock>());
11531159
nextEmulator.CoreComm.RomStatusDetails = "PSX etc.";
11541160
break;
1161+
case "Arcade":
1162+
nextEmulator = new MAME(nextComm, file.Directory, file.CanonicalName);
1163+
break;
11551164
case "GEN":
11561165
if (Global.Config.CoreForcingViaGameDB && game.ForcedCore?.ToLower() == "pico")
11571166
{

BizHawk.Client.Common/SaveSlotManager.cs

-6
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,6 @@ public bool IsRedo(int slot)
9797
return _redo[slot];
9898
}
9999

100-
public void Clear()
101-
{
102-
ClearRedoList();
103-
Update();
104-
}
105-
106100
public void SwapBackupSavestate(string path)
107101
{
108102
// Takes the .state and .bak files and swaps them

BizHawk.Client.Common/SystemInfo.cs

+5
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,11 @@ private SystemInfo(string displayName, CoreSystem system, int maxControllers, Jo
223223
/// </summary>
224224
public static SystemInfo ChannelF { get; } = new SystemInfo("Channel F", CoreSystem.ChannelF, 2);
225225

226+
/// <summary>
227+
/// Gets the <see cref="SystemInfo"/> instance for MAME
228+
/// </summary>
229+
public static SystemInfo MAME { get; } = new SystemInfo("MAME", CoreSystem.MAME, 4);
230+
226231
#endregion Get SystemInfo
227232

228233
/// <summary>

BizHawk.Client.Common/config/Binding.cs

+1-6
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,8 @@ public void ResolveWithDefaults()
9696
}
9797
}
9898

99-
List<Binding> entriesToRemove = (from entry in Bindings let binding = DefaultValues.FirstOrDefault(b => b.DisplayName == entry.DisplayName) where binding == null select entry).ToList();
100-
10199
// Remove entries that no longer exist in defaults
102-
foreach (Binding entry in entriesToRemove)
103-
{
104-
Bindings.Remove(entry);
105-
}
100+
Bindings.RemoveAll(entry => DefaultValues.All(b => b.DisplayName != entry.DisplayName));
106101
}
107102

108103
private static List<Binding> _defaultValues;

BizHawk.Client.Common/config/Config.cs

+2
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ public class ToomFactors : Dictionary<string, int>
104104
public int MainHeight = -1;
105105
public bool RunInBackground = true;
106106
public bool AcceptBackgroundInput = false;
107+
public bool AcceptBackgroundInputControllerOnly = false;
108+
public bool HandleAlternateKeyboardLayouts = false;
107109
public bool SingleInstanceMode = false;
108110
public bool AllowUD_LR = false;
109111
public bool ForbidUD_LR = false;

0 commit comments

Comments
 (0)