public MelonSyncSettings GetSyncSettings() { var ret = new MelonSyncSettings(); fixed(byte *ptr = ret.UserSettings) { if (!GetUserSettings(ptr)) { return(null); } } ret.BootToFirmware = !GetDirectBoot(); ret.TimeAtBoot = GetTimeAtBoot(); return(ret); }
public MelonDS(byte[] file, CoreComm comm, MelonSettings settings, MelonSyncSettings syncSettings) { _serviceProvider = new BasicServiceProvider(this); ControllerDefinition = new ControllerDefinition { Name = "NDS Controller" }; ControllerDefinition.BoolButtons.Add("Left"); ControllerDefinition.BoolButtons.Add("Right"); ControllerDefinition.BoolButtons.Add("Up"); ControllerDefinition.BoolButtons.Add("Down"); ControllerDefinition.BoolButtons.Add("A"); ControllerDefinition.BoolButtons.Add("B"); ControllerDefinition.BoolButtons.Add("X"); ControllerDefinition.BoolButtons.Add("Y"); ControllerDefinition.BoolButtons.Add("L"); ControllerDefinition.BoolButtons.Add("R"); ControllerDefinition.BoolButtons.Add("Start"); ControllerDefinition.BoolButtons.Add("Select"); ControllerDefinition.BoolButtons.Add("LidOpen"); ControllerDefinition.BoolButtons.Add("LidClose"); ControllerDefinition.BoolButtons.Add("Power"); ControllerDefinition.BoolButtons.Add("Touch"); ControllerDefinition.AddXYPair("Touch{0}", AxisPairOrientation.RightAndUp, 0.RangeTo(255), 128, 0.RangeTo(191), 96); //TODO verify direction against hardware CoreComm = comm; _resampler = new SpeexResampler(SpeexResampler.Quality.QUALITY_DEFAULT, 32768, 44100, 32768, 44100); SetUpFiles(); PutSettings(settings as MelonSettings); PutSyncSettings(syncSettings as MelonSyncSettings); if (!Init()) { throw new Exception("Failed to init NDS."); } InitMemoryDomains(); fixed(byte *f = file) { LoadROM(f, file.Length); } }
public PutSettingsDirtyBits PutSyncSettings(MelonSyncSettings o) { if (o == null) { o = new MelonSyncSettings(); SetUserSettings(null); } else { fixed(byte *ptr = o.UserSettings) SetUserSettings(ptr); } SetDirectBoot(!o.BootToFirmware); SetTimeAtBoot(o.TimeAtBoot); // At present, no sync settings can be modified without requiring a reboot. return(PutSettingsDirtyBits.RebootCore); }