When opening the app for the first time without a game I get this error
[love "boot.lua"]:412: Cannot load game at path 'sdmc:/3ds/game/'
Make sure a folder exists at the specified path
Similar error happens when the folder exists, but now it's looking for a main.lua file, when I was just trying to boot LÖVEPotion
What was Expected?
I was expecting to see the No Game screen.
Discussing with @TurtleP he thinks the cause may be the transition to LÖVE 12.0 APIs and the No Game screen using outdated APIs like love.graphics.newImage instead of newTexture. This then causes the execution of the No Game screen to fail, inside an xpcall which for some reason does not propagate the error properly. causing this unexpected behaviour.
Software Version
3.0.0-prerelease-4
What Happened?
When opening the app for the first time without a game I get this error
Similar error happens when the folder exists, but now it's looking for a
main.lua
file, when I was just trying to boot LÖVEPotionWhat was Expected?
I was expecting to see the No Game screen.
Discussing with @TurtleP he thinks the cause may be the transition to LÖVE 12.0 APIs and the No Game screen using outdated APIs like
love.graphics.newImage
instead ofnewTexture
. This then causes the execution of the No Game screen to fail, inside anxpcall
which for some reason does not propagate the error properly. causing this unexpected behaviour.This probably means that
can_has_game = false
andinvalid_game_path="sdmc:/3ds/game/"
here: https://github.com/lovebrew/lovepotion/blob/a10501c3da97855561b12aa0a4e57d1cc4ed3ea6/source/modules/love/scripts/boot.lua#L114-L117No game gets executed here, we would expect this to be shown to the user but it isn't so we think it may be failing https://github.com/lovebrew/lovepotion/blob/a10501c3da97855561b12aa0a4e57d1cc4ed3ea6/source/modules/love/scripts/boot.lua#L149-L152
This is the part of the code that should catch the error and terminate the program https://github.com/lovebrew/lovepotion/blob/a10501c3da97855561b12aa0a4e57d1cc4ed3ea6/source/modules/love/scripts/boot.lua#L444-L445
But for some reason the returned value of
xpcall
is truthy so it doesn't terminate, and instead this part of the code executes and shows the error screen to the user https://github.com/lovebrew/lovepotion/blob/a10501c3da97855561b12aa0a4e57d1cc4ed3ea6/source/modules/love/scripts/boot.lua#LL411C1-L413C8Code to Reproduce
Console
Nintendo 3DS
Firmware Version(s)
11.16.0-49U
Custom Firmware Version
Luma3DS v12.0.1
Execution Method
Homebrew Menu
Code of Conduct