lovebrew / lovepotion

LÖVE for Nintendo Homebrew
https://lovebrew.org
Other
538 stars 41 forks source link

[Bug]: #197

Closed pablomayobre closed 11 months ago

pablomayobre commented 1 year ago

Software Version

3.0.0-prerelease-4

What Happened?

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.

This probably means that can_has_game = false and invalid_game_path="sdmc:/3ds/game/" here: https://github.com/lovebrew/lovepotion/blob/a10501c3da97855561b12aa0a4e57d1cc4ed3ea6/source/modules/love/scripts/boot.lua#L114-L117

No 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-L413C8

Code to Reproduce

No code

Console

Nintendo 3DS

Firmware Version(s)

11.16.0-49U

Custom Firmware Version

Luma3DS v12.0.1

Execution Method

Homebrew Menu

Code of Conduct

TurtleP commented 11 months ago

This should be fixed from 11bb427