Extract subtype PortedCoreAttribute from CoreAttribute

This commit is contained in:
YoshiRulz 2021-05-07 00:14:37 +10:00
parent 796d0652e4
commit 98b07c42d5
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
53 changed files with 89 additions and 209 deletions
src
BizHawk.Client.EmuHawk
BizHawk.Emulation.Common
BizHawk.Emulation.Cores
Arcades/MAME
Calculator
Computers
AmstradCPC
AppleII
Commodore64
MSX
SinclairSpectrum
Consoles
Libretro

View File

@ -21,11 +21,11 @@ namespace BizHawk.Client.EmuHawk
CoreAuthorLabel.Visible = false;
}
if (attributes.Ported)
if (attributes is PortedCoreAttribute ported)
{
CorePortedLabel.Text = " (Ported)";
_url = attributes.PortedUrl;
CoreUrlLink.Text = attributes.PortedVersion;
_url = ported.PortedUrl;
CoreUrlLink.Text = ported.PortedVersion;
CoreUrlLink.Visible = true;
}
}

View File

@ -19,7 +19,7 @@ namespace BizHawk.Client.EmuHawk.CoreExtensions
{
var attributes = core.Attributes();
if (!attributes.Ported)
if (attributes is not PortedCoreAttribute)
{
return Properties.Resources.CorpHawkSmall;
}

View File

@ -2795,7 +2795,7 @@ namespace BizHawk.Client.EmuHawk
CoreNameStatusBarButton.Text = coreDispName;
CoreNameStatusBarButton.Image = Emulator.Icon();
CoreNameStatusBarButton.ToolTipText = attributes.Ported ? "(ported) " : "";
CoreNameStatusBarButton.ToolTipText = attributes is PortedCoreAttribute ? "(ported) " : "";
if (Emulator.SystemId == "ZXSpectrum")

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Common
{
[Core("NullHawk", "", false, true)]
[Core("NullHawk", "")]
[ServiceNotApplicable(new[] {
typeof(IVideoProvider),
typeof(IBoardInfo),

View File

@ -1,27 +1,47 @@
using System;
#nullable enable
using System;
namespace BizHawk.Emulation.Common
{
[AttributeUsage(AttributeTargets.Class)]
public sealed class CoreAttribute : Attribute
public class CoreAttribute : Attribute
{
public CoreAttribute(string name, string author, bool isPorted, bool isReleased, string portedVersion = null, string portedUrl = null, bool singleInstance = false)
public readonly string Author;
public readonly string CoreName;
public readonly bool Released;
public readonly bool SingleInstance;
public CoreAttribute(string name, string author, bool singleInstance = false, bool isReleased = true)
{
CoreName = name;
Author = author;
Ported = isPorted;
CoreName = name;
Released = isReleased;
PortedVersion = portedVersion ?? string.Empty;
PortedUrl = portedUrl ?? string.Empty;
SingleInstance = singleInstance;
}
}
public string CoreName { get; }
public string Author { get; }
public bool Ported { get; }
public bool Released { get; }
public string PortedVersion { get; }
public string PortedUrl { get; }
public bool SingleInstance { get; }
[AttributeUsage(AttributeTargets.Class)]
public sealed class PortedCoreAttribute : CoreAttribute
{
public readonly string PortedUrl;
public readonly string PortedVersion;
public PortedCoreAttribute(
string name,
string author,
string portedVersion = "",
string portedUrl = "",
bool singleInstance = false,
bool isReleased = true)
: base(name, author, singleInstance, isReleased)
{
PortedUrl = portedUrl;
PortedVersion = portedVersion;
}
}
}

View File

@ -83,14 +83,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Arcades.MAME
{
[Core(
name: CoreNames.MAME,
author: "MAMEDev",
isPorted: true,
isReleased: false,
portedVersion: "0.230",
portedUrl: "https://github.com/mamedev/mame.git",
singleInstance: false)]
[PortedCore(CoreNames.MAME, "MAMEDev", "0.230", "https://github.com/mamedev/mame.git", isReleased: false)]
public partial class MAME : IEmulator, IVideoProvider, ISoundProvider, ISettable<object, MAME.SyncSettings>, IStatable, IInputPollable
{
public MAME(string dir, string file, MAME.SyncSettings syncSettings, out string gamename)
@ -210,7 +203,7 @@ namespace BizHawk.Emulation.Cores.Arcades.MAME
private void CheckVersions()
{
var mameVersion = MameGetString(MAMELuaCommand.GetVersion);
var version = this.Attributes().PortedVersion;
var version = ((PortedCoreAttribute) this.Attributes()).PortedVersion;
Debug.Assert(version == mameVersion,
"MAME versions desync!\n\n" +
$"MAME is { mameVersion }\n" +

View File

@ -6,11 +6,7 @@ using BizHawk.Emulation.Cores.Components.Z80A;
// http://www.ticalc.org/pub/text/calcinfo/
namespace BizHawk.Emulation.Cores.Calculators
{
[Core(
CoreNames.TI83Hawk,
"zeromus",
isPorted: false,
isReleased: true)]
[Core(CoreNames.TI83Hawk, "zeromus")]
[ServiceNotApplicable(new[] { typeof(IBoardInfo), typeof(IDriveLight), typeof(IRegionable), typeof(ISaveRam), typeof(ISoundProvider) })]
public partial class TI83 : IEmulator, IVideoProvider, IDebuggable, IInputPollable, ISettable<TI83.TI83Settings, object>
{

View File

@ -13,11 +13,7 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC
/// CPCHawk: Core Class
/// * Main Initialization *
/// </summary>
[Core(
CoreNames.CPCHawk,
"Asnivor",
isPorted: false,
isReleased: false)]
[Core(CoreNames.CPCHawk, "Asnivor", isReleased: false)]
public partial class AmstradCPC : IRegionable, IDriveLight
{
[CoreConstructor("AmstradCPC")]

View File

@ -6,11 +6,7 @@ using Jellyfish.Virtu;
namespace BizHawk.Emulation.Cores.Computers.AppleII
{
[Core(
CoreNames.Virtu,
"fool",
isPorted: true,
isReleased: true)]
[PortedCore(CoreNames.Virtu, "fool")]
[ServiceNotApplicable(new[] { typeof(IBoardInfo), typeof(IRegionable), typeof(ISaveRam) })]
public partial class AppleII : IEmulator, ISoundProvider, IVideoProvider, IStatable, IDriveLight
{

View File

@ -9,11 +9,7 @@ using BizHawk.Emulation.Cores.Computers.Commodore64.Media;
namespace BizHawk.Emulation.Cores.Computers.Commodore64
{
[Core(
CoreNames.C64Hawk,
"SaxxonPike",
isPorted: false,
isReleased: true)]
[Core(CoreNames.C64Hawk, "SaxxonPike")]
public sealed partial class C64 : IEmulator, IRegionable, IBoardInfo, IRomInfo
{
[CoreConstructor("C64")]

View File

@ -4,7 +4,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Computers.MSX
{
[Core(CoreNames.MSXHawk, "", isPorted: false, isReleased: false)]
[Core(CoreNames.MSXHawk, "", isReleased: false)]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class MSX : IEmulator, IVideoProvider, ISoundProvider, ISaveRam, IInputPollable, IRegionable, ISettable<MSX.MSXSettings, MSX.MSXSyncSettings>
{

View File

@ -14,11 +14,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
/// ZXHawk: Core Class
/// * Main Initialization *
/// </summary>
[Core(
CoreNames.ZXHawk,
"Asnivor, Alyosha",
isPorted: false,
isReleased: true)]
[Core(CoreNames.ZXHawk, "Asnivor, Alyosha")]
public partial class ZXSpectrum : IRegionable, IDriveLight
{
[CoreConstructor("ZXSpectrum")]

View File

@ -6,7 +6,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
[Core(CoreNames.Atari2600Hawk, "Micro500, Alyosha, adelikat, natt", isPorted: false, isReleased: true)]
[Core(CoreNames.Atari2600Hawk, "Micro500, Alyosha, adelikat, natt")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(ISaveRam) })]
public partial class Atari2600 : IEmulator, IDebuggable, IInputPollable, IBoardInfo, IRomInfo,
IRegionable, ICreateGameDBEntries, ISettable<Atari2600.A2600Settings, Atari2600.A2600SyncSettings>

View File

@ -7,11 +7,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
{
[Core(
CoreNames.A7800Hawk,
"",
isPorted: false,
isReleased: true)]
[Core(CoreNames.A7800Hawk, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(ISettable<,>) })]
public partial class A7800Hawk : IEmulator, ISaveRam, IDebuggable, IInputPollable,
IRegionable, IBoardInfo, ISettable<A7800Hawk.A7800Settings, A7800Hawk.A7800SyncSettings>

View File

@ -7,7 +7,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Atari.Lynx
{
[Core(CoreNames.Handy, "K. Wilkins, Mednafen Team", true, true, "mednafen 0-9-34-1", "http://mednafen.sourceforge.net/", false)]
[PortedCore(CoreNames.Handy, "K. Wilkins, Mednafen Team", "mednafen 0-9-34-1", "http://mednafen.sourceforge.net/")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(IRegionable), typeof(ISettable<,>) })]
public partial class Lynx : IEmulator, IVideoProvider, ISoundProvider, ISaveRam, IStatable, IInputPollable
{

View File

@ -6,7 +6,7 @@ using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Consoles.Belogic
{
[Core(CoreNames.Uzem, "David Etherton", true, true, "", "", false)]
[PortedCore(CoreNames.Uzem, "David Etherton")]
public class Uzem : WaterboxCore
{
private LibUzem _uze;

View File

@ -4,11 +4,7 @@ using System;
namespace BizHawk.Emulation.Cores.ColecoVision
{
[Core(
CoreNames.ColecoHawk,
"Vecna",
isPorted: false,
isReleased: true)]
[Core(CoreNames.ColecoHawk, "Vecna")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(ISaveRam) })]
public sealed partial class ColecoVision : IEmulator, IDebuggable, IInputPollable, ISettable<ColecoVision.ColecoSettings, ColecoVision.ColecoSyncSettings>
{

View File

@ -3,11 +3,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Consoles.ChannelF
{
[Core(
CoreNames.ChannelFHawk,
"Asnivor",
isPorted: false,
isReleased: false)]
[Core(CoreNames.ChannelFHawk, "Asnivor", isReleased: false)]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class ChannelF
{

View File

@ -6,7 +6,7 @@ using BizHawk.Emulation.Cores.Components.MC6809;
namespace BizHawk.Emulation.Cores.Consoles.Vectrex
{
[Core(CoreNames.VectrexHawk, "", isPorted: false, isReleased: true)]
[Core(CoreNames.VectrexHawk, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class VectrexHawk : IEmulator, ISaveRam, IDebuggable, IInputPollable, IRegionable,
ISettable<object, VectrexHawk.VectrexSyncSettings>

View File

@ -5,11 +5,7 @@ using BizHawk.Emulation.Cores.Components.CP1610;
namespace BizHawk.Emulation.Cores.Intellivision
{
[Core(
CoreNames.IntelliHawk,
"BrandonE, Alyosha",
isPorted: false,
isReleased: true)]
[Core(CoreNames.IntelliHawk, "BrandonE, Alyosha")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(IRegionable), typeof(ISaveRam) })]
public sealed partial class Intellivision : IEmulator, IInputPollable, IDisassemblable,
IBoardInfo, IDebuggable, ISettable<Intellivision.IntvSettings, Intellivision.IntvSyncSettings>

View File

@ -6,7 +6,7 @@ using BizHawk.Emulation.Cores.Components.I8048;
namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
{
[Core(CoreNames.O2Hawk, "", isPorted: false, isReleased: true)]
[Core(CoreNames.O2Hawk, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class O2Hawk : IEmulator, ISaveRam, IDebuggable, IInputPollable, IRegionable, ISettable<O2Hawk.O2Settings, O2Hawk.O2SyncSettings>, IBoardInfo
{

View File

@ -9,7 +9,7 @@ using BizHawk.Emulation.Cores.Waterbox;
namespace BizHawk.Emulation.Cores.Consoles.NEC.PCE
{
[Core(CoreNames.HyperNyma, "Mednafen Team", true, true, "1.26.1", "https://mednafen.github.io/releases/", false)]
[PortedCore(CoreNames.HyperNyma, "Mednafen Team", "1.26.1", "https://mednafen.github.io/releases/")]
public class HyperNyma : NymaCore, IRegionable, IPceGpuView
{
private readonly LibHyperNyma _hyperNyma;

View File

@ -11,7 +11,7 @@ using BizHawk.Emulation.DiscSystem;
namespace BizHawk.Emulation.Cores.Consoles.NEC.PCE
{
[Core(CoreNames.TurboNyma, "Mednafen Team", true, true, "1.26.1", "https://mednafen.github.io/releases/", false)]
[PortedCore(CoreNames.TurboNyma, "Mednafen Team", "1.26.1", "https://mednafen.github.io/releases/")]
public class TurboNyma : NymaCore, IRegionable, IPceGpuView
{
private readonly LibTurboNyma _turboNyma;

View File

@ -5,13 +5,7 @@ using System.Collections.Generic;
namespace BizHawk.Emulation.Cores.Consoles.NEC.PCFX
{
[Core(CoreNames.TST,
author: "Mednafen Team",
isPorted: true,
isReleased: true,
portedVersion: "1.26.1",
portedUrl: "https://mednafen.github.io/releases/",
singleInstance: false)]
[PortedCore(CoreNames.TST, "Mednafen Team", "1.26.1", "https://mednafen.github.io/releases/")]
public class Tst : NymaCore
{
[CoreConstructor("PCFX")]

View File

@ -4,7 +4,7 @@ using BizHawk.Emulation.Cores.Waterbox;
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Faust
{
[Core(CoreNames.Faust, "Mednafen Team", true, true, "1.26.1", "https://mednafen.github.io/releases/", false)]
[PortedCore(CoreNames.Faust, "Mednafen Team", "1.26.1", "https://mednafen.github.io/releases/")]
public class Faust : NymaCore, IRegionable
{
[CoreConstructor("SNES")]

View File

@ -6,7 +6,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.GBA
{
[Core(CoreNames.Mgba, "endrift", true, true, "0.8", "https://mgba.io/", false)]
[PortedCore(CoreNames.Mgba, "endrift", "0.8", "https://mgba.io/")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(IRegionable) })]
public partial class MGBAHawk : IEmulator, IVideoProvider, ISoundProvider, IGBAGPUViewable,
ISaveRam, IStatable, IInputPollable, ISettable<MGBAHawk.Settings, MGBAHawk.SyncSettings>,

View File

@ -20,11 +20,7 @@ using System.Collections.Generic;
namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
{
[Core(
CoreNames.GbHawk,
"",
isPorted: false,
isReleased: true)]
[Core(CoreNames.GbHawk, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GBHawk : IEmulator, ISaveRam, IDebuggable, IInputPollable, IRegionable, IGameboyCommon,
ISettable<GBHawk.GBSettings, GBHawk.GBSyncSettings>

View File

@ -3,7 +3,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink
{
[Core(CoreNames.GBHawkLink, "", isPorted: false, isReleased: true)]
[Core(CoreNames.GBHawkLink, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GBHawkLink : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable, ILinkable,
ISettable<GBHawkLink.GBLinkSettings, GBHawkLink.GBLinkSyncSettings>

View File

@ -3,7 +3,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink3x
{
[Core(CoreNames.GBHawkLink3x, "", isPorted: false, isReleased: true)]
[Core(CoreNames.GBHawkLink3x, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GBHawkLink3x : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable,
ISettable<GBHawkLink3x.GBLink3xSettings, GBHawkLink3x.GBLink3xSyncSettings>

View File

@ -3,7 +3,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x
{
[Core(CoreNames.GBHawkLink4x, "", isPorted: false, isReleased: true)]
[Core(CoreNames.GBHawkLink4x, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GBHawkLink4x : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable,
ISettable<GBHawkLink4x.GBLink4xSettings, GBHawkLink4x.GBLink4xSyncSettings>

View File

@ -10,14 +10,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
/// <summary>
/// a gameboy/gameboy color emulator wrapped around native C++ libgambatte
/// </summary>
[Core(
CoreNames.Gambatte,
"",
isPorted: true,
isReleased: true,
portedVersion: "Gambatte-Speedrun r717+",
portedUrl: "https://github.com/pokemon-speedrunning/gambatte-speedrun",
singleInstance: false)]
[PortedCore(CoreNames.Gambatte, "", "Gambatte-Speedrun r717+", "https://github.com/pokemon-speedrunning/gambatte-speedrun")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class Gameboy : IEmulator, IVideoProvider, ISoundProvider, ISaveRam, IStatable, IInputPollable, ICodeDataLogger,
IBoardInfo, IRomInfo, IDebuggable, ISettable<Gameboy.GambatteSettings, Gameboy.GambatteSyncSettings>,

View File

@ -3,11 +3,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
{
[Core(
CoreNames.DualGambatte,
"sinamas/natt",
isPorted: true,
isReleased: true)]
[PortedCore(CoreNames.DualGambatte, "sinamas/natt")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GambatteLink : IEmulator, IVideoProvider, ISoundProvider, IInputPollable, ISaveRam, IStatable, ILinkable,
IBoardInfo, IRomInfo, IDebuggable, ISettable<GambatteLink.GambatteLinkSettings, GambatteLink.GambatteLinkSyncSettings>, ICodeDataLogger

View File

@ -10,8 +10,7 @@ using System.Linq;
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
{
[Core(CoreNames.SameBoy, "LIJI32", true, true, "efc11783c7fb6da66e1dd084e41ba6a85c0bd17e",
"https://sameboy.github.io/", false)]
[PortedCore(CoreNames.SameBoy, "LIJI32", "efc11783c7fb6da66e1dd084e41ba6a85c0bd17e", "https://sameboy.github.io/")]
public class Sameboy : WaterboxCore,
IGameboyCommon, ISaveRam,
ISettable<Sameboy.Settings, Sameboy.SyncSettings>

View File

@ -6,14 +6,7 @@ using BizHawk.Emulation.Cores.Nintendo.N64.NativeApi;
namespace BizHawk.Emulation.Cores.Nintendo.N64
{
[Core(
CoreNames.Mupen64Plus,
"",
isPorted: true,
isReleased: true,
portedVersion: "2.0",
portedUrl: "https://code.google.com/p/mupen64plus/",
singleInstance: true)]
[PortedCore(CoreNames.Mupen64Plus, "", "2.0", "https://code.google.com/p/mupen64plus/", singleInstance: true)]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class N64 : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IDisassemblable, IRegionable,
ISettable<N64Settings, N64SyncSettings>

View File

@ -7,14 +7,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
{
[Core(
CoreNames.MelonDS,
"Arisotura",
isPorted: true,
isReleased: false,
portedVersion: "0.8.2",
portedUrl: "http://melonds.kuribo64.net/",
singleInstance: true)]
[PortedCore(CoreNames.MelonDS, "Arisotura", "0.8.2", "http://melonds.kuribo64.net/", singleInstance: true, isReleased: false)]
public unsafe partial class MelonDS : IEmulator
{
private readonly BasicServiceProvider _serviceProvider;

View File

@ -9,11 +9,7 @@ using BizHawk.Emulation.Common;
//TODO - redo all timekeeping in terms of master clock
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
[Core(
CoreNames.NesHawk,
"zeromus, natt, alyosha, adelikat",
isPorted: false,
isReleased: true)]
[Core(CoreNames.NesHawk, "zeromus, natt, alyosha, adelikat")]
public partial class NES : IEmulator, ISaveRam, IDebuggable, IInputPollable, IRegionable, IVideoLogicalOffsets,
IBoardInfo, IRomInfo, ISettable<NES.NESSettings, NES.NESSyncSettings>, ICodeDataLogger
{

View File

@ -13,14 +13,7 @@ using BizHawk.Common.BufferExtensions;
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES
{
[Core(
CoreNames.QuickNes,
"",
isPorted: true,
isReleased: true,
portedVersion: "0.7.0",
portedUrl: "https://github.com/kode54/QuickNES",
singleInstance: false)]
[PortedCore(CoreNames.QuickNes, "", "0.7.0", "https://github.com/kode54/QuickNES")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class QuickNES : IEmulator, IVideoProvider, ISoundProvider, ISaveRam, IInputPollable, IBoardInfo, IVideoLogicalOffsets,
IStatable, IDebuggable, ISettable<QuickNES.QuickNESSettings, QuickNES.QuickNESSyncSettings>, INESPPUViewable

View File

@ -17,14 +17,7 @@ using BizHawk.Emulation.Cores.Components.W65816;
// wrap dll code around some kind of library-accessing interface so that it doesn't malfunction if the dll is unavailable
namespace BizHawk.Emulation.Cores.Nintendo.SNES
{
[Core(
CoreNames.Bsnes,
"byuu",
isPorted: true,
isReleased: true,
portedVersion: "v87",
portedUrl: "http://byuu.org/",
singleInstance: false)]
[PortedCore(CoreNames.Bsnes, "byuu", "v87", "http://byuu.org/")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public unsafe partial class LibsnesCore : IEmulator, IVideoProvider, ISaveRam, IStatable, IInputPollable, IRegionable, ICodeDataLogger,
IDebuggable, ISettable<LibsnesCore.SnesSettings, LibsnesCore.SnesSyncSettings>

View File

@ -11,8 +11,7 @@ using BizHawk.Emulation.Cores.Nintendo.SNES;
namespace BizHawk.Emulation.Cores.Nintendo.SNES9X
{
[Core(CoreNames.Snes9X, "", true, true,
"5e0319ab3ef9611250efb18255186d0dc0d7e125", "https://github.com/snes9xgit/snes9x", false)]
[PortedCore(CoreNames.Snes9X, "", "5e0319ab3ef9611250efb18255186d0dc0d7e125", "https://github.com/snes9xgit/snes9x")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public class Snes9x : WaterboxCore,
ISettable<Snes9x.Settings, Snes9x.SyncSettings>, IRegionable

View File

@ -5,11 +5,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.SubGBHawk
{
[Core(
CoreNames.SubGbHawk,
"",
isPorted: false,
isReleased: true)]
[Core(CoreNames.SubGbHawk, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class SubGBHawk : IEmulator, IStatable, IInputPollable,
ISettable<GBHawk.GBHawk.GBSettings, GBHawk.GBHawk.GBSyncSettings>, IDebuggable

View File

@ -3,11 +3,7 @@ using BizHawk.Emulation.Cores.Nintendo.NES;
namespace BizHawk.Emulation.Cores.Nintendo.SubNESHawk
{
[Core(
CoreNames.SubNesHawk,
"",
isPorted: false,
isReleased: true)]
[Core(CoreNames.SubNesHawk, "")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class SubNESHawk : IEmulator, IStatable, IInputPollable,
ISettable<NES.NES.NESSettings, NES.NES.NESSyncSettings>

View File

@ -10,13 +10,7 @@ using System.Linq;
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
{
[Core(CoreNames.VirtualBoyee,
author: "Mednafen Team",
isPorted: true,
isReleased: true,
portedVersion: "0.9.44.1",
portedUrl: "https://mednafen.github.io/releases/",
singleInstance: false)]
[PortedCore(CoreNames.VirtualBoyee, "Mednafen Team", "0.9.44.1", "https://mednafen.github.io/releases/")]
public class VirtualBoyee : WaterboxCore, ISettable<VirtualBoyee.Settings, VirtualBoyee.SyncSettings>
{
private readonly LibVirtualBoyee _boyee;

View File

@ -11,7 +11,7 @@ namespace BizHawk.Emulation.Cores.PCEngine
{
public enum NecSystemType { TurboGrafx, TurboCD, SuperGrafx }
[Core(CoreNames.PceHawk, "Vecna", isPorted: false, isReleased: true)]
[Core(CoreNames.PceHawk, "Vecna")]
public sealed partial class PCEngine : IEmulator, ISaveRam, IInputPollable, IVideoLogicalOffsets, IRomInfo,
IDebuggable, ISettable<PCEngine.PCESettings, PCEngine.PCESyncSettings>, IDriveLight, ICodeDataLogger,
IPceGpuView

View File

@ -5,13 +5,7 @@ using System.Collections.Generic;
namespace BizHawk.Emulation.Cores.Consoles.SNK
{
[Core(CoreNames.NeoPop,
author: "Thomas Klausner, Mednafen Team",
isPorted: true,
isReleased: true,
portedVersion: "1.26.1",
portedUrl: "https://mednafen.github.io/releases/",
singleInstance: false)]
[PortedCore(CoreNames.NeoPop, "Thomas Klausner, Mednafen Team", "1.26.1", "https://mednafen.github.io/releases/")]
public class NeoGeoPort : NymaCore,
ISaveRam // NGP provides its own saveram interface
{

View File

@ -4,7 +4,7 @@ using BizHawk.Emulation.Cores.Sega.MasterSystem;
namespace BizHawk.Emulation.Cores.Sega.GGHawkLink
{
[Core(CoreNames.GGHawkLink, "", isPorted: false, isReleased: false)]
[Core(CoreNames.GGHawkLink, "", isReleased: false)]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GGHawkLink : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable, ILinkable,
ISettable<GGHawkLink.GGLinkSettings, GGHawkLink.GGLinkSyncSettings>

View File

@ -9,8 +9,7 @@ using System.ComponentModel;
namespace BizHawk.Emulation.Cores.Consoles.Sega.PicoDrive
{
[Core(CoreNames.PicoDrive, "notaz", true, true,
"0e352905c7aa80b166933970abbcecfce96ad64e", "https://github.com/notaz/picodrive", false)]
[PortedCore(CoreNames.PicoDrive, "notaz", "0e352905c7aa80b166933970abbcecfce96ad64e", "https://github.com/notaz/picodrive")]
public class PicoDrive : WaterboxCore, IDriveLight, IRegionable, ISettable<object, PicoDrive.SyncSettings>
{
private readonly LibPicoDrive _core;

View File

@ -14,11 +14,7 @@ using BizHawk.Emulation.Cores.Components.Z80A;
namespace BizHawk.Emulation.Cores.Sega.MasterSystem
{
[Core(
CoreNames.SMSHawk,
"Vecna",
isPorted: false,
isReleased: true)]
[Core(CoreNames.SMSHawk, "Vecna")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class SMS : IEmulator, ISoundProvider, ISaveRam, IInputPollable, IRegionable,
IDebuggable, ISettable<SMS.SmsSettings, SMS.SmsSyncSettings>, ICodeDataLogger

View File

@ -5,13 +5,7 @@ using System.Collections.Generic;
namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
{
[Core(CoreNames.Saturnus,
author: "Mednafen Team",
isPorted: true,
isReleased: true,
portedVersion: "1.26.1",
portedUrl: "https://mednafen.github.io/releases/",
singleInstance: false)]
[PortedCore(CoreNames.Saturnus, "Mednafen Team", "1.26.1", "https://mednafen.github.io/releases/")]
public class Saturnus : NymaCore, IRegionable
{
[CoreConstructor("SAT")]

View File

@ -10,14 +10,7 @@ using System.Linq;
namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
{
[Core(
CoreNames.Gpgx,
"",
isPorted: true,
isReleased: true,
portedVersion: "r874",
portedUrl: "https://code.google.com/p/genplus-gx/",
singleInstance: false)]
[PortedCore(CoreNames.Gpgx, "", "r874", "https://code.google.com/p/genplus-gx/")]
public partial class GPGX : IEmulator, IVideoProvider, ISaveRam, IStatable, IRegionable,
IInputPollable, IDebuggable, IDriveLight, ICodeDataLogger, IDisassemblable
{

View File

@ -7,7 +7,7 @@ using BizHawk.Emulation.DiscSystem;
namespace BizHawk.Emulation.Cores.Sony.PS2
{
[Core(CoreNames.DobieStation, "PSI", true, false, "fa33778b056aa32", "https://github.com/PSI-Rockin/DobieStation", false)]
[PortedCore(CoreNames.DobieStation, "PSI", "fa33778b056aa32", "https://github.com/PSI-Rockin/DobieStation", isReleased: false)]
public unsafe class DobieStation : WaterboxCore, ISettable<object, DobieStation.DobieSyncSettings>
{
private readonly LibDobieStation _core;

View File

@ -29,11 +29,7 @@ using BizHawk.Emulation.DiscSystem;
namespace BizHawk.Emulation.Cores.Sony.PSX
{
[Core(
CoreNames.Octoshock,
"Mednafen Team",
isPorted: true,
isReleased: true)]
[PortedCore(CoreNames.Octoshock, "Mednafen Team")]
public unsafe partial class Octoshock : IEmulator, IVideoProvider, ISoundProvider, ISaveRam, IStatable, IDriveLight, ISettable<Octoshock.Settings, Octoshock.SyncSettings>, IRegionable, IInputPollable, IRomInfo
{
public Octoshock(CoreComm comm, PSF psf, Octoshock.Settings settings, Octoshock.SyncSettings syncSettings)

View File

@ -6,7 +6,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.WonderSwan
{
[Core(CoreNames.Cygne, "Dox, Mednafen Team", true, true, "1.24.3", "https://mednafen.github.io/releases/", false)]
[PortedCore(CoreNames.Cygne, "Dox, Mednafen Team", "1.24.3", "https://mednafen.github.io/releases/")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(IRegionable) })]
public partial class WonderSwan : IEmulator, IVideoProvider, ISoundProvider,
IInputPollable, IDebuggable

View File

@ -13,7 +13,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Libretro
{
[Core(CoreNames.Libretro, "zeromus", isPorted: false, isReleased: false)]
[Core(CoreNames.Libretro, "zeromus", isReleased: false)]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public unsafe partial class LibretroCore : IEmulator, ISettable<LibretroCore.Settings, LibretroCore.SyncSettings>,
ISaveRam, IStatable, IVideoProvider, IInputPollable