Merge branch 'master' into release
This commit is contained in:
commit
cf70160dcd
|
@ -3701,11 +3701,7 @@ E1FC445D594F33D89DBB033C5A11C66E8F41315C Opium (19xx)(Ludia)(fr)(Side B) AppleI
|
|||
2286E2150CD7EF3B880AD6937CA3B2A1E2980526 Orbizone (1989)(Pangea Software)(SW)(Disk 3 of 3)[graphics 2] AppleII
|
||||
FB0C887C7902106A72327F9797CDD14A254E3228 Oregon Trail (1985)(MECC)(US)(Side A) AppleII
|
||||
8CA19D02C1B3EB35061B97F8640CC338BA129B9F Oregon Trail (1985)(MECC)(US)(Side B) AppleII
|
||||
FB0C887C7902106A72327F9797CDD14A254E3228 Oregon Trail (Disk 1 of 2) AppleII
|
||||
8CA19D02C1B3EB35061B97F8640CC338BA129B9F Oregon Trail (Disk 2 of 2) AppleII
|
||||
430407E976418119A71F4E8A524D05EE2D23F960 Other Side, The (1985)(Tom Snider)[cr Man O War] AppleII
|
||||
FB0C887C7902106A72327F9797CDD14A254E3228 Otrail_1 AppleII
|
||||
8CA19D02C1B3EB35061B97F8640CC338BA129B9F Otrail_2 AppleII
|
||||
BDF98D821CD2A9C1E717D6213232EBACC31892BE Out of This World (1992)(Interplay)(Disk 1 of 2)[non boot] AppleII
|
||||
693F40BF0424B1F512189796C25D8837FD34BF12 Out of This World (1992)(Interplay)(Disk 2 of 2)[non boot] AppleII
|
||||
7B41C9339F47E314830A98957C4785CFCE5646C6 Outliner v1.0 (1988)(MECC)(US)[no boot] AppleII
|
||||
|
@ -5516,7 +5512,6 @@ DB31F1DE00B56AD8FCF35B0EC79242C12CAE12FE ZZZ-UNK-Basic Games_hangman_jigsaw Puz
|
|||
0DD5A4F87B6F109966A5FCED114F39F450EE8C40 ZZZ-UNK-Basic Programs - Hellos - D02s2 (19xx)(-)[Name unknown] AppleII
|
||||
F9C291D3E167B0F693261C6634ACE5504103A4A0 ZZZ-UNK-Bbshow Deltadrawii Ezdraw Graphicstoolbox Jln AppleII
|
||||
99AA686AA7D145A4A8132E27BF924D733B75065C ZZZ-UNK-Blackstone (Wizardry 1 Mod)[PASCAL] AppleII
|
||||
67F5D6AA79E18905D540F7B8E01CE90E40696D44 ZZZ-UNK-Bolo - Cheat Version, Pest Patrol, Serpentine AppleII
|
||||
67F5D6AA79E18905D540F7B8E01CE90E40696D44 ZZZ-UNK-Bolo - cheat version, Pest Patrol, Serpentine AppleII
|
||||
A43AC3294FDCD4E26956792C8A8E65D5BA11E37C ZZZ-UNK-Boot62f0 (19xx)(-)[nb] AppleII
|
||||
B7C43C1F58FD0FC16F805A53072D3A670C11BE68 ZZZ-UNK-Boot62f1 (19xx)(-)[nb] AppleII
|
||||
|
@ -5645,7 +5640,6 @@ FE03EDFF0CF45BAA04AA8D7541CBE78BACE9733E ZZZ-UNK-lode runner data2 AppleII
|
|||
500CD3C79352C49AD029BD6843F2B0957FBD8857 ZZZ-UNK-Looney Tunes Graphics Disk O4b (19xx)(-) AppleII
|
||||
D8D30398A32B5046B1E568A030BE64E0D5B401E2 ZZZ-UNK-Main Hall & Beginners Cave (-) AppleII
|
||||
8D58456CE81AF53F2E798450FE3A55F71DFB9414 ZZZ-UNK-Mario Bros [nb] AppleII
|
||||
67D88DDE7389FB5092C7F7826DBBE2B6D73BC2AF ZZZ-UNK-Mario [compil] AppleII
|
||||
67D88DDE7389FB5092C7F7826DBBE2B6D73BC2AF ZZZ-UNK-mario [compil] AppleII
|
||||
C6BBD0DB1E2E05987CC752547ADDF8827C4BF29D ZZZ-UNK-Misc Catdialers AppleII
|
||||
58F6DD77A9376AB49ABC3CE39705F6258C21268D ZZZ-UNK-Misc Disk Utils (19xx)(-) AppleII
|
||||
|
|
|
@ -465,7 +465,6 @@ A70C6B0E90E7B8BA3E5BC06C9AE7D6AF344E491F Juno First (Japan) (Alt 1)" MSX1
|
|||
846BD4D89BD034AC5346CBC559752635AD2BDA6B Juno First (Japan)" MSX1
|
||||
4991DC097E248436506ED5C8BC3F367A65267EE7 Jyan Friend (Japan)" MSX1
|
||||
17E1111B1D6AA80E8BC525BE345C25E3B00ED504 Jyankyo (Japan)" MSX1
|
||||
C6227431BFBC3AA921120EC3DA7F6429A1A799A0 Jyanyuu (Japan)" MSX1
|
||||
666E82D8A8E5D2672A9B7159ADCDC861A31C8FA1 Kage no Densetsu - Legend of Kage, The (Japan) (Alt 1)" MSX1
|
||||
FFC8C57B26F2F495BD77EFAC5B815EFE9C25336C Kage no Densetsu - Legend of Kage, The (Japan)" MSX1
|
||||
632EF250C76B222158BA90DFC68B9E004DBAFE3A Kakikukekon (Japan) (Program)" MSX1
|
||||
|
|
|
@ -19,8 +19,10 @@
|
|||
;games which might be good according to goodNES, but which are almost positively not according to bootgod, who has dumps with different hashes
|
||||
;these we tend to mark as Unknown, because maybe these are variants of the cart which bootgod didnt happen to dump, or maybe bootgod's is wrong (?)
|
||||
sha1:E80FF0B707B0D675FDBEF474E3FDB1A83E2B7C44 U Mississippi Satsujin Jiken (J) NES board=JALECO-JF-11;PRG=128;CHR=32;PAD_H=1
|
||||
;GoodNES marks the following (alt) rom as B [h2]
|
||||
sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C U Mississippi Satsujin Jiken (Alt) (J) NES board=MAPPER066;PRG=128;CHR=32;PAD_H=1
|
||||
|
||||
|
||||
;possibly good roms for games which arent in bootgod's db yet, most likely due to obscurity or incompleteness at the present.
|
||||
;when they appear in bootgod's db then we can re-evaluate this category.
|
||||
sha1:91CECCFCAC90E417E9AEE80E8F7B560A20EB33CC Ai Sensei No Oshiete Watashi No Hoshi (J) NES board=IREM-G101;PRG=256;CHR=128;WRAM=8
|
||||
|
@ -96,7 +98,6 @@ sha1:2028940CF7C757A3A7931A741D5EC79C3554D38C O Wally Bear and the No Gang (AVE)
|
|||
;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------
|
||||
;these roms are in goodNES but theyre junk. hacks, mostly. ideally we would put ever game from goodNES that was labeled as a hack in a list here.
|
||||
sha1:111D38E2FB41D0B43753E18757D427A91B0DBCB9 H Dragon Ball Z II Gekishin Freeza!! (J) NES board=BANDAI-LZ93D50+24C02;PRG=256;CHR=256;WRAM=0
|
||||
sha1:A907E600CEDA175ECD115B406B28155397A4C1FA H Dragon Ball Z Gaiden Saiya Jin Zetsumetsu Keikaku (CH) NES board=BANDAI-FCG-1;PRG=512;CHR=256;WRAM=0
|
||||
sha1:A13EAF0132905FBE3D0456BB075028A30C084D0E H Dragon Ball Dai Maou Fukkatsu (J) [hFFE] NES board=BANDAI-FCG-1;PRG=128;CHR=128;WRAM=0;VRAM=0
|
||||
sha1:8885F4F00C0B73C156179BCEABA5381487DBEAAD H Spy vs Spy (J) NES board=HVC-CNROM-256K-01;PRG=32;CHR=8;WRAM=8
|
||||
sha1:8C676CC9BEF5B93C5A7630D12B8A5B2FEBCE3438 H Rad Racket Deluxe Tennis II NES board=NINA-06;PRG=32;CHR=32
|
||||
|
@ -169,7 +170,6 @@ sha1:12DDD9EDB8894C200C9D89B9EE5673F1202ABA19 Falsion (FDS Conversion, Whirlwin
|
|||
sha1:D6E9F3722CFA26CBC582649F197D780809F575CA O Family Circuit '91 (J) [o1] NES board=MAPPER210;PAD_V=1;PAD_H=0
|
||||
sha1:387E7B477F5A61A165A41CD2BFE8A467B3816323 O Family Circuit '91 (J) [o2] NES board=MAPPER210;PAD_V=1;PAD_H=0
|
||||
sha1:68ADA89BC7539679871AD14C5C1FFADF04D71280 O Family Circuit '91 (J) [o3] NES board=MAPPER210;PAD_V=1;PAD_H=0
|
||||
sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C B Mississippi Satsujin Jiken (J) [h2] NES board=MAPPER066
|
||||
sha1:C1F7AD0A347078B9213B2748D4ADFF33305A6647 O Mississippi Satsujin Jiken (J) [h2][o1] NES board=MAPPER066
|
||||
sha1:4BBD4C55C37F531031177DE51F007B10418AD760 O Pyramid (AVE) (PRG1) [o1] NES board=MAPPER000
|
||||
sha1:BAF860940369C54B3FF547DA7E759515015B1131 O Pyramid (AVE) (PRG1) [o2] NES board=MAPPER000
|
||||
|
@ -180,7 +180,6 @@ sha1:43E3ED6480E7BF32FFAF1AEBC7F534E0A9B775E6 T Super Mario Bros 2 (Lost Levels)
|
|||
sha1:F32E366828DCA94A612DD39613858DD8E26FA2DC T Thunder & Lightning (U) [t1] NES board=MAPPER066;WRAM=0
|
||||
sha1:8554112E83B5978F5D4EC6E4551F390D5F698E00 B U-Force Power Games (U) (Prototype2) (Defaced by NA) [b1] NES board=NES-GNROM;WRAM=0
|
||||
sha1:A6A0A3DC8438558FA5DA3AF8D3349AA8CF080404 Xi You Ji Hou Zhuan (Ch) NES board=MAPPER162
|
||||
sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 B 800-in-1 [p1][b1] NES board=MAPPER236
|
||||
sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 G 800-in-1 [p1][U] NES board=MAPPER236;VRAM=8
|
||||
sha1:BD167D1BCC9A008D04136EB91396EBEBCAC976E2 B R.B.I. Baseball (Tengen) [b] NES board=TENGEN-800002;WRAM=0;PAD_H=1;PAD_V=0
|
||||
sha1:DEE958845DC528BED899557FB2A8A3B61F1BA7D1 Bao Xiao San Guo (Ch) [a4] NES board=WAIXINGMAPPER176
|
||||
|
@ -289,7 +288,6 @@ sha1:B5C4E5E858113F5AA5E063BC79A12D7F6B856E6C Contra (Konami Collection 2002) N
|
|||
|
||||
;chinese shit
|
||||
sha1:BFA31777E077E64AF0E274B5A22B57C6765D36E1 Fan Kong Jing Ying (Unl) (Ch) NES board=MAPPER241;MIR=H
|
||||
sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (Ch) NES board=MAPPER176
|
||||
sha1:0B58E16B7FD5ABE62B1D9B1841875582DF5A9195 Ying Lie Qun Xia Zhuan (Ch) NES board=MAPPER192
|
||||
sha1:27CB8AEAF0EA97A6C69D3D90BC056C5EB61695F6 Dai-2-Ji Super Robot Taisen (Ch) NES board=MAPPER194;VRAM=2
|
||||
sha1:F5FA7807F2B70ADFE5707D9BF88F90DAC1436DB0 Di 4 Ci Ji Qi Ren Dai Zhan (Ch) NES board=MAPPER074;VRAM=2
|
||||
|
|
|
@ -1,34 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>..\output\dll\BizHawk.Client.ApiHawk.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile>..\output\dll\BizHawk.Client.ApiHawk.XML</DocumentationFile>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<DocumentationFile>..\output\dll\BizHawk.Client.ApiHawk.XML</DocumentationFile>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
|
|
|
@ -13,42 +13,31 @@
|
|||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;DOTNET20;UNMANAGED;COMPRESS;WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE;DOTNET20;UNMANAGED;COMPRESS;WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ICSharpCode.SharpZipLib">
|
||||
|
@ -58,7 +47,7 @@
|
|||
<HintPath>..\References\Ionic.Zip.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="LuaInterface">
|
||||
<HintPath>..\References\$(Platform)\LuaInterface.dll</HintPath>
|
||||
<HintPath>..\References\x64\LuaInterface.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
|
@ -66,6 +55,10 @@
|
|||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.105.2, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\References\x64\SQLite\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
|
@ -161,6 +154,7 @@
|
|||
<Compile Include="lua\EmuLuaLibrary.Movie.cs" />
|
||||
<Compile Include="lua\EmuLuaLibrary.NES.cs" />
|
||||
<Compile Include="lua\EmuLuaLibrary.SNES.cs" />
|
||||
<Compile Include="lua\EmuLuaLibrary.SQL.cs" />
|
||||
<Compile Include="lua\EmuLuaLibrary.String.cs" />
|
||||
<Compile Include="lua\EmuLuaLibrary.UserData.cs" />
|
||||
<Compile Include="lua\EnvironmentSandbox.cs" />
|
||||
|
|
|
@ -45,44 +45,23 @@ namespace BizHawk.Client.Common
|
|||
/// <summary>
|
||||
/// Gets absolute base as derived from EXE
|
||||
/// </summary>
|
||||
public static string GetBasePathAbsolute()
|
||||
public static string GetGlobalBasePathAbsolute()
|
||||
{
|
||||
if (Global.Config.PathEntries.GlobalBaseFragment.Length < 1) // If empty, then EXE path
|
||||
{
|
||||
return GetExeDirectoryAbsolute();
|
||||
}
|
||||
var gbase = Global.Config.PathEntries.GlobalBaseFragment;
|
||||
|
||||
if (Global.Config.PathEntries.GlobalBaseFragment.Length >= 5
|
||||
&& Global.Config.PathEntries.GlobalBaseFragment.Substring(0, 5) == "%exe%")
|
||||
{
|
||||
return GetExeDirectoryAbsolute();
|
||||
}
|
||||
// if %exe% prefixed then substitute exe path and repeat
|
||||
if(gbase.StartsWith("%exe%",StringComparison.InvariantCultureIgnoreCase))
|
||||
gbase = GetExeDirectoryAbsolute() + gbase.Substring(5);
|
||||
|
||||
if (Global.Config.PathEntries.GlobalBaseFragment[0] == '.')
|
||||
{
|
||||
if (Global.Config.PathEntries.GlobalBaseFragment.Length == 1)
|
||||
{
|
||||
return GetExeDirectoryAbsolute();
|
||||
}
|
||||
//rooted paths get returned without change
|
||||
//(this is done after keyword substitution to avoid problems though)
|
||||
if (Path.IsPathRooted(gbase))
|
||||
return gbase;
|
||||
|
||||
if (Global.Config.PathEntries.GlobalBaseFragment.Length == 2 &&
|
||||
Global.Config.PathEntries.GlobalBaseFragment == ".\\")
|
||||
{
|
||||
return GetExeDirectoryAbsolute();
|
||||
}
|
||||
//not-rooted things are relative to exe path
|
||||
gbase = Path.Combine(GetExeDirectoryAbsolute(), gbase);
|
||||
|
||||
var tmp = Global.Config.PathEntries.GlobalBaseFragment.Remove(0, 1);
|
||||
tmp = tmp.Insert(0, GetExeDirectoryAbsolute());
|
||||
return tmp;
|
||||
}
|
||||
|
||||
if (Global.Config.PathEntries.GlobalBaseFragment.Substring(0, 2) == "..")
|
||||
{
|
||||
return RemoveParents(Global.Config.PathEntries.GlobalBaseFragment, GetExeDirectoryAbsolute());
|
||||
}
|
||||
|
||||
// In case of error, return EXE path
|
||||
return GetExeDirectoryAbsolute();
|
||||
return gbase;
|
||||
}
|
||||
|
||||
public static string GetPlatformBase(string system)
|
||||
|
@ -106,7 +85,7 @@ namespace BizHawk.Client.Common
|
|||
// This function translates relative path and special identifiers in absolute paths
|
||||
if (path.Length < 1)
|
||||
{
|
||||
return GetBasePathAbsolute();
|
||||
return GetGlobalBasePathAbsolute();
|
||||
}
|
||||
|
||||
if (path == "%recent%")
|
||||
|
@ -136,13 +115,13 @@ namespace BizHawk.Client.Common
|
|||
|
||||
if (path.Length == 1)
|
||||
{
|
||||
return GetBasePathAbsolute();
|
||||
return GetGlobalBasePathAbsolute();
|
||||
}
|
||||
|
||||
if (path[0] == '.')
|
||||
{
|
||||
path = path.Remove(0, 1);
|
||||
path = path.Insert(0, GetBasePathAbsolute());
|
||||
path = path.Insert(0, GetGlobalBasePathAbsolute());
|
||||
}
|
||||
|
||||
return path;
|
||||
|
@ -414,7 +393,7 @@ namespace BizHawk.Client.Common
|
|||
public static string TryMakeRelative(string absolutePath, string system = null)
|
||||
{
|
||||
var parentPath = string.IsNullOrWhiteSpace(system) ?
|
||||
GetBasePathAbsolute() :
|
||||
GetGlobalBasePathAbsolute() :
|
||||
MakeAbsolutePath(GetPlatformBase(system), system);
|
||||
|
||||
if (IsSubfolder(parentPath, absolutePath))
|
||||
|
|
|
@ -16,24 +16,23 @@ namespace BizHawk.Client.Common
|
|||
#region Structs
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
private class Bitmapfileheader
|
||||
private class BITMAPFILEHEADER
|
||||
{
|
||||
public readonly uint bfSize;
|
||||
public ushort bfType;
|
||||
|
||||
public uint bfSize;
|
||||
public ushort bfReserved1;
|
||||
public ushort bfReserved2;
|
||||
public uint bfOffBits;
|
||||
|
||||
public Bitmapfileheader()
|
||||
public BITMAPFILEHEADER()
|
||||
{
|
||||
bfSize = (uint)Marshal.SizeOf(this);
|
||||
}
|
||||
|
||||
public static Bitmapfileheader FromStream(Stream s)
|
||||
public static BITMAPFILEHEADER FromStream(Stream s)
|
||||
{
|
||||
var ret = GetObject<Bitmapfileheader>(s);
|
||||
if (ret.bfSize != Marshal.SizeOf(typeof(Bitmapfileheader)))
|
||||
var ret = GetObject<BITMAPFILEHEADER>(s);
|
||||
if (ret.bfSize != Marshal.SizeOf(typeof(BITMAPFILEHEADER)))
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
@ -42,10 +41,11 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private class Bitmapinfoheader
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
private class BITMAPINFOHEADER
|
||||
{
|
||||
public readonly uint biSize;
|
||||
public uint biSize;
|
||||
|
||||
public int biWidth;
|
||||
public int biHeight;
|
||||
public ushort biPlanes;
|
||||
|
@ -57,15 +57,15 @@ namespace BizHawk.Client.Common
|
|||
public uint biClrUsed;
|
||||
public uint biClrImportant;
|
||||
|
||||
public Bitmapinfoheader()
|
||||
public BITMAPINFOHEADER()
|
||||
{
|
||||
biSize = (uint)Marshal.SizeOf(this);
|
||||
}
|
||||
|
||||
public static Bitmapinfoheader FromStream(Stream s)
|
||||
public static BITMAPINFOHEADER FromStream(Stream s)
|
||||
{
|
||||
var ret = GetObject<Bitmapinfoheader>(s);
|
||||
if (ret.biSize != Marshal.SizeOf(typeof(Bitmapinfoheader)))
|
||||
var ret = GetObject<BITMAPINFOHEADER>(s);
|
||||
if (ret.biSize != Marshal.SizeOf(typeof(BITMAPINFOHEADER)))
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
@ -244,8 +244,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static unsafe bool Load(IVideoProvider v, Stream s)
|
||||
{
|
||||
var bf = Bitmapfileheader.FromStream(s);
|
||||
var bi = Bitmapinfoheader.FromStream(s);
|
||||
var bf = BITMAPFILEHEADER.FromStream(s);
|
||||
var bi = BITMAPINFOHEADER.FromStream(s);
|
||||
if (bf.bfType != 0x4d42
|
||||
|| bf.bfOffBits != bf.bfSize + bi.biSize
|
||||
|| bi.biPlanes != 1
|
||||
|
@ -295,8 +295,8 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static unsafe void Save(IVideoProvider v, Stream s, int w, int h)
|
||||
{
|
||||
var bf = new Bitmapfileheader();
|
||||
var bi = new Bitmapinfoheader();
|
||||
var bf = new BITMAPFILEHEADER();
|
||||
var bi = new BITMAPINFOHEADER();
|
||||
bf.bfType = 0x4d42;
|
||||
bf.bfOffBits = bf.bfSize + bi.biSize;
|
||||
|
||||
|
|
|
@ -0,0 +1,145 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Data.SQLite;
|
||||
using LuaInterface;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
{
|
||||
[Description("A library for performing SQLite operations.")]
|
||||
public sealed class SQLLuaLibrary : LuaLibraryBase
|
||||
{
|
||||
public SQLLuaLibrary(Lua lua)
|
||||
: base(lua) { }
|
||||
|
||||
public SQLLuaLibrary(Lua lua, Action<string> logOutputCallback)
|
||||
: base(lua, logOutputCallback) { }
|
||||
|
||||
public override string Name => "SQL";
|
||||
|
||||
SQLiteConnection m_dbConnection;
|
||||
string connectionString;
|
||||
|
||||
[LuaMethodAttributes("createdatabase","Creates a SQLite Database. Name should end with .db")]
|
||||
public string CreateDatabase(string name)
|
||||
{
|
||||
try
|
||||
{
|
||||
SQLiteConnection.CreateFile(name);
|
||||
return "Database Created Successfully";
|
||||
}
|
||||
catch (SQLiteException sqlEX)
|
||||
{
|
||||
return sqlEX.Message;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
[LuaMethodAttributes("opendatabase", "Opens a SQLite database. Name should end with .db")]
|
||||
public string OpenDatabase(string name)
|
||||
{
|
||||
try
|
||||
{
|
||||
SQLiteConnectionStringBuilder connBuilder = new SQLiteConnectionStringBuilder();
|
||||
connBuilder.DataSource = name;
|
||||
connBuilder.Version = 3; //SQLite version
|
||||
connBuilder.JournalMode = SQLiteJournalModeEnum.Wal; //Allows for reads and writes to happen at the same time
|
||||
connBuilder.DefaultIsolationLevel = System.Data.IsolationLevel.ReadCommitted; //This only helps make the database lock left. May be pointless now
|
||||
connBuilder.SyncMode = SynchronizationModes.Off; //This shortens the delay for do synchronous calls.
|
||||
m_dbConnection = new SQLiteConnection(connBuilder.ToString());
|
||||
connectionString = connBuilder.ToString();
|
||||
m_dbConnection.Open();
|
||||
m_dbConnection.Close();
|
||||
return "Database Opened Successfully";
|
||||
}
|
||||
catch(SQLiteException sqlEX)
|
||||
{
|
||||
return sqlEX.Message;
|
||||
}
|
||||
}
|
||||
|
||||
[LuaMethodAttributes("writecommand", "Runs a SQLite write command which includes CREATE,INSERT, UPDATE. " +
|
||||
"Ex: create TABLE rewards (ID integer PRIMARY KEY, action VARCHAR(20)) ")]
|
||||
public string WriteCommand(string query="")
|
||||
{
|
||||
if (query == "")
|
||||
{
|
||||
return "query is empty";
|
||||
}
|
||||
try
|
||||
{
|
||||
m_dbConnection.Open();
|
||||
string sql = query;
|
||||
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
|
||||
command.ExecuteNonQuery();
|
||||
m_dbConnection.Close();
|
||||
|
||||
return "Command ran successfully";
|
||||
|
||||
}
|
||||
catch (NullReferenceException nullEX)
|
||||
{
|
||||
return "Database not open.";
|
||||
}
|
||||
catch(SQLiteException sqlEX)
|
||||
{
|
||||
m_dbConnection.Close();
|
||||
return sqlEX.Message;
|
||||
}
|
||||
}
|
||||
|
||||
[LuaMethodAttributes("readcommand", "Run a SQLite read command which includes Select. Returns all rows into a LuaTable." +
|
||||
"Ex: select * from rewards")]
|
||||
public dynamic ReadCommand(string query="")
|
||||
{
|
||||
if (query=="")
|
||||
{
|
||||
return "query is empty";
|
||||
}
|
||||
try
|
||||
{
|
||||
var table = Lua.NewTable();
|
||||
m_dbConnection.Open();
|
||||
string sql = "PRAGMA read_uncommitted =1;"+query;
|
||||
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
|
||||
SQLiteDataReader reader = command.ExecuteReader();
|
||||
bool rows=reader.HasRows;
|
||||
long rowCount = 0;
|
||||
var columns = new List<string>();
|
||||
for (int i = 0; i < reader.FieldCount; ++i) //Add all column names into list
|
||||
{
|
||||
columns.Add(reader.GetName(i));
|
||||
}
|
||||
while (reader.Read())
|
||||
{
|
||||
for (int i = 0; i < reader.FieldCount; ++i)
|
||||
{
|
||||
table[columns[i]+" "+rowCount.ToString()] = reader.GetValue(i);
|
||||
}
|
||||
rowCount += 1;
|
||||
}
|
||||
reader.Close();
|
||||
m_dbConnection.Close();
|
||||
if (rows==false)
|
||||
{
|
||||
return "No rows found";
|
||||
}
|
||||
|
||||
return table;
|
||||
|
||||
}
|
||||
catch (NullReferenceException)
|
||||
{
|
||||
return "Database not opened.";
|
||||
}
|
||||
catch (SQLiteException sqlEX)
|
||||
{
|
||||
m_dbConnection.Close();
|
||||
return sqlEX.Message;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -215,7 +215,7 @@ namespace BizHawk.Client.Common
|
|||
diff = "-";
|
||||
}
|
||||
|
||||
return $"{diff}{FormatValue((byte)Math.Abs(diffVal))}";
|
||||
return $"{diff}{((byte)Math.Abs(diffVal))}";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -231,7 +231,7 @@ namespace BizHawk.Client.Common
|
|||
/// Get a string representation of difference
|
||||
/// between current value and the previous one
|
||||
/// </summary>
|
||||
public override string Diff => FormatValue(_previous - _value);
|
||||
public override string Diff => (_previous - _value).ToString();
|
||||
|
||||
/// <summary>
|
||||
/// Get the maximum possible value
|
||||
|
|
|
@ -229,7 +229,7 @@ namespace BizHawk.Client.Common
|
|||
diff = "-";
|
||||
}
|
||||
|
||||
return $"{diff}{FormatValue((ushort)Math.Abs(diffVal))}";
|
||||
return $"{diff}{((ushort)Math.Abs(diffVal))}";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,37 +2,27 @@
|
|||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<StartupObject />
|
||||
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
|
|
|
@ -42,42 +42,28 @@
|
|||
<PropertyGroup>
|
||||
<ApplicationIcon>discohawk.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
|
@ -35,47 +36,32 @@
|
|||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<NoWin32Manifest>true</NoWin32Manifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>WINDOWS;DEBUG</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="GongShell">
|
||||
|
@ -84,9 +70,8 @@
|
|||
<Reference Include="ICSharpCode.SharpZipLib">
|
||||
<HintPath>..\References\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="LuaInterface, Version=2.0.4.35439, Culture=neutral, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\References\$(Platform)\LuaInterface.dll</HintPath>
|
||||
<Reference Include="LuaInterface">
|
||||
<HintPath>..\References\x64\LuaInterface.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.VisualBasic" Condition=" '$(OS)' == 'Windows_NT' " />
|
||||
|
@ -97,9 +82,8 @@
|
|||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\References\OpenTK.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SlimDX, Version=4.0.10.43, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\References\$(Platform)\SlimDX.dll</HintPath>
|
||||
<Reference Include="SlimDX">
|
||||
<HintPath>..\References\x64\SlimDX.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core">
|
||||
|
@ -2158,7 +2142,8 @@
|
|||
</Target>
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>..\Build\BizHawk.Build.Tool.exe LARGEADDRESS --value 1 --target "$(TargetPath)"</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">"$(SolutionDir)subwcrev.bat" "$(ProjectDir)"</PreBuildEvent>
|
||||
|
|
|
@ -395,6 +395,9 @@ namespace BizHawk.Client.EmuHawk.Filters
|
|||
XIS = OutputSize.Width / state.SurfaceFormat.Size.Width;
|
||||
YIS = OutputSize.Height / state.SurfaceFormat.Size.Height;
|
||||
|
||||
if (XIS == 0) XIS = 1;
|
||||
if (YIS == 0) YIS = 1;
|
||||
|
||||
OutputSize = state.SurfaceFormat.Size;
|
||||
|
||||
if (XIS <= 1 && YIS <= 1)
|
||||
|
|
|
@ -188,7 +188,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (attachedConsole)
|
||||
{
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("use cmd /c {0} to get more sensible console behaviour", Path.GetFileName(PathManager.GetBasePathAbsolute()));
|
||||
Console.WriteLine("use cmd /c {0} to get more sensible console behaviour", Path.GetFileName(PathManager.GetGlobalBasePathAbsolute()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -295,10 +295,10 @@
|
|||
this.AutoloadKeypadMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.paletteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AtariSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AtariSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.A7800SubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.A7800ControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.GBSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AtariSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.A7800SubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.A7800ControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.GBSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.GBcoreSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.LoadGBInSGBMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator28 = new System.Windows.Forms.ToolStripSeparator();
|
||||
|
@ -456,8 +456,8 @@
|
|||
this.SMSSubMenu,
|
||||
this.TI83SubMenu,
|
||||
this.AtariSubMenu,
|
||||
this.A7800SubMenu,
|
||||
this.GBSubMenu,
|
||||
this.A7800SubMenu,
|
||||
this.GBSubMenu,
|
||||
this.GBASubMenu,
|
||||
this.PSXSubMenu,
|
||||
this.SNESSubMenu,
|
||||
|
@ -1825,12 +1825,14 @@
|
|||
this.QuicknesCoreMenuItem.Name = "QuicknesCoreMenuItem";
|
||||
this.QuicknesCoreMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.QuicknesCoreMenuItem.Text = "QuickNES";
|
||||
this.QuicknesCoreMenuItem.Click += new System.EventHandler(this.NesCorePick_Click);
|
||||
//
|
||||
// NesCoreMenuItem
|
||||
//
|
||||
this.NesCoreMenuItem.Name = "NesCoreMenuItem";
|
||||
this.NesCoreMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.NesCoreMenuItem.Text = "NesHawk";
|
||||
this.NesCoreMenuItem.Click += new System.EventHandler(this.NesCorePick_Click);
|
||||
//
|
||||
// CoreSNESSubMenu
|
||||
//
|
||||
|
@ -1845,14 +1847,14 @@
|
|||
// Coresnes9xMenuItem
|
||||
//
|
||||
this.Coresnes9xMenuItem.Name = "Coresnes9xMenuItem";
|
||||
this.Coresnes9xMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.Coresnes9xMenuItem.Size = new System.Drawing.Size(109, 22);
|
||||
this.Coresnes9xMenuItem.Text = "Snes9x";
|
||||
this.Coresnes9xMenuItem.Click += new System.EventHandler(this.CoreSnesToggle_Click);
|
||||
//
|
||||
// CorebsnesMenuItem
|
||||
//
|
||||
this.CorebsnesMenuItem.Name = "CorebsnesMenuItem";
|
||||
this.CorebsnesMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.CorebsnesMenuItem.Size = new System.Drawing.Size(109, 22);
|
||||
this.CorebsnesMenuItem.Text = "BSNES";
|
||||
this.CorebsnesMenuItem.Click += new System.EventHandler(this.CoreSnesToggle_Click);
|
||||
//
|
||||
|
@ -2487,7 +2489,7 @@
|
|||
this.SMSregionJapanToolStripMenuItem,
|
||||
this.SMSregionAutoToolStripMenuItem});
|
||||
this.SMSregionToolStripMenuItem.Name = "SMSregionToolStripMenuItem";
|
||||
this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSregionToolStripMenuItem.Text = "Region";
|
||||
//
|
||||
// SMSregionExportToolStripMenuItem
|
||||
|
@ -2518,7 +2520,7 @@
|
|||
this.SMSdisplayPalToolStripMenuItem,
|
||||
this.SMSdisplayAutoToolStripMenuItem});
|
||||
this.SMSdisplayToolStripMenuItem.Name = "SMSdisplayToolStripMenuItem";
|
||||
this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSdisplayToolStripMenuItem.Text = "Display Type";
|
||||
//
|
||||
// SMSdisplayNtscToolStripMenuItem
|
||||
|
@ -2545,94 +2547,94 @@
|
|||
// SMStoolStripMenuItem2
|
||||
//
|
||||
this.SMStoolStripMenuItem2.Name = "SMStoolStripMenuItem2";
|
||||
this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(238, 6);
|
||||
this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(274, 6);
|
||||
//
|
||||
// SMSenableBIOSToolStripMenuItem
|
||||
//
|
||||
this.SMSenableBIOSToolStripMenuItem.Name = "SMSenableBIOSToolStripMenuItem";
|
||||
this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSenableBIOSToolStripMenuItem.Text = "Enable BIOS (Must be Enabled for TAS)";
|
||||
this.SMSenableBIOSToolStripMenuItem.Click += new System.EventHandler(this.SmsBiosMenuItem_Click);
|
||||
//
|
||||
// SMSEnableFMChipMenuItem
|
||||
//
|
||||
this.SMSEnableFMChipMenuItem.Name = "SMSEnableFMChipMenuItem";
|
||||
this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSEnableFMChipMenuItem.Text = "&Enable FM Chip";
|
||||
this.SMSEnableFMChipMenuItem.Click += new System.EventHandler(this.SmsEnableFmChipMenuItem_Click);
|
||||
//
|
||||
// SMSOverclockMenuItem
|
||||
//
|
||||
this.SMSOverclockMenuItem.Name = "SMSOverclockMenuItem";
|
||||
this.SMSOverclockMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSOverclockMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSOverclockMenuItem.Text = "&Overclock when Known Safe";
|
||||
this.SMSOverclockMenuItem.Click += new System.EventHandler(this.SMSOverclockMenuItem_Click);
|
||||
//
|
||||
// SMSForceStereoMenuItem
|
||||
//
|
||||
this.SMSForceStereoMenuItem.Name = "SMSForceStereoMenuItem";
|
||||
this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSForceStereoMenuItem.Text = "&Force Stereo Separation";
|
||||
this.SMSForceStereoMenuItem.Click += new System.EventHandler(this.SMSForceStereoMenuItem_Click);
|
||||
//
|
||||
// SMSSpriteLimitMenuItem
|
||||
//
|
||||
this.SMSSpriteLimitMenuItem.Name = "SMSSpriteLimitMenuItem";
|
||||
this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSSpriteLimitMenuItem.Text = "Sprite &Limit";
|
||||
this.SMSSpriteLimitMenuItem.Click += new System.EventHandler(this.SMSSpriteLimitMenuItem_Click);
|
||||
//
|
||||
// SMSDisplayOverscanMenuItem
|
||||
//
|
||||
this.SMSDisplayOverscanMenuItem.Name = "SMSDisplayOverscanMenuItem";
|
||||
this.SMSDisplayOverscanMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSDisplayOverscanMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSDisplayOverscanMenuItem.Text = "Display Overscan";
|
||||
this.SMSDisplayOverscanMenuItem.Click += new System.EventHandler(this.SMSDisplayOverscanMenuItem_Click);
|
||||
//
|
||||
// SMSFix3DGameDisplayToolStripMenuItem
|
||||
//
|
||||
this.SMSFix3DGameDisplayToolStripMenuItem.Name = "SMSFix3DGameDisplayToolStripMenuItem";
|
||||
this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSFix3DGameDisplayToolStripMenuItem.Text = "Fix 3D Game Display";
|
||||
this.SMSFix3DGameDisplayToolStripMenuItem.Click += new System.EventHandler(this.SMSFix3DDisplayMenuItem_Click);
|
||||
//
|
||||
// ShowClippedRegionsMenuItem
|
||||
//
|
||||
this.ShowClippedRegionsMenuItem.Name = "ShowClippedRegionsMenuItem";
|
||||
this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.ShowClippedRegionsMenuItem.Text = "&Show Clipped Regions";
|
||||
this.ShowClippedRegionsMenuItem.Click += new System.EventHandler(this.ShowClippedRegionsMenuItem_Click);
|
||||
//
|
||||
// HighlightActiveDisplayRegionMenuItem
|
||||
//
|
||||
this.HighlightActiveDisplayRegionMenuItem.Name = "HighlightActiveDisplayRegionMenuItem";
|
||||
this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.HighlightActiveDisplayRegionMenuItem.Text = "&Highlight Active Display Region";
|
||||
this.HighlightActiveDisplayRegionMenuItem.Click += new System.EventHandler(this.HighlightActiveDisplayRegionMenuItem_Click);
|
||||
//
|
||||
// SMSGraphicsSettingsMenuItem
|
||||
//
|
||||
this.SMSGraphicsSettingsMenuItem.Name = "SMSGraphicsSettingsMenuItem";
|
||||
this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSGraphicsSettingsMenuItem.Text = "&Graphics Settings...";
|
||||
this.SMSGraphicsSettingsMenuItem.Click += new System.EventHandler(this.SMSGraphicsSettingsMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator24
|
||||
//
|
||||
this.toolStripSeparator24.Name = "toolStripSeparator24";
|
||||
this.toolStripSeparator24.Size = new System.Drawing.Size(238, 6);
|
||||
this.toolStripSeparator24.Size = new System.Drawing.Size(274, 6);
|
||||
//
|
||||
// SMSVDPViewerToolStripMenuItem
|
||||
//
|
||||
this.SMSVDPViewerToolStripMenuItem.Name = "SMSVDPViewerToolStripMenuItem";
|
||||
this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.SMSVDPViewerToolStripMenuItem.Text = "&VDP Viewer";
|
||||
this.SMSVDPViewerToolStripMenuItem.Click += new System.EventHandler(this.SmsVdpViewerMenuItem_Click);
|
||||
//
|
||||
// GGGameGenieMenuItem
|
||||
//
|
||||
this.GGGameGenieMenuItem.Name = "GGGameGenieMenuItem";
|
||||
this.GGGameGenieMenuItem.Size = new System.Drawing.Size(241, 22);
|
||||
this.GGGameGenieMenuItem.Size = new System.Drawing.Size(277, 22);
|
||||
this.GGGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder";
|
||||
this.GGGameGenieMenuItem.Click += new System.EventHandler(this.GGGameGenieMenuItem_Click);
|
||||
//
|
||||
|
@ -2699,26 +2701,26 @@
|
|||
this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
|
||||
this.AtariSettingsToolStripMenuItem.Text = "Settings...";
|
||||
this.AtariSettingsToolStripMenuItem.Click += new System.EventHandler(this.AtariSettingsToolStripMenuItem_Click);
|
||||
//
|
||||
// A7800SubMenu
|
||||
//
|
||||
this.A7800SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.A7800ControllerSettingsMenuItem});
|
||||
this.A7800SubMenu.Name = "A7800SubMenu";
|
||||
this.A7800SubMenu.Size = new System.Drawing.Size(56, 19);
|
||||
this.A7800SubMenu.Text = "&A7800";
|
||||
this.A7800SubMenu.DropDownOpened += new System.EventHandler(this.A7800SubMenu_DropDownOpened);
|
||||
//
|
||||
// A7800SettingsToolStripMenuItem
|
||||
//
|
||||
this.A7800ControllerSettingsMenuItem.Name = "A7800ControllerSettingsMenuItem";
|
||||
this.A7800ControllerSettingsMenuItem.Size = new System.Drawing.Size(125, 22);
|
||||
this.A7800ControllerSettingsMenuItem.Text = "Settings...";
|
||||
this.A7800ControllerSettingsMenuItem.Click += new System.EventHandler(this.A7800SettingsToolStripMenuItem_Click);
|
||||
//
|
||||
// GBSubMenu
|
||||
//
|
||||
this.GBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
//
|
||||
// A7800SubMenu
|
||||
//
|
||||
this.A7800SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.A7800ControllerSettingsMenuItem});
|
||||
this.A7800SubMenu.Name = "A7800SubMenu";
|
||||
this.A7800SubMenu.Size = new System.Drawing.Size(51, 19);
|
||||
this.A7800SubMenu.Text = "&A7800";
|
||||
this.A7800SubMenu.DropDownOpened += new System.EventHandler(this.A7800SubMenu_DropDownOpened);
|
||||
//
|
||||
// A7800ControllerSettingsMenuItem
|
||||
//
|
||||
this.A7800ControllerSettingsMenuItem.Name = "A7800ControllerSettingsMenuItem";
|
||||
this.A7800ControllerSettingsMenuItem.Size = new System.Drawing.Size(125, 22);
|
||||
this.A7800ControllerSettingsMenuItem.Text = "Settings...";
|
||||
this.A7800ControllerSettingsMenuItem.Click += new System.EventHandler(this.A7800SettingsToolStripMenuItem_Click);
|
||||
//
|
||||
// GBSubMenu
|
||||
//
|
||||
this.GBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.GBcoreSettingsToolStripMenuItem,
|
||||
this.LoadGBInSGBMenuItem,
|
||||
this.toolStripSeparator28,
|
||||
|
@ -3522,7 +3524,7 @@
|
|||
this.ShowMenuContextMenuSeparator,
|
||||
this.ShowMenuContextMenuItem});
|
||||
this.MainFormContextMenu.Name = "contextMenuStrip1";
|
||||
this.MainFormContextMenu.Size = new System.Drawing.Size(217, 512);
|
||||
this.MainFormContextMenu.Size = new System.Drawing.Size(217, 490);
|
||||
this.MainFormContextMenu.Closing += new System.Windows.Forms.ToolStripDropDownClosingEventHandler(this.MainFormContextMenu_Closing);
|
||||
this.MainFormContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.MainFormContextMenu_Opening);
|
||||
//
|
||||
|
|
|
@ -1189,7 +1189,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
Atari7800CoreSubMenu.Visible = VersionInfo.DeveloperBuild;
|
||||
GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB;
|
||||
|
||||
|
||||
allowGameDBCoreOverridesToolStripMenuItem.Checked = Global.Config.CoreForcingViaGameDB;
|
||||
}
|
||||
|
||||
|
@ -1227,8 +1226,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void GbaCoreSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
VbaNextCoreMenuItem.Checked = Global.Config.GBA_UsemGBA;
|
||||
MgbaCoreMenuItem.Checked = !Global.Config.GBA_UsemGBA;
|
||||
VbaNextCoreMenuItem.Checked = !Global.Config.GBA_UsemGBA;
|
||||
MgbaCoreMenuItem.Checked = Global.Config.GBA_UsemGBA;
|
||||
}
|
||||
|
||||
private void GbaCorePick_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -415,7 +415,7 @@
|
|||
//
|
||||
this.OpenGameGenieEncoderDecoderMenuItem.Name = "OpenGameGenieEncoderDecoderMenuItem";
|
||||
this.OpenGameGenieEncoderDecoderMenuItem.Size = new System.Drawing.Size(233, 22);
|
||||
this.OpenGameGenieEncoderDecoderMenuItem.Text = "Game Genie Encoder/Decoder";
|
||||
this.OpenGameGenieEncoderDecoderMenuItem.Text = "Code Converter";
|
||||
this.OpenGameGenieEncoderDecoderMenuItem.Click += new System.EventHandler(this.OpenGameGenieEncoderDecoderMenuItem_Click);
|
||||
//
|
||||
// OptionsSubMenu
|
||||
|
@ -615,8 +615,8 @@
|
|||
this.LoadGameGenieToolbarItem.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.LoadGameGenieToolbarItem.Name = "LoadGameGenieToolbarItem";
|
||||
this.LoadGameGenieToolbarItem.Size = new System.Drawing.Size(75, 22);
|
||||
this.LoadGameGenieToolbarItem.Text = "Game Genie";
|
||||
this.LoadGameGenieToolbarItem.ToolTipText = "Open the Game Genie Encoder/Decoder";
|
||||
this.LoadGameGenieToolbarItem.Text = "Code Converter";
|
||||
this.LoadGameGenieToolbarItem.ToolTipText = "Open the Cheat Code Converter";
|
||||
this.LoadGameGenieToolbarItem.Click += new System.EventHandler(this.OpenGameGenieEncoderDecoderMenuItem_Click);
|
||||
//
|
||||
// TotalLabel
|
||||
|
|
|
@ -3187,8 +3187,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
//Is this correct?
|
||||
if (GameGenie == true)
|
||||
{
|
||||
var watch = Watch.GenerateWatch(MemoryDomains["CARTROM"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Byte, Common.DisplayType.Hex, false, txtDescription.Text);
|
||||
Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber)));
|
||||
MessageBox.Show("Game genie codes are not currently supported for SNES", "SNES Game Genie not supported", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
////var watch = Watch.GenerateWatch(MemoryDomains["CARTROM"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Byte, Common.DisplayType.Hex, false, txtDescription.Text);
|
||||
////Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber)));
|
||||
}
|
||||
else if (GameGenie == false)
|
||||
{
|
||||
|
|
|
@ -1,36 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\</OutputPath>
|
||||
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
|
@ -44,6 +32,7 @@
|
|||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
|
@ -56,7 +45,7 @@
|
|||
</Reference>
|
||||
<Reference Include="SlimDX, Version=4.0.13.43, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\References\$(Platform)\SlimDX.dll</HintPath>
|
||||
<HintPath>..\References\x64\SlimDX.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
|
|
|
@ -14,41 +14,26 @@
|
|||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
|
|
|
@ -1,42 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Debug\BizHawk.Emulation.Common.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\BizHawk.Emulation.Common.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
|
|
|
@ -33,44 +33,31 @@
|
|||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE;VS2010</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\BizHawk.Emulation.Cores.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ELFSharp">
|
||||
|
|
|
@ -11904,6 +11904,7 @@ namespace BizHawk.Emulation.Cores.Components.Z80
|
|||
}
|
||||
|
||||
}
|
||||
bool int_triggered = false;
|
||||
|
||||
// Process interrupt requests.
|
||||
if (nonMaskableInterruptPending)
|
||||
|
@ -11923,6 +11924,7 @@ namespace BizHawk.Emulation.Cores.Components.Z80
|
|||
}
|
||||
else if (iff1 && interrupt && Interruptable)
|
||||
{
|
||||
int_triggered = true;
|
||||
|
||||
Halted = false;
|
||||
|
||||
|
@ -11952,11 +11954,12 @@ namespace BizHawk.Emulation.Cores.Components.Z80
|
|||
if (EI_pending > 0)
|
||||
{
|
||||
EI_pending--;
|
||||
if (EI_pending == 0)
|
||||
if (EI_pending == 0 && !int_triggered)
|
||||
{
|
||||
IFF1 = IFF2 = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,16 +17,24 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
|
|||
private LibPizza _pizza;
|
||||
private readonly bool _sgb;
|
||||
|
||||
[CoreConstructor("GB")]
|
||||
[CoreConstructor("SGB")]
|
||||
public Pizza(byte[] rom, CoreComm comm)
|
||||
:base(comm, new Configuration
|
||||
:this(rom, comm, true)
|
||||
{ }
|
||||
|
||||
[CoreConstructor("GB")]
|
||||
public Pizza(CoreComm comm, byte[] rom)
|
||||
:this(rom, comm, false)
|
||||
{ }
|
||||
|
||||
public Pizza(byte[] rom, CoreComm comm, bool sgb)
|
||||
: base(comm, new Configuration
|
||||
{
|
||||
DefaultWidth = 160,
|
||||
DefaultHeight = 144,
|
||||
MaxWidth = 256,
|
||||
MaxHeight = 224,
|
||||
MaxSamples = 1024,
|
||||
SystemId = "SGB",
|
||||
DefaultFpsNumerator = TICKSPERSECOND,
|
||||
DefaultFpsDenominator = TICKSPERFRAME
|
||||
})
|
||||
|
@ -41,8 +49,8 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
|
|||
MmapHeapSizeKB = 0
|
||||
});
|
||||
|
||||
var spc = comm.CoreFileProvider.GetFirmware("SGB", "SPC", true);
|
||||
_sgb = true;
|
||||
var spc = sgb ? comm.CoreFileProvider.GetFirmware("SGB", "SPC", true) : new byte[0];
|
||||
_sgb = sgb;
|
||||
if (!_pizza.Init(rom, rom.Length, _sgb, spc, spc.Length))
|
||||
{
|
||||
throw new InvalidOperationException("Core rejected the rom!");
|
||||
|
@ -77,23 +85,32 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
|
|||
|
||||
#region Controller
|
||||
|
||||
private static readonly ControllerDefinition _definition;
|
||||
public override ControllerDefinition ControllerDefinition => _definition;
|
||||
private static readonly ControllerDefinition _gbDefinition;
|
||||
private static readonly ControllerDefinition _sgbDefinition;
|
||||
public override ControllerDefinition ControllerDefinition => _sgb ? _sgbDefinition : _gbDefinition;
|
||||
|
||||
static Pizza()
|
||||
private static ControllerDefinition CreateControllerDefinition(int p)
|
||||
{
|
||||
_definition = new ControllerDefinition { Name = "Gameboy Controller" };
|
||||
for (int i = 0; i < 4; i++)
|
||||
var ret = new ControllerDefinition { Name = "Gameboy Controller" };
|
||||
for (int i = 0; i < p; i++)
|
||||
{
|
||||
_definition.BoolButtons.AddRange(
|
||||
ret.BoolButtons.AddRange(
|
||||
new[] { "Up", "Down", "Left", "Right", "A", "B", "Select", "Start" }
|
||||
.Select(s => $"P{i + 1} {s}"));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
private static LibPizza.Buttons GetButtons(IController c)
|
||||
|
||||
static Pizza()
|
||||
{
|
||||
_gbDefinition = CreateControllerDefinition(1);
|
||||
_sgbDefinition = CreateControllerDefinition(4);
|
||||
}
|
||||
|
||||
private LibPizza.Buttons GetButtons(IController c)
|
||||
{
|
||||
LibPizza.Buttons b = 0;
|
||||
for (int i = 4; i > 0; i--)
|
||||
for (int i = _sgb ? 4 : 1; i > 0; i--)
|
||||
{
|
||||
if (c.IsPressed($"P{i} Up"))
|
||||
b |= LibPizza.Buttons.UP;
|
||||
|
@ -139,5 +156,6 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
|
|||
public bool IsCGBMode() => _pizza.IsCGB();
|
||||
public bool IsSGBMode() => _sgb;
|
||||
|
||||
public override string SystemId => _sgb ? "SGB" : "GB";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -404,6 +404,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
}
|
||||
Board.Dispose();
|
||||
Board = newboard;
|
||||
ppu.HasClockPPU = Board.GetType().GetMethod(nameof(INESBoard.ClockPPU)).DeclaringType != typeof(NESBoardBase);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
{
|
||||
public int cpu_step, cpu_stepcounter;
|
||||
|
||||
public bool HasClockPPU = false;
|
||||
|
||||
// this only handles region differences within the PPU
|
||||
int preNMIlines;
|
||||
int postNMIlines;
|
||||
|
@ -308,7 +310,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
nes.RunCpuOne();
|
||||
|
||||
// decay the ppu bus, approximating real behaviour
|
||||
ppu_open_bus_decay(0);
|
||||
PpuOpenBusDecay(DecayType.None);
|
||||
|
||||
// Check for NMIs
|
||||
if (NMI_PendingInstructions > 0)
|
||||
|
@ -333,7 +335,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
Reg2002_vblank_clear_pending = false;
|
||||
}
|
||||
|
||||
nes.Board.ClockPPU();
|
||||
if (HasClockPPU)
|
||||
{
|
||||
nes.Board.ClockPPU();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -365,7 +365,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
|
||||
// update the open bus here
|
||||
ppu_open_bus = ret;
|
||||
ppu_open_bus_decay(2);
|
||||
PpuOpenBusDecay(DecayType.High);
|
||||
return ret;
|
||||
}
|
||||
byte peek_2002()
|
||||
|
@ -468,7 +468,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
}
|
||||
|
||||
ppu_open_bus = ret;
|
||||
ppu_open_bus_decay(1);
|
||||
PpuOpenBusDecay(DecayType.All);
|
||||
return ret;
|
||||
}
|
||||
byte peek_2004() { return OAM[reg_2003]; }
|
||||
|
@ -595,10 +595,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
ppu_open_bus = ret;
|
||||
if (bus_case==0)
|
||||
{
|
||||
ppu_open_bus_decay(1);
|
||||
} else
|
||||
PpuOpenBusDecay(DecayType.All);
|
||||
}
|
||||
else
|
||||
{
|
||||
ppu_open_bus_decay(3);
|
||||
PpuOpenBusDecay(DecayType.Low);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -671,6 +672,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
default: throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
public byte PeekReg(int addr)
|
||||
{
|
||||
switch (addr)
|
||||
|
@ -680,6 +682,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
default: throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
public void WriteReg(int addr, byte value)
|
||||
{
|
||||
PPUGenLatch = value;
|
||||
|
@ -709,55 +712,54 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
}
|
||||
}
|
||||
|
||||
public void ppu_open_bus_decay(byte action)
|
||||
private enum DecayType
|
||||
{
|
||||
// if there is no action, decrement the timer
|
||||
if (action==0)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
if (ppu_open_bus_decay_timer[i] == 0)
|
||||
{
|
||||
ppu_open_bus = (byte)(ppu_open_bus & (0xff - (1 << i)));
|
||||
ppu_open_bus_decay_timer[i] = 1786840; // about 1 second worth of cycles
|
||||
}
|
||||
else
|
||||
{
|
||||
ppu_open_bus_decay_timer[i]--;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
None = 0, // if there is no action, decrement the timer
|
||||
All = 1, // reset the timer for all bits (reg 2004 / 2007 (non-palette)
|
||||
High = 2, // reset the timer for high 3 bits (reg 2002)
|
||||
Low = 3 // reset the timer for all low 6 bits (reg 2007 (palette))
|
||||
|
||||
// reset the timer for all bits (reg 2004 / 2007 (non-palette)
|
||||
if (action==1)
|
||||
{
|
||||
for (int i=0; i<8; i++)
|
||||
{
|
||||
ppu_open_bus_decay_timer[i] = 1786840;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// reset the timer for high 3 bits (reg 2002)
|
||||
if (action == 2)
|
||||
{
|
||||
ppu_open_bus_decay_timer[7] = 1786840;
|
||||
ppu_open_bus_decay_timer[6] = 1786840;
|
||||
ppu_open_bus_decay_timer[5] = 1786840;
|
||||
}
|
||||
|
||||
// reset the timer for all low 6 bits (reg 2007 (palette))
|
||||
if (action == 3)
|
||||
{
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
ppu_open_bus_decay_timer[i] = 1786840;
|
||||
}
|
||||
}
|
||||
// other values of action are reserved for possibly needed expansions, but this passes
|
||||
// ppu_open_bus for now.
|
||||
}
|
||||
}
|
||||
|
||||
private void PpuOpenBusDecay(DecayType action)
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case DecayType.None:
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
if (ppu_open_bus_decay_timer[i] == 0)
|
||||
{
|
||||
ppu_open_bus = (byte)(ppu_open_bus & (0xff - (1 << i)));
|
||||
ppu_open_bus_decay_timer[i] = 1786840; // about 1 second worth of cycles
|
||||
}
|
||||
else
|
||||
{
|
||||
ppu_open_bus_decay_timer[i]--;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DecayType.All:
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
ppu_open_bus_decay_timer[i] = 1786840;
|
||||
}
|
||||
break;
|
||||
case DecayType.High:
|
||||
ppu_open_bus_decay_timer[7] = 1786840;
|
||||
ppu_open_bus_decay_timer[6] = 1786840;
|
||||
ppu_open_bus_decay_timer[5] = 1786840;
|
||||
break;
|
||||
case DecayType.Low:
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
ppu_open_bus_decay_timer[i] = 1786840;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -759,14 +759,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
Read_bgdata(ref bgdata[xt]);
|
||||
}
|
||||
|
||||
// this sequence is tuned to pass 10-even_odd_timing.nes
|
||||
runppu(1);
|
||||
|
||||
runppu(1);
|
||||
|
||||
runppu(1);
|
||||
|
||||
runppu(1);
|
||||
// this sequence is tuned to pass 10-even_odd_timing.nes
|
||||
runppu(4);
|
||||
bool evenOddDestiny = PPUON;
|
||||
|
||||
// After memory access 170, the PPU simply rests for 4 cycles (or the
|
||||
|
|
|
@ -81,5 +81,8 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
|
|||
|
||||
[BizImport(CC)]
|
||||
public abstract void HardReset();
|
||||
|
||||
[BizImport(CC)]
|
||||
public abstract void PredictFrameSize([In, Out]FrameInfo frame);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
using BizHawk.Common;
|
||||
using BizHawk.Common.BizInvoke;
|
||||
using BizHawk.Common.BufferExtensions;
|
||||
using BizHawk.Emulation.Common;
|
||||
using BizHawk.Emulation.Cores.Waterbox;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
|
||||
{
|
||||
[CoreAttributes("Virtual Boyee", "Ryphecha", true, true, "0.9.44.1",
|
||||
"https://mednafen.github.io/releases/", false)]
|
||||
public class VirtualBoyee : WaterboxCore, ISettable<VirtualBoyee.Settings, VirtualBoyee.SyncSettings>
|
||||
{
|
||||
private LibVirtualBoyee _boyee;
|
||||
|
||||
[CoreConstructor("VB")]
|
||||
public VirtualBoyee(CoreComm comm, byte[] rom, Settings settings, SyncSettings syncSettings)
|
||||
using BizHawk.Common;
|
||||
using BizHawk.Common.BizInvoke;
|
||||
using BizHawk.Common.BufferExtensions;
|
||||
using BizHawk.Emulation.Common;
|
||||
using BizHawk.Emulation.Cores.Waterbox;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
|
||||
{
|
||||
[CoreAttributes("Virtual Boyee", "Ryphecha", true, true, "0.9.44.1",
|
||||
"https://mednafen.github.io/releases/", false)]
|
||||
public class VirtualBoyee : WaterboxCore, ISettable<VirtualBoyee.Settings, VirtualBoyee.SyncSettings>
|
||||
{
|
||||
private LibVirtualBoyee _boyee;
|
||||
|
||||
[CoreConstructor("VB")]
|
||||
public VirtualBoyee(CoreComm comm, byte[] rom, Settings settings, SyncSettings syncSettings)
|
||||
:base(comm, new Configuration
|
||||
{
|
||||
DefaultFpsNumerator = 20000000,
|
||||
|
@ -34,220 +34,226 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
|
|||
MaxHeight = 1024,
|
||||
MaxSamples = 8192,
|
||||
SystemId = "VB"
|
||||
})
|
||||
{
|
||||
_settings = settings ?? new Settings();
|
||||
_syncSettings = syncSettings ?? new SyncSettings();
|
||||
// TODO: the way settings work in this core, changing the non-sync ones will invalidate savestates
|
||||
var nativeSettings = LibVirtualBoyee.NativeSettings.FromFrontendSettings(_settings, _syncSettings);
|
||||
|
||||
_boyee = PreInit<LibVirtualBoyee>(new PeRunnerOptions
|
||||
{
|
||||
Filename = "vb.wbx",
|
||||
SbrkHeapSizeKB = 256,
|
||||
SealedHeapSizeKB = 4 * 1024,
|
||||
InvisibleHeapSizeKB = 256,
|
||||
PlainHeapSizeKB = 256
|
||||
});
|
||||
|
||||
if (!_boyee.Load(rom, rom.Length, nativeSettings))
|
||||
})
|
||||
{
|
||||
_settings = settings ?? new Settings();
|
||||
_syncSettings = syncSettings ?? new SyncSettings();
|
||||
// TODO: the way settings work in this core, changing the non-sync ones will invalidate savestates
|
||||
var nativeSettings = LibVirtualBoyee.NativeSettings.FromFrontendSettings(_settings, _syncSettings);
|
||||
|
||||
_boyee = PreInit<LibVirtualBoyee>(new PeRunnerOptions
|
||||
{
|
||||
Filename = "vb.wbx",
|
||||
SbrkHeapSizeKB = 256,
|
||||
SealedHeapSizeKB = 4 * 1024,
|
||||
InvisibleHeapSizeKB = 256,
|
||||
PlainHeapSizeKB = 256
|
||||
});
|
||||
|
||||
if (!_boyee.Load(rom, rom.Length, nativeSettings))
|
||||
throw new InvalidOperationException("Core rejected the rom");
|
||||
|
||||
PostInit();
|
||||
}
|
||||
|
||||
// do a quick hack up for frame zero size
|
||||
var tmp = new LibVirtualBoyee.FrameInfo();
|
||||
_boyee.PredictFrameSize(tmp);
|
||||
BufferWidth = tmp.Width;
|
||||
BufferHeight = tmp.Height;
|
||||
|
||||
PostInit();
|
||||
}
|
||||
|
||||
protected override LibWaterboxCore.FrameInfo FrameAdvancePrep(IController controller, bool render, bool rendersound)
|
||||
{
|
||||
if (controller.IsPressed("Power"))
|
||||
if (controller.IsPressed("Power"))
|
||||
_boyee.HardReset();
|
||||
|
||||
return new LibVirtualBoyee.FrameInfo { Buttons = GetButtons(controller) };
|
||||
}
|
||||
|
||||
#region Controller
|
||||
|
||||
private LibVirtualBoyee.Buttons GetButtons(IController c)
|
||||
{
|
||||
var ret = 0;
|
||||
var val = 1;
|
||||
foreach (var s in CoreButtons)
|
||||
{
|
||||
if (c.IsPressed(s))
|
||||
ret |= val;
|
||||
val <<= 1;
|
||||
}
|
||||
return (LibVirtualBoyee.Buttons)ret;
|
||||
}
|
||||
|
||||
private static readonly string[] CoreButtons =
|
||||
{
|
||||
"A", "B", "R", "L",
|
||||
"R_Up", "R_Right",
|
||||
"L_Right", "L_Left", "L_Down", "L_Up",
|
||||
"Start", "Select", "R_Left", "R_Down"
|
||||
};
|
||||
|
||||
private static readonly Dictionary<string, int> _buttonOrdinals = new Dictionary<string, int>
|
||||
{
|
||||
["L_Up"] = 1,
|
||||
["L_Down"] = 2,
|
||||
["L_Left"] = 3,
|
||||
["L_Right"] = 4,
|
||||
["R_Up"] = 5,
|
||||
["R_Down"] = 6,
|
||||
["R_Left"] = 7,
|
||||
["R_Right"] = 8,
|
||||
["B"] = 9,
|
||||
}
|
||||
|
||||
#region Controller
|
||||
|
||||
private LibVirtualBoyee.Buttons GetButtons(IController c)
|
||||
{
|
||||
var ret = 0;
|
||||
var val = 1;
|
||||
foreach (var s in CoreButtons)
|
||||
{
|
||||
if (c.IsPressed(s))
|
||||
ret |= val;
|
||||
val <<= 1;
|
||||
}
|
||||
return (LibVirtualBoyee.Buttons)ret;
|
||||
}
|
||||
|
||||
private static readonly string[] CoreButtons =
|
||||
{
|
||||
"A", "B", "R", "L",
|
||||
"R_Up", "R_Right",
|
||||
"L_Right", "L_Left", "L_Down", "L_Up",
|
||||
"Start", "Select", "R_Left", "R_Down"
|
||||
};
|
||||
|
||||
private static readonly Dictionary<string, int> _buttonOrdinals = new Dictionary<string, int>
|
||||
{
|
||||
["L_Up"] = 1,
|
||||
["L_Down"] = 2,
|
||||
["L_Left"] = 3,
|
||||
["L_Right"] = 4,
|
||||
["R_Up"] = 5,
|
||||
["R_Down"] = 6,
|
||||
["R_Left"] = 7,
|
||||
["R_Right"] = 8,
|
||||
["B"] = 9,
|
||||
["A"] = 10,
|
||||
["L"] = 11,
|
||||
["R"] = 12,
|
||||
["Select"] = 13,
|
||||
["Start"] = 14
|
||||
};
|
||||
|
||||
private static readonly ControllerDefinition VirtualBoyController = new ControllerDefinition
|
||||
{
|
||||
Name = "VirtualBoy Controller",
|
||||
BoolButtons = CoreButtons
|
||||
.OrderBy(b => _buttonOrdinals[b])
|
||||
.Concat(new[] { "Power" })
|
||||
.ToList()
|
||||
};
|
||||
|
||||
public override ControllerDefinition ControllerDefinition => VirtualBoyController;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ISettable
|
||||
|
||||
public class SyncSettings
|
||||
{
|
||||
[DefaultValue(false)]
|
||||
[Description("Reduce input latency. Works with all known commercial games, may have homebrew issues.")]
|
||||
public bool InstantReadHack { get; set; }
|
||||
[DefaultValue(false)]
|
||||
[Description("Disable parallax for rendering.")]
|
||||
public bool DisableParallax { get; set; }
|
||||
|
||||
public SyncSettings Clone()
|
||||
{
|
||||
return (SyncSettings)MemberwiseClone();
|
||||
}
|
||||
|
||||
public static bool NeedsReboot(SyncSettings x, SyncSettings y)
|
||||
{
|
||||
return !DeepEquality.DeepEquals(x, y);
|
||||
}
|
||||
|
||||
public SyncSettings()
|
||||
{
|
||||
SettingsUtil.SetDefaultValues(this);
|
||||
}
|
||||
}
|
||||
|
||||
public class Settings
|
||||
{
|
||||
public enum ThreeDeeModes : int
|
||||
{
|
||||
Anaglyph = 0,
|
||||
CyberScope = 1,
|
||||
SideBySide = 2,
|
||||
//OverUnder,
|
||||
VerticalInterlaced = 4,
|
||||
HorizontalInterlaced = 5
|
||||
}
|
||||
|
||||
[DefaultValue(ThreeDeeModes.Anaglyph)]
|
||||
[Description("How to display the 3d image. Use whichever method works with your VR hardware.")]
|
||||
public ThreeDeeModes ThreeDeeMode { get; set; }
|
||||
|
||||
[DefaultValue(false)]
|
||||
[Description("Swap the left and right views.")]
|
||||
public bool SwapViews { get; set; }
|
||||
|
||||
public enum AnaglyphPresets : int
|
||||
{
|
||||
Custom,
|
||||
RedBlue,
|
||||
RedCyan,
|
||||
RedElectricCyan,
|
||||
RedGreen,
|
||||
GreenMagneto,
|
||||
YellowBlue
|
||||
}
|
||||
|
||||
[DefaultValue(AnaglyphPresets.RedBlue)]
|
||||
[Description("Color preset for Anaglyph mode.")]
|
||||
public AnaglyphPresets AnaglyphPreset { get; set; }
|
||||
|
||||
[DefaultValue(typeof(Color), "Green")]
|
||||
[Description("Left anaglyph color. Ignored unless Preset is Custom.")]
|
||||
public Color AnaglyphCustomLeftColor { get; set; }
|
||||
[DefaultValue(typeof(Color), "Purple")]
|
||||
[Description("Right anaglyph color. Ignored unless Preset is Custom.")]
|
||||
public Color AnaglyphCustomRightColor { get; set; }
|
||||
|
||||
[DefaultValue(typeof(Color), "White")]
|
||||
[Description("Display color for all of the non-anaglyph modes. Real hardware was red, but other colors may be easier on your eyes.")]
|
||||
public Color NonAnaglyphColor { get; set; }
|
||||
|
||||
[DefaultValue(1750)]
|
||||
[Range(1000, 2000)]
|
||||
[Description("LED gamma ramp. Range of 1000 to 2000")]
|
||||
public int LedOnScale { get; set; }
|
||||
|
||||
[DefaultValue(2)]
|
||||
[Range(1, 10)]
|
||||
public int InterlacePrescale { get; set; }
|
||||
|
||||
[DefaultValue(0)]
|
||||
[Range(0, 1024)]
|
||||
[Description("How many pixels to put between views in Side By Side mode")]
|
||||
public int SideBySideSeparation { get; set; }
|
||||
|
||||
public Settings Clone()
|
||||
{
|
||||
return (Settings)MemberwiseClone();
|
||||
}
|
||||
|
||||
public static bool NeedsReboot(Settings x, Settings y)
|
||||
{
|
||||
return !DeepEquality.DeepEquals(x, y);
|
||||
}
|
||||
|
||||
public Settings()
|
||||
{
|
||||
SettingsUtil.SetDefaultValues(this);
|
||||
}
|
||||
}
|
||||
|
||||
private Settings _settings;
|
||||
private SyncSettings _syncSettings;
|
||||
|
||||
public Settings GetSettings()
|
||||
{
|
||||
return _settings.Clone();
|
||||
}
|
||||
|
||||
public SyncSettings GetSyncSettings()
|
||||
{
|
||||
return _syncSettings.Clone();
|
||||
}
|
||||
|
||||
public bool PutSettings(Settings o)
|
||||
{
|
||||
var ret = Settings.NeedsReboot(_settings, o);
|
||||
_settings = o;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool PutSyncSettings(SyncSettings o)
|
||||
{
|
||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||
_syncSettings = o;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
["R"] = 12,
|
||||
["Select"] = 13,
|
||||
["Start"] = 14
|
||||
};
|
||||
|
||||
private static readonly ControllerDefinition VirtualBoyController = new ControllerDefinition
|
||||
{
|
||||
Name = "VirtualBoy Controller",
|
||||
BoolButtons = CoreButtons
|
||||
.OrderBy(b => _buttonOrdinals[b])
|
||||
.Concat(new[] { "Power" })
|
||||
.ToList()
|
||||
};
|
||||
|
||||
public override ControllerDefinition ControllerDefinition => VirtualBoyController;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ISettable
|
||||
|
||||
public class SyncSettings
|
||||
{
|
||||
[DefaultValue(false)]
|
||||
[Description("Reduce input latency. Works with all known commercial games, may have homebrew issues.")]
|
||||
public bool InstantReadHack { get; set; }
|
||||
[DefaultValue(false)]
|
||||
[Description("Disable parallax for rendering.")]
|
||||
public bool DisableParallax { get; set; }
|
||||
|
||||
public SyncSettings Clone()
|
||||
{
|
||||
return (SyncSettings)MemberwiseClone();
|
||||
}
|
||||
|
||||
public static bool NeedsReboot(SyncSettings x, SyncSettings y)
|
||||
{
|
||||
return !DeepEquality.DeepEquals(x, y);
|
||||
}
|
||||
|
||||
public SyncSettings()
|
||||
{
|
||||
SettingsUtil.SetDefaultValues(this);
|
||||
}
|
||||
}
|
||||
|
||||
public class Settings
|
||||
{
|
||||
public enum ThreeDeeModes : int
|
||||
{
|
||||
Anaglyph = 0,
|
||||
CyberScope = 1,
|
||||
SideBySide = 2,
|
||||
//OverUnder,
|
||||
VerticalInterlaced = 4,
|
||||
HorizontalInterlaced = 5
|
||||
}
|
||||
|
||||
[DefaultValue(ThreeDeeModes.Anaglyph)]
|
||||
[Description("How to display the 3d image. Use whichever method works with your VR hardware.")]
|
||||
public ThreeDeeModes ThreeDeeMode { get; set; }
|
||||
|
||||
[DefaultValue(false)]
|
||||
[Description("Swap the left and right views.")]
|
||||
public bool SwapViews { get; set; }
|
||||
|
||||
public enum AnaglyphPresets : int
|
||||
{
|
||||
Custom,
|
||||
RedBlue,
|
||||
RedCyan,
|
||||
RedElectricCyan,
|
||||
RedGreen,
|
||||
GreenMagneto,
|
||||
YellowBlue
|
||||
}
|
||||
|
||||
[DefaultValue(AnaglyphPresets.RedBlue)]
|
||||
[Description("Color preset for Anaglyph mode.")]
|
||||
public AnaglyphPresets AnaglyphPreset { get; set; }
|
||||
|
||||
[DefaultValue(typeof(Color), "Green")]
|
||||
[Description("Left anaglyph color. Ignored unless Preset is Custom.")]
|
||||
public Color AnaglyphCustomLeftColor { get; set; }
|
||||
[DefaultValue(typeof(Color), "Purple")]
|
||||
[Description("Right anaglyph color. Ignored unless Preset is Custom.")]
|
||||
public Color AnaglyphCustomRightColor { get; set; }
|
||||
|
||||
[DefaultValue(typeof(Color), "White")]
|
||||
[Description("Display color for all of the non-anaglyph modes. Real hardware was red, but other colors may be easier on your eyes.")]
|
||||
public Color NonAnaglyphColor { get; set; }
|
||||
|
||||
[DefaultValue(1750)]
|
||||
[Range(1000, 2000)]
|
||||
[Description("LED gamma ramp. Range of 1000 to 2000")]
|
||||
public int LedOnScale { get; set; }
|
||||
|
||||
[DefaultValue(2)]
|
||||
[Range(1, 10)]
|
||||
public int InterlacePrescale { get; set; }
|
||||
|
||||
[DefaultValue(0)]
|
||||
[Range(0, 1024)]
|
||||
[Description("How many pixels to put between views in Side By Side mode")]
|
||||
public int SideBySideSeparation { get; set; }
|
||||
|
||||
public Settings Clone()
|
||||
{
|
||||
return (Settings)MemberwiseClone();
|
||||
}
|
||||
|
||||
public static bool NeedsReboot(Settings x, Settings y)
|
||||
{
|
||||
return !DeepEquality.DeepEquals(x, y);
|
||||
}
|
||||
|
||||
public Settings()
|
||||
{
|
||||
SettingsUtil.SetDefaultValues(this);
|
||||
}
|
||||
}
|
||||
|
||||
private Settings _settings;
|
||||
private SyncSettings _syncSettings;
|
||||
|
||||
public Settings GetSettings()
|
||||
{
|
||||
return _settings.Clone();
|
||||
}
|
||||
|
||||
public SyncSettings GetSyncSettings()
|
||||
{
|
||||
return _syncSettings.Clone();
|
||||
}
|
||||
|
||||
public bool PutSettings(Settings o)
|
||||
{
|
||||
var ret = Settings.NeedsReboot(_settings, o);
|
||||
_settings = o;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool PutSyncSettings(SyncSettings o)
|
||||
{
|
||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||
_syncSettings = o;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace BizHawk.Emulation.Cores.Consoles.SNK
|
||||
{
|
||||
[CoreAttributes("NeoPop", "Thomas Klausner", true, false, "0.9.44.1",
|
||||
[CoreAttributes("NeoPop", "Thomas Klausner", true, true, "0.9.44.1",
|
||||
"https://mednafen.github.io/releases/", false)]
|
||||
public class NeoGeoPort : WaterboxCore,
|
||||
ISaveRam, // NGP provides its own saveram interface
|
||||
|
|
|
@ -171,6 +171,8 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
|||
|
||||
_core.SetControllerData(_controllerDeck.Poll(controller));
|
||||
|
||||
SetVideoParameters();
|
||||
|
||||
return new LibSaturnus.FrameInfo { ResetPushed = controller.IsPressed("Reset") ? 1 : 0 };
|
||||
}
|
||||
|
||||
|
@ -180,9 +182,22 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
|||
|
||||
public class Settings
|
||||
{
|
||||
// extern bool setting_ss_correct_aspect;
|
||||
[DefaultValue(true)]
|
||||
public bool CorrectAspectRatio { get; set; }
|
||||
public enum ResolutionModeTypes
|
||||
{
|
||||
[Display(Name = "Pixel Pro")]
|
||||
PixelPro,
|
||||
[Display(Name = "Hardcode Debug")]
|
||||
HardcoreDebug,
|
||||
[Display(Name = "Mednafen (5:4 AR)")]
|
||||
Mednafen,
|
||||
[Display(Name = "Tweaked Mednafen (5:4 AR)")]
|
||||
TweakedMednafen,
|
||||
}
|
||||
|
||||
[DisplayName("Resolution Mode")]
|
||||
[DefaultValue(ResolutionModeTypes.PixelPro)]
|
||||
[Description("Method for managing varying resolutions")]
|
||||
public ResolutionModeTypes ResolutionMode { get; set; }
|
||||
|
||||
// extern bool setting_ss_h_blend;
|
||||
[DisplayName("Horizontal Blend")]
|
||||
|
@ -425,9 +440,12 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
|||
{
|
||||
var ret = Settings.NeedsReboot(_settings, s);
|
||||
_settings = s;
|
||||
var sls = _isPal ? s.ScanlineStartPal + 16 : s.ScanlineStartNtsc;
|
||||
var sle = _isPal ? s.ScanlineEndPal + 16 : s.ScanlineEndNtsc;
|
||||
_core.SetVideoParameters(s.CorrectAspectRatio, s.HBlend, s.HOverscan, sls, sle);
|
||||
|
||||
|
||||
//todo natt - is this safe? this is now called before every frameadvance
|
||||
//(the correct aspect ratio is no longer an option for other reasons)
|
||||
//_core.SetVideoParameters(s.CorrectAspectRatio, s.HBlend, s.HOverscan, sls, sle);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -443,6 +461,19 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
|||
return ret;
|
||||
}
|
||||
|
||||
private void SetVideoParameters()
|
||||
{
|
||||
var s = _settings;
|
||||
var sls = _isPal ? s.ScanlineStartPal + 16 : s.ScanlineStartNtsc;
|
||||
var sle = _isPal ? s.ScanlineEndPal + 16 : s.ScanlineEndNtsc;
|
||||
|
||||
bool correctAspect = true;
|
||||
if (_settings.ResolutionMode == Settings.ResolutionModeTypes.PixelPro)
|
||||
correctAspect = false;
|
||||
|
||||
_core.SetVideoParameters(correctAspect, _settings.HBlend, _settings.HOverscan, sls, sle);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IStatable
|
||||
|
@ -461,6 +492,12 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
|||
_nextDiskSignal = reader.ReadBoolean();
|
||||
// any managed pointers that we sent to the core need to be resent now!
|
||||
SetCdCallbacks();
|
||||
|
||||
//todo natt: evaluate the philosophy of this.
|
||||
//i think it's sound: loadstate will replace the last values set by frontend; so this should re-assert them.
|
||||
//or we could make sure values from the frontend are stored in a segment designed with the appropriate waterboxing rules, but that seems tricky...
|
||||
//anyway, in this case, I did it before frameadvance instead, so that's just as good (probably?)
|
||||
//PutSettings(_settings);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -564,5 +601,110 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
|||
private const int NtscFpsDen = 61 * 455 * 1051;
|
||||
public override int VsyncNumerator => _isPal ? PalFpsNum : NtscFpsNum;
|
||||
public override int VsyncDenominator => _isPal ? PalFpsDen : NtscFpsDen;
|
||||
|
||||
private int _virtualWidth;
|
||||
private int _virtualHeight;
|
||||
public override int VirtualWidth => _virtualWidth;
|
||||
public override int VirtualHeight => _virtualHeight;
|
||||
|
||||
protected override void FrameAdvancePost()
|
||||
{
|
||||
//TODO: can we force the videoprovider to add a prescale instead of having to do it in software here?
|
||||
//TODO: if not, actually do it in software, instead of relying on the virtual sizes
|
||||
//TODO: find a reason why relying on the virtual sizes is actually not good enough?
|
||||
|
||||
//TODO: export VDP2 display area width from emulator and add option to aggressively crop overscan - OR - add that logic to core
|
||||
|
||||
//mednafen, for reference:
|
||||
//if (PAL)
|
||||
//{
|
||||
// gi->nominal_width = (ShowHOverscan ? 365 : 354);
|
||||
// gi->fb_height = 576;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// gi->nominal_width = (ShowHOverscan ? 302 : 292);
|
||||
// gi->fb_height = 480;
|
||||
//}
|
||||
//gi->nominal_height = LineVisLast + 1 - LineVisFirst;
|
||||
//gi->lcm_width = (ShowHOverscan ? 10560 : 10240);
|
||||
//gi->lcm_height = (LineVisLast + 1 - LineVisFirst) * 2;
|
||||
//if (!CorrectAspect)
|
||||
//{
|
||||
// gi->nominal_width = (ShowHOverscan ? 352 : 341);
|
||||
// gi->lcm_width = gi->nominal_width * 2;
|
||||
//}
|
||||
|
||||
bool isHorz2x = false, isVert2x = false;
|
||||
|
||||
//note: these work with PAL also
|
||||
//these are all with CorrectAR.
|
||||
//with IncorrectAR, only 352 and 341 will show up
|
||||
//that is, 330 is forced to 352 so mednafen's presentation can display it pristine no matter what mode it is
|
||||
//(it's mednafen's equivalent of a more debuggish mode, I guess)
|
||||
if (BufferWidth == 352) { } //a large basic framebuffer size
|
||||
else if (BufferWidth == 341) { } //a large basic framebuffer size with overscan cropped
|
||||
else if (BufferWidth == 330) { } //a small basic framebuffer
|
||||
else if (BufferWidth == 320) { } //a small basic framebuffer with overscan cropped
|
||||
else isHorz2x = true;
|
||||
|
||||
int slStart = _isPal ? _settings.ScanlineStartPal : _settings.ScanlineStartNtsc;
|
||||
int slEnd = _isPal ? _settings.ScanlineEndPal : _settings.ScanlineEndNtsc;
|
||||
int slHeight = (slEnd - slStart) + 1;
|
||||
|
||||
if (BufferHeight == slHeight) { }
|
||||
else isVert2x = true;
|
||||
|
||||
switch (_settings.ResolutionMode)
|
||||
{
|
||||
case Settings.ResolutionModeTypes.HardcoreDebug:
|
||||
_virtualWidth = BufferWidth;
|
||||
_virtualHeight = BufferHeight;
|
||||
break;
|
||||
|
||||
case Settings.ResolutionModeTypes.Mednafen:
|
||||
//this is mednafen's "correct AR" case.
|
||||
//note that this will shrink a width from 330 to 302 (that's the nature of mednafen)
|
||||
//that makes the bios saturn orb get stretched vertically
|
||||
//note: these are never high resolution (use a 2x window size if you want to see high resolution content)
|
||||
if (_isPal)
|
||||
{
|
||||
_virtualWidth = (_settings.HOverscan ? 365 : 354);
|
||||
_virtualHeight = slHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
_virtualWidth = (_settings.HOverscan ? 302 : 292);
|
||||
_virtualHeight = slHeight;
|
||||
}
|
||||
break;
|
||||
|
||||
case Settings.ResolutionModeTypes.TweakedMednafen:
|
||||
//same as mednafen but stretch up
|
||||
//base case is 330x254
|
||||
if (_isPal)
|
||||
{
|
||||
//this can be the same as Mednafen mode? we don't shrink down in any case, so it must be OK
|
||||
_virtualWidth = (_settings.HOverscan ? 365 : 354);
|
||||
_virtualHeight = slHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
//ideally we want a height of 254, but we may have changed the overscan settings
|
||||
_virtualWidth = (_settings.HOverscan ? 330 : 320);
|
||||
_virtualHeight = BufferHeight * 254 / 240;
|
||||
}
|
||||
break;
|
||||
|
||||
case Settings.ResolutionModeTypes.PixelPro:
|
||||
//mednafen makes sure we always get 352 or 341 (if overscan cropped)
|
||||
//really the only thing we do
|
||||
//(that's not the best solution for us [not what psx does], but it will do for now)
|
||||
_virtualWidth = BufferWidth * (isHorz2x ? 1 : 2); //not a mistake, we scale to make it bigger if it isn't already
|
||||
_virtualHeight = BufferHeight * (isVert2x ? 1 : 2); //not a mistake
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,11 +45,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx64
|
|||
{
|
||||
Path = comm.CoreFileProvider.DllPath(),
|
||||
Filename = "gpgx.wbx",
|
||||
SbrkHeapSizeKB = 256,
|
||||
SbrkHeapSizeKB = 512,
|
||||
SealedHeapSizeKB = 36 * 1024,
|
||||
InvisibleHeapSizeKB = 4 * 1024,
|
||||
PlainHeapSizeKB = 64,
|
||||
MmapHeapSizeKB = 512
|
||||
MmapHeapSizeKB = 1 * 1024
|
||||
});
|
||||
|
||||
using (_elf.EnterExit())
|
||||
|
|
|
@ -243,7 +243,7 @@ namespace BizHawk.Emulation.Cores.Waterbox
|
|||
|
||||
protected readonly BasicServiceProvider _serviceProvider;
|
||||
public IEmulatorServiceProvider ServiceProvider => _serviceProvider;
|
||||
public string SystemId { get; }
|
||||
public virtual string SystemId { get; }
|
||||
public bool DeterministicEmulation { get; protected set; } = true;
|
||||
public IInputCallbackSystem InputCallbacks { get; } = new InputCallbackSystem();
|
||||
public virtual ControllerDefinition ControllerDefinition { get; protected set; } = NullController.Instance.Definition;
|
||||
|
@ -374,7 +374,7 @@ namespace BizHawk.Emulation.Cores.Waterbox
|
|||
|
||||
protected readonly int[] _videoBuffer;
|
||||
public virtual int VirtualWidth => BufferWidth;
|
||||
public virtual int VirtualHeight => BufferWidth;
|
||||
public virtual int VirtualHeight => BufferHeight;
|
||||
public int BufferWidth { get; protected set; }
|
||||
public int BufferHeight { get; protected set; }
|
||||
public virtual int VsyncNumerator { get; protected set; }
|
||||
|
|
|
@ -1,42 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Debug\BizHawk.Emulation.DiscSystem.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\BizHawk.Emulation.DiscSystem.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
|
|
124
BizHawk.sln
124
BizHawk.sln
|
@ -62,70 +62,70 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BizHawk.Client.ApiHawk", "B
|
|||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Debug|x64.Build.0 = Debug|x64
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Release|x64.ActiveCfg = Release|x64
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Release|x64.Build.0 = Release|x64
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Debug|x64.Build.0 = Debug|x64
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Release|x64.ActiveCfg = Release|x64
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Release|x64.Build.0 = Release|x64
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Debug|x64.Build.0 = Debug|x64
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Release|x64.ActiveCfg = Release|x64
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Release|x64.Build.0 = Release|x64
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|x64.Build.0 = Debug|x64
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|x64.ActiveCfg = Release|x64
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|x64.Build.0 = Release|x64
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|x64.Build.0 = Debug|x64
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|x64.ActiveCfg = Release|x64
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|x64.Build.0 = Release|x64
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Debug|x64.Build.0 = Debug|x64
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Release|x64.ActiveCfg = Release|x64
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Release|x64.Build.0 = Release|x64
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Debug|x64.Build.0 = Debug|x64
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Release|x64.ActiveCfg = Release|x64
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Release|x64.Build.0 = Release|x64
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Debug|x64.Build.0 = Debug|x64
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Release|x64.ActiveCfg = Release|x64
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Release|x64.Build.0 = Release|x64
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Debug|x64.Build.0 = Debug|x64
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Release|x64.ActiveCfg = Release|x64
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Release|x64.Build.0 = Release|x64
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Debug|x64.Build.0 = Debug|x64
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Release|x64.ActiveCfg = Release|x64
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Release|x64.Build.0 = Release|x64
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|x64.Build.0 = Debug|x64
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|x64.ActiveCfg = Release|x64
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|x64.Build.0 = Release|x64
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Debug|x64.Build.0 = Debug|x64
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Release|x64.ActiveCfg = Release|x64
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Release|x64.Build.0 = Release|x64
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Debug|x64.Build.0 = Debug|x64
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Release|x64.ActiveCfg = Release|x64
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Release|x64.Build.0 = Release|x64
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Debug|x64.Build.0 = Debug|x64
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Release|x64.ActiveCfg = Release|x64
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Release|x64.Build.0 = Release|x64
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|x64.Build.0 = Debug|x64
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|x64.ActiveCfg = Release|x64
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|x64.Build.0 = Release|x64
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
@ -14,38 +14,25 @@
|
|||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Debug\BizHawk.Bizware.BizwareGL.GdiPlus.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\BizHawk.Bizware.BizwareGL.GdiPlus.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
|
||||
|
|
|
@ -14,43 +14,29 @@
|
|||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Debug\BizHawk.Bizware.BizwareGL.OpenTK.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\BizHawk.Bizware.BizwareGL.OpenTK.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
|
||||
|
|
|
@ -14,47 +14,33 @@
|
|||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Debug\BizHawk.Bizware.BizwareGL.SlimDX.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\BizHawk.Bizware.BizwareGL.SlimDX.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\References\OpenTK.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SlimDX, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\References\$(Platform)\SlimDX.dll</HintPath>
|
||||
<Reference Include="SlimDX">
|
||||
<HintPath>..\..\References\x64\SlimDX.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
|
@ -72,7 +58,7 @@
|
|||
<Name>BizHawk.Common</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\BizHawk.Bizware.BizwareGL\BizHawk.Bizware.BizwareGL.csproj">
|
||||
<Project>{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465}</Project>
|
||||
<Project>{9f84a0b2-861e-4ef4-b89b-5e2a3f38a465}</Project>
|
||||
<Name>BizHawk.Bizware.BizwareGL</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
|
|
|
@ -14,43 +14,29 @@
|
|||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Debug\BizHawk.Bizware.BizwareGL.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>..\..\output\dll\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\BizHawk.Bizware.BizwareGL.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
|
||||
|
|
|
@ -17,7 +17,7 @@ for /f "skip=2 tokens=2,*" %%A in ('reg.exe query "HKLM\SOFTWARE\Microsoft\MSBui
|
|||
IF NOT EXIST %MSBUILDDIR%nul goto MISSINGMSBUILD
|
||||
IF NOT EXIST %MSBUILDDIR%msbuild.exe goto MISSINGMSBUILD
|
||||
|
||||
call "%MSBUILDDIR%msbuild.exe" ..\BizHawk.sln /p:Configuration=Release /p:Platform="x64" /t:rebuild
|
||||
call "%MSBUILDDIR%msbuild.exe" ..\BizHawk.sln /p:Configuration=Release /p:Platform="Any Cpu" /t:rebuild
|
||||
|
||||
@if errorlevel 1 goto MSBUILDFAILED
|
||||
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -16,39 +16,26 @@
|
|||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Debug\Version.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\Release\Version.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -454,30 +454,30 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
|||
|
||||
GPGX_EX void gpgx_write_m68k_bus(unsigned addr, unsigned data)
|
||||
{
|
||||
unsigned char *base = m68k.memory_map[addr >> 16 & 0xff].base;
|
||||
if (base)
|
||||
base[addr & 0xffff ^ 1] = data;
|
||||
cpu_memory_map m = m68k.memory_map[addr >> 16 & 0xff];
|
||||
if (m.base && !m.write8)
|
||||
m.base[addr & 0xffff ^ 1] = data;
|
||||
}
|
||||
|
||||
GPGX_EX void gpgx_write_s68k_bus(unsigned addr, unsigned data)
|
||||
{
|
||||
unsigned char *base = s68k.memory_map[addr >> 16 & 0xff].base;
|
||||
if (base)
|
||||
base[addr & 0xffff ^ 1] = data;
|
||||
cpu_memory_map m = s68k.memory_map[addr >> 16 & 0xff];
|
||||
if (m.base && !m.write8)
|
||||
m.base[addr & 0xffff ^ 1] = data;
|
||||
}
|
||||
GPGX_EX unsigned gpgx_peek_m68k_bus(unsigned addr)
|
||||
{
|
||||
unsigned char *base = m68k.memory_map[addr >> 16 & 0xff].base;
|
||||
if (base)
|
||||
return base[addr & 0xffff ^ 1];
|
||||
cpu_memory_map m = m68k.memory_map[addr >> 16 & 0xff];
|
||||
if (m.base && !m.read8)
|
||||
return m.base[addr & 0xffff ^ 1];
|
||||
else
|
||||
return 0xff;
|
||||
}
|
||||
GPGX_EX unsigned gpgx_peek_s68k_bus(unsigned addr)
|
||||
{
|
||||
unsigned char *base = s68k.memory_map[addr >> 16 & 0xff].base;
|
||||
if (base)
|
||||
return base[addr & 0xffff ^ 1];
|
||||
cpu_memory_map m = s68k.memory_map[addr >> 16 & 0xff];
|
||||
if (m.base && !m.read8)
|
||||
return m.base[addr & 0xffff ^ 1];
|
||||
else
|
||||
return 0xff;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ char cartridge_load(const void *data, size_t sz)
|
|||
if (rom[0x143] == 0xC0 || rom[0x143] == 0x80)
|
||||
{
|
||||
utils_log("Gameboy Color cartridge\n");
|
||||
global_cgb = 1;
|
||||
global_cgb = global_sgb ? 0 : 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 06a2bc83c9288c5efd5872d5d2e4b94f03d6e4b7
|
||||
Subproject commit 6d1d6dc591cb1cbb183760d2783dd37f0d8bf773
|
|
@ -779,6 +779,11 @@ EXPORT void FrameAdvance(MyFrameInfo* frame)
|
|||
VB_V810->ResetTS(0);
|
||||
}
|
||||
|
||||
EXPORT void PredictFrameSize(MyFrameInfo* frame)
|
||||
{
|
||||
VIP_CalcFrameSize(frame);
|
||||
}
|
||||
|
||||
EXPORT void HardReset()
|
||||
{
|
||||
VB_Power();
|
||||
|
|
|
@ -864,18 +864,8 @@ MDFN_FASTCALL void VIP_Write16(int32 ×tamp, uint32 A, uint16 V)
|
|||
static MDFN_Surface real_surface;
|
||||
static MDFN_Surface *surface;
|
||||
|
||||
void VIP_StartFrame(MyFrameInfo* frame)
|
||||
void VIP_CalcFrameSize(MyFrameInfo* frame)
|
||||
{
|
||||
// puts("Start frame");
|
||||
|
||||
if (VidSettingsDirty)
|
||||
{
|
||||
MakeColorLUT();
|
||||
Recalc3DModeStuff();
|
||||
|
||||
VidSettingsDirty = false;
|
||||
}
|
||||
|
||||
switch (VB3DMode)
|
||||
{
|
||||
default:
|
||||
|
@ -903,6 +893,22 @@ void VIP_StartFrame(MyFrameInfo* frame)
|
|||
frame->Height = 224;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void VIP_StartFrame(MyFrameInfo* frame)
|
||||
{
|
||||
// puts("Start frame");
|
||||
|
||||
if (VidSettingsDirty)
|
||||
{
|
||||
MakeColorLUT();
|
||||
Recalc3DModeStuff();
|
||||
|
||||
VidSettingsDirty = false;
|
||||
}
|
||||
|
||||
VIP_CalcFrameSize(frame);
|
||||
|
||||
|
||||
surface = &real_surface;
|
||||
real_surface.pixels = frame->VideoBuffer;
|
||||
|
|
|
@ -38,6 +38,7 @@ v810_timestamp_t MDFN_FASTCALL VIP_Update(const v810_timestamp_t timestamp);
|
|||
void VIP_ResetTS(void);
|
||||
|
||||
void VIP_StartFrame(MyFrameInfo* frame);
|
||||
void VIP_CalcFrameSize(MyFrameInfo* frame);
|
||||
|
||||
MDFN_FASTCALL uint8 VIP_Read8(v810_timestamp_t ×tamp, uint32 A);
|
||||
MDFN_FASTCALL uint16 VIP_Read16(v810_timestamp_t ×tamp, uint32 A);
|
||||
|
|
Loading…
Reference in New Issue