Exemple #1
0
        public PutSettingsDirtyBits PutSettings(NymaSettings o)
        {
            var n = o.Clone();

            n.Normalize(SettingsInfo);
            var ret      = NymaSettings.Reboot(_settings, n, SettingsInfo);
            var notifies = NymaSettings.ChangedKeys(_settings, n, SettingsInfo).ToList();

            _settings = n;
            if (SettingsInfo.LayerNames.Count > 0)
            {
                ulong layers = ~0ul;
                for (int i = 0; i < 64 && i < SettingsInfo.LayerNames.Count; i++)
                {
                    if (_settings.DisabledLayers.Contains(SettingsInfo.LayerNames[i]))
                    {
                        layers &= ~(1ul << i);
                    }
                }
                _nyma.SetLayers(layers);
            }
            foreach (var key in notifies)
            {
                _nyma.NotifySettingChanged(key);
            }
            return(ret);
        }
Exemple #2
0
 public Saturnus(CoreComm comm, GameInfo game,
                 IEnumerable <Disc> disks, NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
     : base(comm, "SAT", "Saturn Controller", settings, syncSettings)
 {
     var firmwares = new Dictionary <string, (string, string)>
     {
         { "FIRMWARE:$J", ("SAT", "J") },
Exemple #3
0
        public NeoGeoPort(CoreComm comm, byte[] rom, GameInfo game,
                          NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic, string extension)
            : base(comm, VSystemID.Raw.NGP, "NeoGeo Portable Controller", settings, syncSettings)
        {
            _neopop = DoInit <LibNeoGeoPort>(game, rom, null, "ngp.wbx", extension, deterministic);

            _cachedSettingsInfo ??= SettingsInfo.Clone();
        }
Exemple #4
0
 public TurboNyma(GameInfo game, byte[] rom, CoreComm comm, string extension,
                  NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
     : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
 {
     if (game["BRAM"])
     {
         SettingOverrides["pce.disable_bram_hucard"].Default = "0";
     }
     _turboNyma = DoInit <LibTurboNyma>(game, rom, null, "turbo.wbx", extension, deterministic);
 }
Exemple #5
0
            public static IEnumerable <string> ChangedKeys(NymaSettings x, NymaSettings y, NymaSettingsInfo info)
            {
                var possible = info.AllOverrides.Where(kvp => kvp.Value.NonSync && kvp.Value.NoRestart).Select(kvp => kvp.Key);

                return(possible.Where(key =>
                {
                    x.MednafenValues.TryGetValue(key, out var xx);
                    y.MednafenValues.TryGetValue(key, out var yy);
                    return xx != yy;
                }));
            }
        public TerboGrafixSanic(GameInfo game, Disc[] discs, CoreComm comm,
                                NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
            : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
        {
            var firmwares = new Dictionary <string, byte[]>
            {
                { "FIRMWARE:syscard3.pce", comm.CoreFileProvider.GetFirmware("PCECD", "Bios", true) },
            };

            _terboGrafix = DoInit <LibTerboGrafixSanic>(game, null, discs, "pce-fast.wbx", null, deterministic, firmwares);
        }
Exemple #7
0
        public Tst(CoreComm comm, GameInfo game,
                   IEnumerable <Disc> disks, NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
            : base(comm, "PCFX", "PC-FX Controller", settings, syncSettings)
        {
            var firmwares = new Dictionary <string, (string, string)>
            {
                { "FIRMWARE:pcfx.rom", ("PCFX", "BIOS") },
            };

            DoInit <LibNymaCore>(game, null, disks.ToArray(), "pcfx.wbx", null, deterministic, firmwares);
        }
Exemple #8
0
 protected NymaCore(CoreComm comm,
                    string systemId, string controllerDeckName,
                    NymaSettings settings, NymaSyncSettings syncSettings)
     : base(comm, new Configuration {
     SystemId = systemId
 })
 {
     _settings           = settings ?? new NymaSettings();
     _syncSettings       = syncSettings ?? new NymaSyncSettings();
     _syncSettingsActual = _syncSettings;
     _controllerDeckName = controllerDeckName;
 }
Exemple #9
0
        public HyperNyma(GameInfo game, Disc[] discs, CoreComm comm,
                         NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
            : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
        {
            var firmwares = new Dictionary <string, (string, string)>
            {
                { "FIRMWARE:syscard3.pce", ("PCECD", "Bios") },
                // { "FIRMWARE:gecard.pce", ("PCECD", "GE-Bios") },
            };

            _hyperNyma = DoInit <LibHyperNyma>(game, null, discs, "hyper.wbx", null, deterministic, firmwares);
        }
Exemple #10
0
        public Faust(GameInfo game, byte[] rom, CoreComm comm, string extension,
                     NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
            : base(comm, "SNES", "I don't think anything uses this parameter", settings, syncSettings)
        {
            if (deterministic)
            {
                // force ST renderer
                SettingsOverrides.Add("snes_faust.renderer", "0");
            }

            DoInit <LibNymaCore>(game, rom, null, "faust.wbx", extension, deterministic);
        }
Exemple #11
0
        public Faust(GameInfo game, byte[] rom, CoreComm comm, string extension,
                     NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
            : base(comm, "SNES", "SNES Controller", settings, syncSettings)
        {
            if (deterministic)
            {
                // force ST renderer
                SettingOverrides.Add("snes_faust.renderer", new() { Hide = true, Default = "0" });
            }

            DoInit <LibNymaCore>(game, rom, null, "faust.wbx", extension, deterministic);
        }
Exemple #12
0
        public TerboGrafix(GameInfo game, Disc[] discs, CoreComm comm,
                           NymaSettings settings, NymaSyncSettings syncSettings)
            : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
        {
            // TODO: detect GECD and only ask for the firmware we need
            var firmwares = new Dictionary <string, byte[]>
            {
                { "FIRMWARE:syscard3.pce", comm.CoreFileProvider.GetFirmware("PCECD", "Bios", true) },
                { "FIRMWARE:gecard.pce", comm.CoreFileProvider.GetFirmware("PCECD", "GE-Bios", true) },
            };

            DoInit <LibNymaCore>(game, null, discs, "pce.wbx", null, firmwares);
        }
Exemple #13
0
            public static PutSettingsDirtyBits Reboot(NymaSettings x, NymaSettings y, NymaSettingsInfo info)
            {
                var restarters = info.AllOverrides.Where(kvp => kvp.Value.NonSync && !kvp.Value.NoRestart).Select(kvp => kvp.Key);

                foreach (var key in restarters)
                {
                    x.MednafenValues.TryGetValue(key, out var xx);
                    y.MednafenValues.TryGetValue(key, out var yy);
                    if (xx != yy)
                    {
                        return(PutSettingsDirtyBits.RebootCore);
                    }
                }
                return(PutSettingsDirtyBits.None);
            }
Exemple #14
0
 public PutSettingsDirtyBits PutSettings(NymaSettings o)
 {
     _settings = o.Clone();
     if (SettingsInfo.LayerNames.Count > 0)
     {
         ulong layers = ~0ul;
         for (int i = 0; i < 64 && i < SettingsInfo.LayerNames.Count; i++)
         {
             if (_settings.DisabledLayers.Contains(SettingsInfo.LayerNames[i]))
             {
                 layers &= ~(1ul << i);
             }
         }
         _nyma.SetLayers(layers);
     }
     return(PutSettingsDirtyBits.None);
 }
Exemple #15
0
        public TerboGrafix(GameInfo game, Disc[] discs, CoreComm comm,
                           NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
            : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
        {
            var firmwares = new Dictionary <string, byte[]>();
            var types     = discs.Select(d => new DiscIdentifier(d).DetectDiscType())
                            .ToList();

            if (types.Contains(DiscType.TurboCD))
            {
                firmwares.Add("FIRMWARE:syscard3.pce", comm.CoreFileProvider.GetFirmware("PCECD", "Bios", true));
            }
            if (types.Contains(DiscType.TurboGECD))
            {
                firmwares.Add("FIRMWARE:gecard.pce", comm.CoreFileProvider.GetFirmware("PCECD", "GE-Bios", true));
            }
            _terboGrafix = DoInit <LibTerboGrafix>(game, null, discs, "pce.wbx", null, deterministic, firmwares);
        }
Exemple #16
0
        public TurboNyma(GameInfo game, Disc[] discs, CoreComm comm,
                         NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
            : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
        {
            var ids = discs.Select(d => new DiscIdentifier(d).DetectDiscType())
                      .ToList();
            var firmwares = new Dictionary <string, (string, string)>();

            if (ids.Contains(DiscType.TurboCD))
            {
                firmwares.Add("FIRMWARE:syscard3.pce", ("PCECD", "Bios"));
            }
            if (ids.Contains(DiscType.TurboGECD))
            {
                firmwares.Add("FIRMWARE:gecard.pce", ("PCECD", "GE-Bios"));
            }
            _turboNyma = DoInit <LibTurboNyma>(game, null, discs, "turbo.wbx", null, deterministic, firmwares);
        }
Exemple #17
0
 public Tst(CoreComm comm, NymaSettings settings, NymaSyncSettings syncSettings)
     : base(comm, "PCFX", "PC-FX Controller", settings, syncSettings)
 {
     throw new InvalidOperationException("To load a PC-FX game, please load the CUE file and not the BIN file.");
 }
Exemple #18
0
 public Saturnus(CoreComm comm, NymaSettings settings, NymaSyncSettings syncSettings)
     : base(comm, "SAT", "Saturn Controller", settings, syncSettings)
 {
     throw new InvalidOperationException("To load a Saturn game, please load the CUE file and not the BIN file.");
 }
Exemple #19
0
 public NeoGeoPort(CoreComm comm, byte[] rom, GameInfo game,
                   NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic, string extension)
     : base(comm, "NGP", "NeoGeo Portable Controller", settings, syncSettings)
 {
     _neopop = DoInit <LibNeoGeoPort>(game, rom, null, "ngp.wbx", extension, deterministic);
 }
Exemple #20
0
 public HyperNyma(GameInfo game, byte[] rom, CoreComm comm, string extension,
                  NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
     : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
 {
     _hyperNyma = DoInit <LibHyperNyma>(game, rom, null, "hyper.wbx", extension, deterministic);
 }
 public TerboGrafixSanic(GameInfo game, byte[] rom, CoreComm comm, string extension,
                         NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic)
     : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
 {
     _terboGrafix = DoInit <LibTerboGrafixSanic>(game, rom, null, "pce-fast.wbx", extension, deterministic);
 }
Exemple #22
0
 public TerboGrafix(GameInfo game, byte[] rom, CoreComm comm, string extension,
                    NymaSettings settings, NymaSyncSettings syncSettings)
     : base(comm, "PCE", "PC Engine Controller", settings, syncSettings)
 {
     DoInit <LibNymaCore>(game, rom, null, "pce.wbx", extension);
 }