diff --git a/BizHawk.Emulation.Common/Extensions.cs b/BizHawk.Emulation.Common/Extensions.cs index 7a46db6128..2eeb188551 100644 --- a/BizHawk.Emulation.Common/Extensions.cs +++ b/BizHawk.Emulation.Common/Extensions.cs @@ -12,14 +12,19 @@ namespace BizHawk.Emulation.Common.IEmulatorExtensions return (CoreAttributes)Attribute.GetCustomAttribute(core.GetType(), typeof(CoreAttributes)); } + public static bool IsNull(this IEmulator core) + { + return core == null || core is NullEmulator; + } + public static bool HasMemoryDomains(this IEmulator core) { - return core is IMemoryDomains; + return core != null && core.ServiceProvider.HasService(); } public static bool HasSaveRam(this IEmulator core) { - return core is ISaveRam; + return core != null && core.ServiceProvider.HasService(); } public static bool HasSavestates(this IEmulator core) @@ -29,12 +34,7 @@ namespace BizHawk.Emulation.Common.IEmulatorExtensions public static bool CanPollInput(this IEmulator core) { - return core is IInputPollable; - } - - public static bool IsNull(this IEmulator core) - { - return core == null || core is NullEmulator; + return core != null && core.ServiceProvider.HasService(); } public static bool CpuTraceAvailable(this IEmulator core)