#[BUG] SSC Charts on the editor sometimes get removed from memory

13 messages · Page 1 of 1 (latest)

quaint sedge
#

Need to specify: from memory, not from disk.

Got reported this from Violet and di5cord4u_1699, where if you just leave the editor, the chart that you were just editing would be gone from the song entry.

Findings so far:

  • Seems to only apply to SSC files, .SM is doing just fine.
  • Cleanup is doing a proper job of reapplying the charts back.
  • When the readdition is being made, it loads the charts again, but with ssc's, it's constantly saying it couldn't load the chart from the .ssc

log output with some additional debug info in there to check:

Exiting from a .SM file

Main Thread    There are 1 steps kept in vSteps.
Main Thread    There are 1 steps kept in m_vStepsLastSave.
Main Thread    There are 1 steps in apSteps.
Main Thread    There are 0 steps to delete.
Main Thread    SDL2-JS-Din-js :Input, AudioUnit :Sound, GLAD :Video, , 56.97 FPS, 44.50 av FPS, 56.97 LPS, 5487 VPF, 233 MB
Main Thread    ScreenEdit::~ScreenEdit()

Exiting from a .SSC file

Main Thread    There are 2 steps kept in vSteps.
Main Thread    There are 2 steps kept in m_vStepsLastSave.
Main Thread    There are 2 steps in apSteps.
//////////////////////////////////////
Main Thread    Couldn't load the Hard chart's NoteData from "/Songs/maractus/Time To PokeDance/song.ssc"
//////////////////////////////////////
//////////////////////////////////////
Main Thread    Couldn't load the Challenge chart's NoteData from "/Songs/maractus/Time To PokeDance/song.ssc"
//////////////////////////////////////
Main Thread    There are 2 steps to delete.
Main Thread    SDL2-JS-Din-js :Input, AudioUnit :Sound, GLAD :Video, , 59.00 FPS, 36.29 av FPS, 59.00 LPS, 8316 VPF, 215 MB
Main Thread    ScreenEdit::~ScreenEdit()
#

[BUG] SSC Charts on the editor sometimes get removed from memory

#

Check 2: The SSC Loader is actually able to read the .ssc, but doesn't hit the #NOTES tag to consider the chart valid

quaint sedge
#

Check 3: Not all SSCs are affected.

peak compass
# quaint sedge Need to specify: ***from memory***, not from disk. Got reported this from Viole...

Idk about posting here, or if the info is known, but anyways...

To add info: not only the chart itself, but also includes other charts whose difficulty rank is lower than the chart itself. The higher difficulty does not get affected by this, unless it's re-entered and exit again. It would affect the next one up in the rank only.

1 e.g. enter and exit difficult, affected charts: difficult and below; enter and exit medium again, affected charts, expert and below, etc.

2 e.g. enter and exit challenge, affected charts: challenge and below

quaint sedge
#

Check 4: This does not happen at all If fast load is OFF, so it could be failing as it's trying to read from the sql cache

quaint sedge
#

Check 5: Kept testing and trying to find spots, and I noticed that the file name its using to find the charts doesn't match with what it's trying to load...

16:37:54    USERLOG        Main Thread    There are 1 steps kept in vSteps.
16:37:54    USERLOG        Main Thread    There are 1 steps kept in m_vStepsLastSave.
16:40:03    USERLOG        Main Thread    There are 1 steps in apSteps.
16:40:03    USERLOG        Main Thread    Song file /AdditionalSongs/Maractus/[14] Clinozoisite (SX) [Maractus & Talkion]/song.sm couldn't be opened: No such file or directory
16:40:16    USERLOG        Main Thread    Song file /AdditionalSongs/Maractus/[14] Clinozoisite (SX) [Maractus & Talkion]/song.sm couldn't be opened: No such file or directory
16:40:35    WARNING        Main Thread    Couldn't load the Challenge chart's NoteData from "/AdditionalSongs/Maractus/[14] Clinozoisite (SX) [Maractus & Talkion]/song.ssc"
16:40:35    USERLOG        Main Thread    There are 1 steps to delete.
quaint sedge
#

Check 6: Potentially found the issue, looking into solutions.

quaint sedge
#

To explain the cause of the bug: It's a mismatch of the data saved on the cache and the simfile itself. The game performs a check when loading an already existing Steps object into memory and compares it again with the simfile data itself. If any of the data values (with some exceptions) don't match with what's stored in RAM at the moment, it will abort and reject the simfile from being loaded into memory, resulting in the charts dissapearing on the editor as it tries to remove charts from memory that are empty.

Some mitigations you can do right now:

  • Remake your cache entirely, that can solve the problem.
  • Save your file on the editor. This forces a new write of the cache for the song, so it can match up the data.
    -# (a slightly faster method, but requires going one by one)
strange mauve
vague plank
# quaint sedge To explain the cause of the bug: It's a mismatch of the data saved on the cache ...

I was playing around with this editor bug and it seems linked to the fact that the editor clears the following tags in the individual simfile difficulty
#CHARTTYPE:dance-single; #STEPSTYPE:dance-single;

if I re-input these values in the ssc file, delete the carriage returns, and delete the cache, the file loads up just fine in the editor

so for example: if a chart isn't showing in the editor, I go find the above lines which will be empty (example below) and re-add the relevant info and the chart shows up just fine after deleting the cache and reloading
#CHARTTYPE:; #STEPSTYPE:;

red tulip
#

Can confirm I had the same bug where file changes simply would not load no matter what I did with the cache and turning off fast load. Only doing the steps that Horsey mentioned fixed the issue for me.