BeatLeader / beatleader-mod

BeatLeader mod for PC Beat Saber
MIT License
105 stars 24 forks source link

[1.34.2] Unable to watch replays: stuck on "Loading replay data..." #116

Closed aaronjamt closed 10 months ago

aaronjamt commented 10 months ago

As the title states, I'm running Beat Saber 1.34.2 and every time I try to watch a replay (either from the leaderboard on the right side when selecting a song, or from the BeatLeader saved replays menu on the left side of the main menu), the in-game UI appears to do nothing and the console says:

[INFO @ 18:12:51 | BeatLeader] Attempting to load replay:
[INFO @ 18:12:51 | BeatLeader] ModVersion: 0.9.4
[INFO @ 18:12:51 | BeatLeader] GameVersion: 1.34.2_7115288407
[INFO @ 18:12:51 | BeatLeader] Platform: steam
[INFO @ 18:12:51 | BeatLeader] PlayerID: 76561198963882706
[INFO @ 18:12:51 | BeatLeader] SongHash: E774B798DA2258D2FE017E84B79B9AD3A86162B9
[INFO @ 18:12:51 | BeatLeader] Mode: Standard
[INFO @ 18:12:51 | BeatLeader] Modifiers: SS
[INFO @ 18:12:51 | BeatLeader] TotalScore: 416611
[NOTICE @ 18:12:51 | BeatLeader] [Loader] Applied specified environment: Big Mirror
[NOTICE @ 18:12:51 | BeatLeader] [Launcher] Loading replay data...

The last line comes from line 23 of Source/2_Core/Replayer/ReplayerLauncher.cs and, based on the fact that there is another message on line 29 that is never printed, I'm guessing it's getting hung up on line 24, when calling data.CreateTransitionData(_playerDataModel).

aaronjamt commented 10 months ago

Did a bit more debugging, it appears to have to do with lines 32-37 of CreateTransitionData(). When commenting out the transitionData.Init(...) line(s), it successfully starts the transition into the replay (although obviously it never completes). However, a debug Plugin.Log.Notice(...) at the very start of CreateTransitionData() is never called if transitionData.Init exists in the method, indicating that (for some reason) CreateTransitionData() itself is never actually executed...

Not sure if this is related but I had a similar issue doing embedded C++ where attempting to allocate an object that was too large would cause a method to silently fail to execute, without any errors being logged... wondering if something like that could be happening here?

aaronjamt commented 10 months ago

Seems I was barking up the wrong tree. It seems the solution was just to compile the mod against 1.34.2, rather than 1.34.0. Doing that fixed the issue, so Beatmods needs to be updated with a version compiled again 1.34.2 when possible.

Hermanest commented 10 months ago

Yeah, the problem is that beatmods approvers didn't test mods properly before moving them to the next version. So, I'm closing the issue.

aaronjamt commented 10 months ago

Yeah, the problem is that beatmods approvers didn't test mods properly before moving them to the next version. So, I'm closing the issue.

Can you send them an updated version (compiled against 1.34.2) that actually works properly? Just hoping that can be fixed ASAP since, while I can use my own version compiled right from Github, many (most?) Beat Saber players probably aren't able to/don't want to deal with that.

Hermanest commented 10 months ago

Well, there is some other problems that need to be solved before the update. We will release it ASAP.