Forums » General Questions » Song sync overlay - How to remove/modify?

Just a quick question:

I'm looking to do a small mod to clean up the UI in-game if a user presses (ALT+) F11 or F12 (offset + or -).

Simply put, do you know where in the scripts I would need to look in order to modify or remove this overlay? It's a huge problem when we find a downloaded song that's out of sync at a party and I want to fix it on the fly - This overlay blocks P2's vision for a long time and it's a huge problem!

Stepmania 3.x had a nice solution that put the overlay smaller and at the bottom of the screen, out of the way so I could make adjustments on the fly without messing up player 2. This is just impossible in SM5.

Where can I look in the scripts to mod that overlay's behavior? If possible I'd like to remove the overlay completely. I know the hotkeys and nobody else will be touching them on my setup. I've dug around a little bit but I couldn't find it. Maybe it's hard-coded?

Here's a screenshot of what I mean and what I want to remove:


Thanks!

Last edited: 4 June 2016 8:08pm

Reply
After doing some more digging, I found this .CPP file online:
ScreenSyncOverlay.cpp

https://github.com/stepmania/stepmania/blob/master/src/ScreenSyncOverlay.cpp

It looks like it's as I've feared - it's all hard-coded. :(
Looks like the only option is to download the source and compile it myself...To change a UI element?

Would there be any chance of coding in some connections to Metrics.ini or some other scripting files in the future to make this overlay customizable? I would <3 you forever. :D The fact that it blocks P2's side of the screen so intrusively really puts a damper in parties in the event we find a song that could use a little sync love.

The biggest changes I'd like to see are
- Text / Quad size + / - and alpha controls for both (maxing out alpha should make the entire overlay invisible).
- Position on-screen.
-Maybe colour control for both would be nice too.

Cheers!

Last edited: 10 June 2016 12:41am

Reply
https://twitter.com/SimpsonsQOTD/status/713332782894809088

Last edited: 11 June 2016 9:20am

< 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
I won't lie; I expected a slightly less rude response from a face of the Stepmania team, even if such a feature would never be considered, especially after we've had pleasant chats in the past on this very forum.
Reply
I finished downloading, modifying and recompiling the code to make the following changes:

- Removed the Helptext overlay in the top-right corner completely.
- Reduced the size of the Status text at the bottom-middle of the screen to 45% of original size.

It's just as useful and provides just as much information but is very inconspicuous. That fact makes it perfect when two inexperienced people are playing and I'm watching them play a song that's out of sync. I can fix it without the players being jarred into the fact that I'm doing anything at all, which is awesome.



As for how to do this, just for reference:

In ScreenSyncOverlay.cpp:

Line 61 - added
m_textStatus.SetZoom(0.45f);
to scale the bottom status text to 45% original size.

Line ~319 - Commented out
ShowHelp();
to remove the massive help box that blocks P2's side of the screen.



Cheers anyway, guys. I was just hoping that, as Stepmania is interested in opening up its UI elements to themers, this could be something else on that list. Regardless, I'm glad making the change is relatively straightforward.

Last edited: 11 June 2016 6:17pm

Reply
If you don't submit a pull request to improve the screen, I'll rewrite it to not have any actors hardcoded. Instead it'll just send the text that needs to be set in various commands to its overlay layer, and rely on having a lua overlay layer.
< 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
It's a huge problem when we find a downloaded song that's out of sync at a party and I want to fix it on the fly - This overlay blocks P2's vision for a long time and it's a huge problem!

Stepmania 3.x had a nice solution that put the overlay smaller and at the bottom of the screen, out of the way so I could make adjustments on the fly without messing up player 2. This is just impossible in SM5.


I'm sorry but what? You're complaining about not being able to play adequately when trying to fix sync on a song that for all intents and purposes is probably already messing you up forcing you to resync it regardless? Fix the sync then worry about playing. Fucking hell.



Work in Progress
Reply

I'm sorry but what? You're complaining about not being able to play adequately when trying to fix sync on a song that for all intents and purposes is probably already messing you up forcing you to resync it regardless? Fix the sync then worry about playing. Fucking hell.


It's a significant enough issue for the playstyle of my social group that after coming off SM3.x and switching to SM5 that this UI change was a big enough problem that I went out of my way to modify and recompile SM's source code just to deal with it. I've been playing Stepmania since 2001 and am very familiar with the idea of pre-synching songs.

Fact is, as we play with new song packs in a group, I don't always have the hours ahead of time to pre-sync a random song pack and I need to be able to do it on the fly. We're a pretty casual group of players, with me being the only Stepmania player among my group. Nobody else even knows what F11 DOES, let alone how to get a song in sync enough to be playable and enjoyable by a casual group in my group. Being able to notice that some song that two other people are playing isn't in sync and fix it while they're playing does two things:

1) It lets me fix songs while hanging out with friends, killing 2 birds with one stone (see the "I don't always have time to pre-sync songs if we just got a new song pack" above).
2) It reduces the amount of time I need to spend alone in my basement syncing songs if I can just do it on the fly once we find songs that my social group will actually play. No point synching 10,000 songs manually if only 500 of them will be played. I don't want to talk about how many hours it takes to do that.

With the default UI, this is basically impossible, hence my mod.

Yes, I know global offset is a thing. I also know how many songs I randomly find scattered in song packs that aren't in sync. Therefore I can't assume any one song is in sync so everything needs to be checked, one by one.



I get that I'm probably a pretty weird use case:
- My social group only plays SM when they're at my house. They don't have it installed on their computers.
- I'm the only one who knows anything about synching / making steps in my social group.
- I'm 100% focused on pad play and not concerned about keyboard songs.
- I'm a social player and looking for the best multiplayer experience I can deliver. UI in a multiplayer context is VERY important to my use case.

Yes, pre-synching songs would be ideal and I do this for the most part. But hey, I'm trying to sync for a pad and when I'm mass-syncing songs I'm typically using a keyboard because of practicality reasons. A keyboard has a different offset from a pad that I need to compensate for when syncing and...honestly, when you're sitting down synching thousands of songs, you're gonna make a mistake here and there. Being able to fix the occasional boo-boo or fix a new song that you just forgot about or didn't have time to get to yet is really incredibly handy in the scenarios that I'm focused on playing in. Synching on the fly isn't a feature I use often but I use it just often enough that I'd like it to be completely transparent in a multiplayer gaming context, hence this change. It's a social buzzkill to tell people "alright, stop playing. Let me get on and fix it. Ok I'm done, now you can play." Being able to just do it at a keyboard while two people are playing on pads without them even noticing I did anything is amazing. That transparency keeps the atmosphere of a social get-together rolling and lets the game go unimpeded. I don't play with people who are hardcore enough to worry about the beginning of the song's off-sync affecting their score. It's much more important in the context of my group that the song is fixed ASAP on the fly rather than stopping, syncing and restarting. Obviously I can't get it 100% perfect as an onlooker with a keyboard but I can get it close enough for my target audience. I can get it more precise when I"m playing on my own later. For now that's good enough. After years of doing this I've gotten pretty good at getting it pretty damn accurate just by hanging out at the keyboard, actually. I'm not always perfect but I've stepped up to songs that I synched up this way and not wanted to make future changes to that song's sync on multiple occasions. In other words, my on-the-fly sync may not be ms-accurate but it's close enough to AAA a song generally.

Calm down. I'm not doing any harm to you by saying "Hey, this is a thing that, even after 15 years of playing Stepmania, is still a useful bit of UI design that would make my life considerably better". I will acknowledge this is probably a weird use case but I also feel having access to this aspect of the UI is consistent with being able to control the entire UI in the theming files and therefore makes perfect sense to include regardless of whether many people need it or not.

"Why have 10,000 songs if only 500 are going to be played?" I don't know what songs are going to be popular. I throw lots of ideas out for people, painstakingly organize them and see what happens in a social setting. I then filter out the songs that are never played and do it again. I'm perpetually in a state of adding and removing songs therefore I'm never in a state where my library is 100% synched.

For a game as mature and developed as Stepmania, there's no reason NOT to have a brilliant, flexible UI by now. I shouldn't have to fight with a UI for a game that's basically been feature-complete and getting "creature comfort" updates for years now. This topic is consistent with that concept. Because Stepmania is open-source, I can simply make the changes that suit my needs. I don't feel it's fair to pick on my UI changes just because they meet needs that you don't have, SM MaxX.

If getting all the features I want for my social group involves custom theming and custom SM builds, so be it. I'm a software developer; I can handle it. Again, I get I'm a weird use case. This thread, however, was merely to ask a question about how to make the change I wanted to make. I managed to find the solution myself in the code and now this thread is for reference for anyone who can make use of the knowledge that at least one Stepmania user has a good (as in, wanting this feature since SM5 because it would have been very handy on multiple occasions and finally just coded it myself) reason for wanting such features. Take what you will from that.

Last edited: 13 June 2016 5:29pm

Reply