/// <summary>
 /// Loads the specified game.
 /// </summary>
 /// <param name="gameInfo">The game to load</param>
 /// <returns>True if the game was loaded successfully</returns>
 public bool LoadGame(retro_game_info gameInfo)
 {
     if (!_core.LoadGame(ref gameInfo))
     {
         Log(RETRO_LOG_LEVEL.WARN, "retro_load_game() failed");
         return(false);
     }
     GetAVInfo();
     return(true);
 }
        /// <summary>
        /// Loads the specified game.
        /// </summary>
        /// <param name="path">The path to the game to load</param>
        /// <param name="data">If <see cref="SystemInfo.NeedsFullPath"/> is <c>false</c> this should be a byte array containing the game. Otherwise <c>null</c></param>
        /// <param name="meta">The metadata to pass to the core</param>
        /// <returns>True if the game was loaded successfully</returns>
        public bool LoadGame(string path, byte[] data, string meta)
        {
            retro_game_info gameInfo = new retro_game_info();

            gameInfo.path = path;
            gameInfo.meta = meta;
            if (data == null || data.Length == 0)
            {
                return(LoadGame(gameInfo));

                fixed(byte *p = &data[0])
                {
                    gameInfo.data = (IntPtr)p;
                    gameInfo.size = (uint)data.Length;
                    return(LoadGame(gameInfo));
                }
        }