Closed Djihads80 closed 4 months ago
Broken by https://github.com/cemu-project/Cemu/commit/fd3b5b7f279c801396b1d13c49e1eeb14380ae82 Last working 2.0-40 https://github.com/cemu-project/Cemu/commit/633e5c0e05852f1c7762797027ff0247424a57bd
@Maschell this was your change, can you take a look?
The game is trying to load a non-existant data on an external volume with your SSBU fix applied and cycling back to FSGetMountSource eternally.
Working
[20:12:27.510] coreinit.FSInit()
[20:12:27.510] coreinit.FSAddClient(0x1a0000c0, 0)
[20:12:27.510] coreinit.FSAddClient -> 0
[20:12:27.510] Unsupported lib call: coreinit.FSSetStateChangeNotification
[20:12:27.510] coreinit.FSInitCmdBlock(0x1a001800)
[20:12:27.510] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe2011b4, 0)
[20:12:27.510] coreinit.FSGetMountSource -> 0
[20:12:27.510] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe2011b4, "", 128, 0)
[20:12:27.511] coreinit.FSMount -> 0
[20:12:27.511] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe2011b4, 0)
[20:12:27.511] coreinit.FSGetMountSource -> -2
[20:12:27.511] coreinit.FSAddClient(0x1a002340, 0)
[20:12:27.511] coreinit.FSAddClient -> 0
[20:12:27.511] coreinit.FSInitCmdBlock(0x1017c200)
[20:12:27.514] Unsupported lib call: coreinit.UCOpen
[20:12:27.514] Unsupported lib call: coreinit.UCClose
[20:12:27.514] IOSU_ACT: using account default in first slot
[20:12:27.514] coreinit.FSAddClient(0x100b1eb8, 0)
[20:12:27.514] coreinit.FSAddClient -> 0
[20:12:27.514] coreinit.FSInitCmdBlock(0x100b35b8)
[20:12:27.514] Unsupported lib call: proc_ui.ProcUIInit
[20:12:27.514] Unsupported lib call: proc_ui.ProcUIRegisterCallbackCore
[20:12:27.514] Unsupported lib call: proc_ui.ProcUISetMEM1Storage
[20:12:27.514] Unsupported lib call: padscore.KPADDisableDPD
[20:12:27.514] Unsupported lib call: padscore.WPADEnableURCC
[20:12:27.514] Unsupported lib call: vpad.VPADInit
[20:12:27.514] Unsupported lib call: gx2.GX2InitDepthBufferHiZEnable
[20:12:27.514] Unsupported lib call: gx2.GX2SetTVScale
[20:12:27.515] Unsupported lib call: vpad.VPADInitGyroZeroDriftMode
[20:12:27.515] Unsupported lib call: vpad.VPADSetGyroDirectionMag
[20:12:27.515] Unsupported lib call: vpad.VPADEnableGyroAccRevise
[20:12:27.515] Unsupported lib call: vpad.VPADSetGyroAccReviseParam
[20:12:27.515] Unsupported lib call: vpad.VPADEnableGyroDirRevise
[20:12:27.515] Unsupported lib call: vpad.VPADSetGyroAngle
[20:12:27.515] Unsupported lib call: gx2.GX2SetTVEnable
[20:12:27.515] Unsupported lib call: gx2.GX2SetDRCEnable
[20:12:27.515] coreinit.FSInitCmdBlock(0x1a003aec)
[20:12:27.515] coreinit.FSOpenFile(0x1a002340, 0x1a003aec, "/vol/content/preload_eu/boot.jarc", "r", 0x1a003ae8, 4294967295)
[20:12:27.516] [OSConsole] OSDynLoad_Acquire() use [104]
[20:12:27.516] [OSConsole] ErrorViewer::ThreadInit Done.
[20:12:27.516] Open file /vol/content/preload_eu/boot.jarc (access: r result: ok handle: 0x1)
[20:12:27.516] coreinit.FSOpenFile -> 0
[20:12:27.516] coreinit.FSGetStat(0x1a002340, 0x1a003aec, "/vol/content/preload_eu/boot.jarc", 0x101577a4, 4294967295)
[20:12:27.516] coreinit.FSGetStat -> 0
Not working
[20:14:57.768] coreinit.FSInit()
[20:14:57.768] coreinit.FSAddClient(0x1a0000c0, 0)
[20:14:57.768] coreinit.FSAddClient -> 0
[20:14:57.768] Unsupported lib call: coreinit.FSSetStateChangeNotification
[20:14:57.768] coreinit.FSInitCmdBlock(0x1a001800)
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
[20:14:57.768] coreinit.FSGetMountSource(0x1a0000c0, 0x1a001800, 0, 0xe201124, 0)
[20:14:57.768] coreinit.FSGetMountSource -> 0
[20:14:57.768] coreinit.FSMount(0x1a0000c0, 0x1a001800, 0xe201124, "/vol/external01", 128, 0)
[20:14:57.768] coreinit.FSMount -> 0
I think this is related to this problem, which also happens on a real console:
https://github.com/wiiu-env/MochaPayload/blob/c222954efe08fea79930cc7865ce6aadd41d6c76/source/ios_mcp/source/mcp_loadfile.c#L192-L200 See this part in Mocha where I patch IOSU to give full /dev/fsa access to every title (except this game). When this game has access to the sd card, it soft locks.
This suggests to me that the game is doing something weird. Parsing and implementing the /dev/fsa permissions is probably the most accurate way to fix this? (This would probably also include implementing sd mounting properly)
Makes sense, the game never moves on from trying to boot data that isn't present.
Should be fixed by https://github.com/cemu-project/Cemu/commit/74e8d205b07247b851c716ad285d938f4bc277b5, can you check the latest release if it boots now?