Forums » StepMania Development » Help with custom notesloader

1
Hi, not sure if this is the right subforum to post this on.

I've been working on a custom noteloader to go with the guitar mode that takes custom Guitar Hero .chart files for about two weeks now. It still isn't working completely right and I'd like to know what I'm doing wrong, what absolutely must be added to the songs / steps to get them to work, and if there's any special way that the information needs to be loaded.

The loader is structured similarly to the KSF and BMS loaders, so there is a CHARTLoader with GetApplicableFiles, LoadFromDir, and LoadNoteDataFromSimfile. Because .chart files are formatted differently than other file types, I needed to make my own parser inside the chart loader.

As it stands, the CHARTLoader is able to parse .chart files into timingData (BPM changes, time signature changes, section names, offset) and noteData, as well as song information like name, artist, and music file. However, when I load the song in game, in practice mode for example, all the timing information comes in just fine, but no notes show up. Additionally, when I quit practice mode, Stepmania crashes with a segmentation fault.

Here's an example of how a .chart file looks

Here's the crashlog from trying to exit practice mode

Here's a pastebin of my NotesLoaderCHART.cpp

Please tell me what I'm doing wrong, thanks.
Reply
Well, don't all jump up at once.
Reply
ATTEMPT TO BE PRODUCTIVE: Practice mode is currently a buggy, slapdash afterthought prone to crashing the game in itself, so it's unlikely the practice mode weirdness has something to do with your parser.

Other than that, I can't help you, as I never figured out how to make anything in C++ that got past the "display outputs in a console window" stage.
Reply
I'm too busy with my own stuff to spend time on a notesloader for a game mode I probably won't be playing. Just keep struggling along, and try to base your changes off the 5_1_0 branch to make it easier to merge in, since the 5.0.x line is going to be ending soon.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
try to base your changes off the 5_1_0 branch to make it easier to merge in, since the 5.0.x line is going to be ending soon.

Thanks for the responses guys, I've made a lot of progress so far, and I'm putting my changes in with the 5.1 branch. I got it working, but in a really janky way. So I have the notesloader parse the chart file into steps/song, then have a SSC writer write the song to an SSC file, then call SSC loader to load the newly created SSC file. This is probably unacceptable, but it works for now. I just can't figure out what I'm missing.

Link to the NotesLooaderCHART.cpp

EDIT: just realized I wasn't actually making changes to the 5_1_0 branch... well, time to do that

Last edited: 3 April 2016 8:58am

Reply