protected bool SetAVInfo(IntPtr data)
        {
            retro_system_av_info *av = (retro_system_av_info *)data.ToPointer();

            _videoInfo  = new VideoInfo((int)av->geometry.base_width, (int)av->geometry.base_height, av->geometry.aspect_ratio);
            _timingInfo = new TimingInfo(av->timing.fps, av->timing.sample_rate);
            _audioOutput?.SetTimingInfo(av->timing);
            _videoOutput?.SetGeometry(av->geometry);
            return(true);
        }
        protected void GetAVInfo()
        {
            retro_system_av_info av = new retro_system_av_info();

            _core.GetSystemAVInfo(ref av);
            _videoInfo  = new VideoInfo((int)av.geometry.base_width, (int)av.geometry.base_height, av.geometry.aspect_ratio);
            _timingInfo = new TimingInfo(av.timing.fps, av.timing.sample_rate);
            _audioOutput?.SetTimingInfo(av.timing);
            _videoOutput?.SetGeometry(av.geometry);
        }