etternagame / etterna

Advanced cross-platform rhythm game focused on keyboard play
https://etternaonline.com/
MIT License
474 stars 133 forks source link

[Bug]: Replay is too slow, replay's judge counter is too fast, replay crashes game on first play #1224

Closed NekoAlosama closed 1 year ago

NekoAlosama commented 1 year ago

Is there an existing issue for this?

Contact Details

Just reply to the issue

Version Info

Latest available release

What operating system are you seeing the problem on?

Windows

Bug Behavior

Using My Friend Mudkip from Stepping Stones 3 as an example, I tried replaying my score but the inputs became delayed, the judge counter increments incorrectly (Replay bot doesn't Miss, despite my playthrough containing misses; judge counter stops incrementing near the end of the song while the bot is still hitting notes), and the game hard-crashes (no "Program Crash" box appears) and generates a .dmp file.

Expected Behavior

Replay should replay my inputs correctly with no crashes.

Reproduction Steps

  1. View the contents of the .zip file below.
  2. Analyze and figure out what the issue is.

Anything else?

1.1. .zip file download: https://drive.google.com/file/d/17tRruWH45jaDJMrZCB6X8PL8w2PCftm3/view?usp=sharing 1.2. .zip file contents: generated replay file (.txt), generated crash file (.dmp), 2 videos (1: playing chart, then first replay cut off by hard crash; 2: second replay with no crash)

  1. I'm using EWMA with 200 taps. One time, with a different song, the EWMA display over-/underflowed, displaying a large number that was cut off by the side of the screen; I couldn't replicate this in subsequent replays.
poco0317 commented 1 year ago

I'm missing the .log file associated with this session, found in the Logs folder of the game install folder. If something went wrong in certain ways, there is information output here before and during the replay

poco0317 commented 1 year ago

The replay attached is only the replay and not the input data. Find a file with the same name (+ "z") in the InputData folder next to the ReplaysV2 folder. That file holds important information which helps recreate the replays and is what the game uses first when doing anything replay related. If you are interested in seeing the contents of the InputData files yourself, its compressed with zlib so you have to write something to open it yourself or find some online converter.

NekoAlosama commented 1 year ago

.zip #2: https://drive.google.com/file/d/16eXu9RvV0dPkuc1SvnxCSY4qbBrsfqxO/view?usp=sharing Contains 2 log files for each of the sessions (look at the clock on the upper-right of the videos) and the input data ("S8fe3e18857fe441592fd24c36c658889ca88c624z")

The .log file for the crashing session doesn't write anything after the replay starts ([2023-01-06 20:24:49][INFO]: PushLoadedScreen: "ScreenGameplayReplay"). The .log file for the normal replay does display lots of [2023-01-06 20:34:28][WARN]: Please report an issue with this replay: S8fe3e18857fe441592fd24c36c658889ca88c624 - col 2 steppedrow 14725 rowtojudge 14712 between [2023-01-06 20:32:10][INFO]: PushLoadedScreen: "ScreenGameplayReplay" and [2023-01-06 20:35:27][INFO]: bAllReallyFailed = false bIsLastSong = true, m_gave_up = false.

poco0317 commented 1 year ago

this is fixed for 0.72.1 7572298349890a69fd4faeb810a331bc21f53919

NekoAlosama commented 1 year ago

@poco0317 Same bug in 0.72.1 (delayed inputs, crash on first replay), now with a different song (Hocus Pocus on Scintill's Minipack 3)

Score: https://etternaonline.com/score/view/S18b1a195c47cc68fa66de948ed5d9649de7fc4e621201 Replay: https://youtu.be/nOSQ22Av4wA .zip: https://drive.google.com/file/d/1X4B1F53-MSFrufFPHWPZGxRqTmdBvx0K/view?usp=sharing .zip contains the song, .dmp file, .log file, ReplayV2 file, and InputData file.

poco0317 commented 1 year ago

@NekoAlosama this was already fixed for 0.72.2 due to an unrelated change. check this once more ingame on 0.72.1 but watch the ONLINE replay and let me know if it still fails (the offline/local one is important too but it matters if both or either fail). if it doesnt fail, check again on version 0.72.2 when that releases on march 1 and let me know if it fails then

NekoAlosama commented 1 year ago

@poco0317 Unfortunately, it seems the online replay also fails (on 0.72.1). I use SpecialK for its great framerate limiter (I set mine to 1000fps) when I'm playing, but I forgot to disable it for this first test. Like the offline replay, it also did not Miss any notes and hit most of the mines. It seemed more accurate than the offline replay, though, but there seems to be a bug where at about 2/3rds of the song, the Judge Counter stops incrementing and the Combo increments slowly. For posterity, after playing the online replay, I played my offline replay to see if the game crashed again. In the video (excuse the audio, I didn't disable my system audio equalizer for this run), you can hear the Metal Gear Solid alert sound when the game crashes, which is a feature of SpecialK. However, it seems SpecialK might have interfered too much and prevented the game from generating a .dmp file. Video: https://youtu.be/BKHIcxcm1_Q .log file: 2023_02_28-21_08_11.log

Next, I tried playing the online replay again, but without SpecialK (I use an uncapped framerate with FrameLimitGameplay=99999 in ./Save/Preferences.ini, but I tried a second time with FrameLimitGameplay=1000 and it produced the same results). This time, the game consistently crashes at around 3:40 into the song, and fortunately it does generate a .dmp file each time. I did disable my system audio equalizer, in case you wanted to listen to the song. I'll only attach the video and files for the first crash of this kind. Video: https://youtu.be/4jBjSqFzXKo .log and .dmp file: 2023_02_28-21_08_11.zip

poco0317 commented 1 year ago

an update will release within 24 hours which may resolve this. try to reproduce all of these problems at that time

NekoAlosama commented 1 year ago

@poco0317 Bug has now slightly changed (on 0.72.2) The game still crashes on the online replay in the same fashion, but now it doesn't crash on the offline replay. Both replays are still inaccurate by hitting many mines and never Miss-ing any notes, with the online replay still looking like it's accurate except for the previous points and the offline replay still being highly inaccurate on inputs. The offline replay now has the issue where if it plays long enough, the Judge Counter, Combo, Error Bar, and other items will stop updating, similar to the online replay of my previous comment.

Video (2023_03_02-16_10_53; online replay first, then offline replay until crash): https://youtu.be/1kNnJ8j8C_0 2 .log files and 2 .dmp files: crash_files_mar_2_2023.zip For the first crash (2023_03_02-16_05_51.log, fcacd8fe-6653-46f8-b813-d8d4c6aae999.dmp), I forgot to record my first online replay on 0.72.2, but I at least have the crash files. The second crash (2023_03_02-16_10_53.log, 78071471-31f7-45f2-8e30-32cf7362d670.dmp), is shown in the video. Interestingly, the first crash's .log contains [WARN]: Please report an issue with this replay: Online_S18b1a195c47cc68fa66de948ed5d9649de7fc4e6, but the second crash's .log does not, despite both crashing.

poco0317 commented 1 year ago

ok i did something really funny that broke it but now it should be good in 0.72.3. adeced76697804d214286e9613a7bb5183ab5a0b

NekoAlosama commented 1 year ago

Seems to be working as intended. Local replay seems completely accurate, and online replay seems a little inaccurate (seemed to be a better run than my local replay, giving me 4.5 more points (i think that's what it's called, the numbers in the goal tracker), which seems insignificant. No crashes, no warnings in the logs.