From eb7d708d71bed1a987aaa082daa4901d8e76bff3 Mon Sep 17 00:00:00 2001 From: mudlord Date: Tue, 31 Jan 2023 05:39:52 +1100 Subject: [PATCH] Use proper VFS version. VFS callbacks fail since it requires V2, which includes vfs_truncate. Otherwise it falls back to libretro-common code. Current VFS wrapping code in libretro-common needs V2 since vfs_truncate's callback is set. https://github.com/libretro/libretro-common/blob/master/streams/file_stream.c#L65 Now VFS callbacks work properly in frontends that support them. Otherwise a hack of setting "cb->required_interface_version = 2" in frontend works. Only cores, according to specs, are meant to set the required version. --- libretro/libretro.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libretro/libretro.c b/libretro/libretro.c index e73afc4..a5d3f08 100644 --- a/libretro/libretro.c +++ b/libretro/libretro.c @@ -685,7 +685,7 @@ void retro_set_environment(retro_environment_t cb) }; environ_cb(RETRO_ENVIRONMENT_GET_PERF_INTERFACE, &perf_cb); - vfs_iface_info.required_interface_version = 1; + vfs_iface_info.required_interface_version = 2; vfs_iface_info.iface = NULL; if (environ_cb(RETRO_ENVIRONMENT_GET_VFS_INTERFACE, &vfs_iface_info)) filestream_vfs_init(&vfs_iface_info);