Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lock into PS3 sprites #39

Closed
ghost opened this issue Jan 7, 2019 · 5 comments
Closed

Lock into PS3 sprites #39

ghost opened this issue Jan 7, 2019 · 5 comments

Comments

@ghost
Copy link

ghost commented Jan 7, 2019

Technically no matter which sprite set is toggled for the console arcs, PS3 sprites are the only sets that actually display since they are the only ones available and because of a fallback mechanism when the game is loading sprites. However, if the game is set to steam sprites mode, then lipsync will not trigger. This is especially problematic because the player has no way to tell that this is the case; all they'll see is that lipsync isn't working. Let's hack something up on the DLL console arcs branch to make sure ps3 sprites are initialized as the art style, and disable the P key so it stays locked in.

There's no way to safely initialize this from the scripts because there's the Buriko script flag GArtStyle, and then the DLL code has a class with an art style state to it; it would probably be disastrous for these to get out of sync. Pressing P or toggling from the options menu changes both, so it's safe. But just a script command to SetGlobalFlag(GArtStyle, ....) would be unsafe. So something has to be done on the DLL level.

@DoctorDiablo
Copy link
Member

Here are a couple potential solutions I've been considering.

  1. Create a new global GArtStyleSet (or something) that gets initialized to 0. On startup, if this global is set to 0, call the code to change the art style to Original, then set GArtStyleSet to 1. That way, it's guaranteed to set the art style correctly on the first run, but the user can still change it after the fact. Main advantage here is that the same approach would work on the main arcs too.
  2. Make it so the user can enable lipsync regardless of which art style is active. Just take out the checks that prevent lipsync from working with MG sprites. In the console arcs, it'll end up using the sprites in the CG folder either way so it should work just fine. Advantage here is that it'll keep working even if the user changes the art style from the menu or with the P key.

@ghost
Copy link
Author

ghost commented Jan 18, 2019

I ended up doing it a little differently. In summary here's what i did:

  • When starting from scratch installation (no flags to load), default art style to ps3
  • When starting from an existing installation and loading flags, force art style to ps3 (important for people updating)
  • Make it so ToggleArtStyle does nothing (to avoid having to touch the messy keyboard input handler code for the "P" key.
  • Disable the Config Menu UI buttons to make it more obvious to the player that this is locked in. Unfortunately, I couldn't find a straightforward way to hide the Remake sprite button without also hiding the other button, so this is the best I could do but better than having a clickable button that does nothing,

Thankfully I didn't have to touch the secondary state AssetManager.UseNewArt because on after setting up default flags or loading the flags, AssetManager.UseNewArt is synced up, so consistency is enforced to the best of my knowledge.

Let me know if you're alright with this approach. I've created a branch and pull request in the assembly repo.

@DoctorDiablo
Copy link
Member

Looks good to me!

The piece that sets the default art style on new installations to ps3 sprites would probably be good to add in the main series, too.

@ghost
Copy link
Author

ghost commented Jan 19, 2019

True, that's a good idea. Then at least new installations for people playing the first time will get it.

@DoctorDiablo
Copy link
Member

Included in v5.0.0 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant