PerryAsleep / GrooveAuthor

GrooveAuthor is an editor for authoring StepMania charts.
MIT License
21 stars 2 forks source link

[BUG] #SCROLLS:(x)=0.000 causes Variable display to have stuck notes #6

Closed sukibaby closed 5 months ago

sukibaby commented 5 months ago

Bug Description If you load an SSC file where the first SSC gimmick is a SCROLL speed set to 0.000, and then switch to Variable spacing, there will be stuck notes until that part of the chart has scrolled past.

Steps to Reproduce Provide complete, succinct steps to reproduce the issue.

  1. Load any SSC file where the first #SCROLLS value is 0.000. For example this will do it: #SCROLLS:17.333=0.000, 20.000=1.000 ;
  2. Click on 'Variable' Spacing.
  3. Scroll to the top of the chart, if you're not at the top of the chart already.

Expected Behavior Not have erroneous notes/mines/etc shown on screen.

Screenshots

https://github.com/PerryAsleep/GrooveAuthor/assets/163092272/660ce4f2-c2fc-43a5-962a-6f80105eb2b5

Version This bug is present in both v0.1.0 and a build I built myself on 3/12/2024.

Log Provide the log file from a session which reproduces the issue. Log files are visible under the logs folder next to GrooveAuthor.exe.

GrooveAuthor 2024-03-23 19-04-15.log

PerryAsleep commented 5 months ago

When steps occur on rows under a 0 scroll rate, they are displayed as occurring all the same row when using variable spacing. This is consistent with how Stepmania renders these notes. Here is an example.

In this chart the top 8 notes (red and blue) occur during a region with 0 scroll rate. With row or time based spacing you can see them spaced out. zero-scroll-time-based-grooveauthor

This is the same chart shown in Stepmania's editor, which shows constant row spacing when the chart is not being played back: zero-scroll-row-based-stepmania

When rendering this with variable scroll rate at row 0 here is how GrooveAuthor renders it. The steps are rendered as occurring at the same time, with later steps (the blue steps) rendering on top of earlier steps (the red steps): zero-scroll-variable-grooveauthor

Here is how Stepmania renders it in its editor during playback. It also shows every note within the 0 scroll region as occurring at the same row, and it also shows later steps (blue) rendering on top of earlier steps (red). zero-scroll-variable-stepmania-editor

Here is how Stepmania renders it during gameplay. This matches the editor and GrooveAuthor. The reason in this screenshot that some are red and some are blue is that during playback Stepmania does not render notes that occur beyond a certain point in the future, so it has only rendered the first 12 notes, skipping the last four blue notes and the 8 yellow notes. zero-scroll-variable-stepmania-gameplay

If I have misinterpreted the issue please feel free to re-open this bug. If you can provide a screenshot showing an inconsistency with how GrooveAuthor renders notes compared to Stepmania, and if you could provide an ssc file that reproduces the inconsistency that would be extremely helpful for me to reproduce and correct any potential issue.

Thank you!