Open crocket opened 6 years ago
It's kind of scary fiddling with the eclass without testing. I hope I didn't broke anything.
CH_64 -DHAVE_OPENGL -DDYNAREC -ffunction-sections -fdata-sections -c -o../git-version.o ../git-version.cpp
../git-version.cpp:3:38: error: too many decimal points in number
const char *PPSSPP_GIT_VERSION = ""v1.4.2-1594-g507339827"";
^~~~
../git-version.cpp:3:34: error: unable to find string literal operator ‘operator""v1’ with ‘const char [1]’, ‘long unsigned int’ arguments
const char *PPSSPP_GIT_VERSION = ""v1.4.2-1594-g507339827"";
^~~~
make: *** [Makefile:451: ../git-version.o] Error 1
make: *** Waiting for unfinished jobs....
../libretro/LibretroVulkanContext.cpp: In function ‘VkResult CreateSwapchainKHR(VkDevice, const VkSwapchainCreateInfoKHR*, const VkAllocationCallbacks*, VkSwapchainKHR_T**)’:
../libretro/LibretroVulkanContext.cpp:184:45: error: expected ‘(’ before ‘&’ token
*pSwapchain = static_cast<VkSwapchainKHR *>&chain;
^
../libretro/LibretroVulkanContext.cpp:184:51: error: expected ‘)’ before ‘;’ token
*pSwapchain = static_cast<VkSwapchainKHR *>&chain;
^
../libretro/LibretroVulkanContext.cpp:184:51: error: invalid static_cast from type ‘VkSwapchainKHR_T*’ to type ‘VkSwapchainKHR_T**’
In file included from ../libretro/LibretroVulkanContext.cpp:8:0:
../libretro/LibretroVulkanContext.cpp: In function ‘bool create_device(retro_vulkan_context*, VkInstance, VkPhysicalDevice, VkSurfaceKHR, PFN_vkGetInstanceProcAddr, const char**, unsigned int, const char**, unsigned int, const VkPhysicalDeviceFeatures*)’:
../Common/Log.h:104:51: warning: format not a string literal and no format arguments [-Wformat-security]
GenericLog(v, t, __FILE__, __LINE__, __VA_ARGS__); \
^
../Common/Log.h:107:33: note: in expansion of macro ‘GENERIC_LOG’
#define ERROR_LOG(t,...) do { GENERIC_LOG(LogTypes::t, LogTypes::LERROR, __VA_ARGS__) } while (false)
^~~~~~~~~~~
../libretro/LibretroVulkanContext.cpp:330:3: note: in expansion of macro ‘ERROR_LOG’
ERROR_LOG(G3D, vk->InitError().c_str());
^~~~~~~~~
../libretro/LibretroVulkanContext.cpp:379:28: error: invalid conversion from ‘VkResult (*)(VkDevice, VkSwapchainKHR_T, uint32_t*, VkImage_T**) {aka VkResult (*)(VkDevice_T*, VkSwapchainKHR_T, unsigned int*, VkImage_T**)}’ to ‘PFN_vkGetSwapchainImagesKHR {aka VkResult (*)(VkDevice_T*, VkSwapchainKHR_T*, unsigned int*, VkImage_T**)}’ [-fpermissive]
vkGetSwapchainImagesKHR = GetSwapchainImagesKHR;
^~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:451: ../libretro/LibretroVulkanContext.o] Error 1
* ERROR: games-emulation/ppsspp-libretro-9999-r2::abendbrot failed (compile phase):
* emake failed
That was horrible, it took my laptop half an hour to reach that part. The version error should actually be fixed now and the vulkan thing is probably because upstream is busy fixing that up. There isn't even a way to not build the vulkan component apart from pretending to be osx.
Also, did you try emerging vulkan-loader before this? Even if you don't have a vulkan capable card it should still allow you to build this with it.
After layman --sync-all, it can be compiled.
Can you cut a new release?
ppsspp-libretro-1.0_pre20180317.ebuild can be compiled.... However, I discovered that it takes a few resets on ppsspp-libretro to make tekken 6 work.
On the other hand, tekken 6 can be launched easily on ppsspp, but ppsspp has a few issues that ppsspp-libretro doesn't have.
ppsspp doesn't recognize dualshock 4 over bluetooth. Probably because it doesn't use evdev? tekken 6 intro video is broken on ppsspp while it is not broken on ppsspp-libretro.
Seems like there isn't much we can do about it other than wait for fixes upstream. I'm not sure if the options are still exposed but did you try to use other gpu drivers in the core options?
What I discovered was that I have to press DualShock 4's X
button to actually start the game.
Now, I realize that ppsspp showed a screen where I had to press X
to proceed.
That screen was black on ppsspp-libretro because ppsspp-libretro is based on an older verion of ppsspp.
In other words, ppsspp-libretro is fine, but the core needs to be updated in the future to show the initial message instead of a black screen.
games-emulation/ppsspp-libretro-1.0_pre20171126
can be built, but it can't run tekken 6. I need the latest possible version of ppsspp-libretro based on ppsspp 1.5.4 and above to play tekken 6. ppsspp-1.5.4 can play tekken 6.