Simply-Love / Simply-Love-SM5

a StepMania 5 theme for the post-ITG community
Other
189 stars 143 forks source link

StepMania 5.3 (Outfox) Status #214

Open natano opened 3 years ago

natano commented 3 years ago

This issue tracks the progress of SM 5.3 support in Simply Love.

SM 5.3 is still in an alpha stage of development, but I think it's in the best interest of the community to have an (unmodified) version of Simply Love available for it.

I started working on making SL support outfox in the wip-outfox branch by removing the version lock. After doing that I ran into a couple of issues that need to be fixed before this can be released to the general public.

Basic Functionality

Graphics

New Features

cc @teejusb I'm tagging you here, so you get a update on the current status of my efforts. cc @SheepyChris You volunteered to help out with this, so here we go. ;) Are there any other issues that you are aware of that need to be addressed before outox support can be enabled in SL?

Scraticus commented 3 years ago

The axis-fix was required for the old DInput Driver on 5.0, which we do not use on 5.3, so it's not required anymore.

We can return the default to 2048 easily enough. We reduced it due to the lack of documentation on items in the options menu, which we will fix with new docs soon.

We'll need to think about the circle based corners, we were planning on a better way to do this, but for sure am open to discussion and talks about it!

Scraticus commented 3 years ago

both of your graphics queries have been fixed already, and will be released in 4.9.2

SheepyChris commented 3 years ago
  • [ ] I couldn't manage to get my pad to show up as an input device without enabling the legacy input mode in outfox on linux. We can either add another option for enabling/disabling legacy input mode, or it could be somehow changed in outfox, so that other themes can also take advantage of the legacy input mode without modification to the theme. (will be changed in the next outfox release)

This happens because XInput expects the device to be given a preset so that all of the buttons can be mapped to the virtual controller. If the device itself or the database of the game lacks said preset, none of the buttons will be mapped and you won't be able to interact with the game through the device. In this case, there is a new screen called ScreenOptionsMapping that allows the user to manually map their device as how they prefer, avoiding having to switch to the Legacy input mode. This screen could be easily added to ScreenOptionsService in metrics.ini, making sure that the correct StepMania version is being used to avoid any issues, similarly done here with a related function. Feel free to implement this function as well, since it'll completely eliminate the need of returning to the default theme to configure the new input system.

Are there any other issues that you are aware of that need to be addressed before outox support can be enabled in SL?

Besides the points you've brought up and that are being looked on, I can't think of any other issues related to OutFox support currently. After all of these are ironed out, everything should be good to go! 😃

SheepyChris commented 3 years ago

Graphics

  • [ ] Outfox reduced the default texture size from 2048 to 1024 to make the software more performant on underpowered machine with default settings. The edges of the hearts in the background look fuzzy and pixelated with 1024, so I think for SL we should force the texture size to 2048 if currently smaller when the SL theme is enabled, but users still have the chance to switch to lower texture resolution if they want. (will be adjusted in the next outfox release) TeamRizu/OutFox#166
  • [ ] The life line in the NPS histogram is drawn in LineStrip mode. In SM 5.1 this produced rounded corners with the opengl renderer when the angle changed between line segments, but in SM 5.3 there are no rounded corners which results in an uglier life line. The same thing happens with the glad renderer. (will be fixed in the next outfox release) TeamRizu/OutFox#164
  • [ ] For some profiles the modifiers get lost when transferring it to 5.3. TeamRizu/OutFox#168

The first and second issues mentioned here have been fixed and released, while the last is fixed in-dev and currently awaits for the next OutFox release. Are these requirements good enough to soon merge wip-outfox into beta?

natano commented 3 years ago

@SheepyChris, @Scraticus I finally had time to look at the remaining issues with alpha 4.9.6.

From my point of view those three things are currently the only remaining roadblocks for enabling outfox support in SL.

Scraticus commented 3 years ago

I would like to remind you we are not SM 5.1, and the lines situation is not a bug, even if you consider it one.

Drawing the lines in the method you require for SL will have a negative impact on the gameplay experience for the whole engine.

I am not happy reverting to the much slower methods we moved away from.

On Wed, 13 Jan 2021, 16:13 Martin Natano, notifications@github.com wrote:

@SheepyChris https://github.com/SheepyChris, @Scraticus https://github.com/Scraticus I finally had time to look at the remaining issues with alpha 4.9.6.

  • Texture resolution: The default is still 1024 for me, see my comment on the outfox issue https://github.com/TeamRizu/OutFox/issues/166#issuecomment-759540088.
  • LineStrip width: Smooth lines are working now, but the line width is wrong, see my comment on the outfox issue https://github.com/TeamRizu/OutFox/issues/164#issuecomment-736825947. In 5.3 the width is interpreted as actual display pixel values, but in 5.1. the width is interpreted as virtual pixel values. From a theming perspective virtual pixel values are far more useful, because that's what's used everywhere else in the lua API (positioning, width, height values, etc.) and allows the interface to automatically scale with higher display resolutions. I still see the same issue with alpha 4.9.6.
  • C675 issue: I'm looking forward to see this fixed in the next alpha!

From my point of view those three things are currently the only remaining roadblocks for enabling outfox support in SL.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Simply-Love/Simply-Love-SM5/issues/214#issuecomment-759554732, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACUJGWBKSDN7C4YGNY4D6ZDSZXBBJANCNFSM4TVPN6WA .

natano commented 3 years ago

For aesthetic and redability reasons I want the line width of the NPS graph to scale with display resolution, like it did in SM 5.1. What would be the workaround to make this work in SL on outfox? I see two options: 1) Add code to scale the width wherever SL uses LineStrip graphs. This is not ideal, because it requires changes to existing themes to restore old behaviour. Additionally it makes functionality that's very handy in theming (auto-scaling with display resolution) harder to achieve. 2) Set some option (which one?) on the LineStrip graph that enables 5.1-style scaling on the width. This is not ideal, because it requires changes to existing themes to restore old behaviour.

This is an API change that affects compatibility with existing themes. So far you always claimed that outfox intends to be compatible with existing content, so whenever I find issues like this I report them to your team, so they can be fixed. My goal is not only to make SL work with outfox, but also to identify issues that potentially affect all themes. I could just add if SMVersion(5, 3) then width = width * whatever end to SL's 1(!) LineStrip and be done with it, but that doesn't solve the issue for other themes.

Ultimately it is your decision how the API should work. I can only give you my two cents, and from (my) theming perspective display pixel values don't make sense, because they don't show up anywhere else. I can understand the desire for efficient code (I really do, I'm a full-time developer myself), but here I see practical concerns for users of the provided API.

Please let me know how you decide, and if you decide to keep it display pixel values, please let me know how to make the scaling work for SL.

Scraticus commented 3 years ago

For clarity, I'll just reply here with what I said in the discord so the record is updated;

We will look at moving the old commands that 5.x used to a legacy structure but will make a note they are legacy and should not be used moving forwards, so it maintains backwards compatibility.

The decision to move to pixel sizes was to prepare for higher res and denser displays as these use different buffer/draw/window sizes compared to what the game sometimes sees. We have had to stall progress on this due to keeping backwards compatibility particularly with SL as it's a 480p based theme.

There is a performance gain on using new more modern commands, however this is not the only reasoning behind the changes.

I'll get back to you with the chosen resolution from the team, so we can support your 5.1 asthetic ;)

On Wed, 13 Jan 2021, 17:03 Martin Natano, notifications@github.com wrote:

For aesthetic and redability reasons I want the line width of the NPS graph to scale with display resolution, like it did in SM 5.1. What would be the workaround to make this work in outfox? I see two options:

  1. Add code to scale the width wherever SL uses LineStrip graphs. This is not ideal, because it requires changes to existing themes to restore old behaviour. Additionally it makes functionality that's very handy in theming (auto-scaling with display resolution) harder to achieve.
  2. Set some option (which one?) on the LineStrip graph that enables 5.1-style scaling on the width. This is not ideal, because it requires changes to existing themes to restore old behaviour.

This is an API change that affects compatibility with existing themes. So far you always claimed that outfox intends to be compatible with existing content, so whenever I find issues like this I report them to your team, so they can be fixed. My goal is not only to make SL work with outfox, but also to identify issues that potentially affect all themes. I could just add If SMVersion(5, 3) width = width * whatever end to SL's 1(!) LineStrip and be done with it, but that doesn't solve the issue for other themes.

Ultimately it is your decision how the API should work. I can only give you my two cents, and from (my) theming perspective display pixel values don't make sense, because they don't show up anywhere else. I can understand the desire for efficient code (I really do, I'm a full-time developer myself), but here I see practical concerns for users of the provided API.

Please let me know how you decide, and if you decide to keep it display pixel values, please let me know how to make the scaling work for SL.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Simply-Love/Simply-Love-SM5/issues/214#issuecomment-759586494, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACUJGWCL47347CG254E42S3SZXG5XANCNFSM4TVPN6WA .

JapanYoshi commented 1 year ago

441

OutFox LTS: The decision to remove "SM5.3" from the version text apparently breaks the version checking code and locks the player out.

JapanYoshi commented 1 year ago

Despite the latest release saying it supports Outfox, Simply Love still refuses to work on Outfox. image