/// <summary> /// Creates an instance of the specified machine. /// </summary> /// <param name="machineType"></param> /// <param name="cart"></param> /// <param name="bios">7800 BIOS, optional.</param> /// <param name="hsc">7800 High Score cart, optional.</param> /// <param name="p1">Left controller, optional.</param> /// <param name="p2">Right controller, optional.</param> /// <param name="logger"></param> /// <exception cref="ArgumentNullException">Cart must not be null.</exception> /// <exception cref="Emu7800Exception">Specified MachineType is unexpected.</exception> public static MachineBase Create(MachineType machineType, Cart cart, Bios7800 bios, HSC7800 hsc, Controller p1, Controller p2, ILogger logger) { if (cart == null) { throw new ArgumentNullException("cart"); } MachineBase m; switch (machineType) { case MachineType.A2600NTSC: m = new Machine2600NTSC(cart, logger); break; case MachineType.A2600PAL: m = new Machine2600PAL(cart, logger); break; case MachineType.A7800NTSC: m = new Machine7800NTSC(cart, bios, hsc, logger); break; case MachineType.A7800PAL: m = new Machine7800PAL(cart, bios, hsc, logger); break; default: throw new Emu7800Exception("Unexpected MachineType: " + machineType); } m.InputState.LeftControllerJack = p1; m.InputState.RightControllerJack = p2; m.Reset(); return(m); }
/// <summary> /// Creates an instance of the specified machine. /// </summary> /// <param name="machineType"></param> /// <param name="cart"></param> /// <param name="bios">7800 BIOS, optional.</param> /// <param name="hsc">7800 High Score cart, optional.</param> /// <param name="p1">Left controller, optional.</param> /// <param name="p2">Right controller, optional.</param> /// <param name="logger"></param> /// <exception cref="ArgumentNullException">Cart must not be null.</exception> /// <exception cref="Emu7800Exception">Specified MachineType is unexpected.</exception> public static MachineBase Create(MachineType machineType, Cart cart, Bios7800 bios, HSC7800 hsc, Controller p1, Controller p2, ILogger logger) { if (cart == null) throw new ArgumentNullException("cart"); MachineBase m; switch (machineType) { case MachineType.A2600NTSC: m = new Machine2600NTSC(cart, logger); break; case MachineType.A2600PAL: m = new Machine2600PAL(cart, logger); break; case MachineType.A7800NTSC: m = new Machine7800NTSC(cart, bios, hsc, logger); break; case MachineType.A7800PAL: m = new Machine7800PAL(cart, bios, hsc, logger); break; default: throw new Emu7800Exception("Unexpected MachineType: " + machineType); } m.InputState.LeftControllerJack = p1; m.InputState.RightControllerJack = p2; m.Reset(); return m; }