Skip to content

Conversation

@jamsge
Copy link

@jamsge jamsge commented Oct 19, 2025

work in progress. Feedback is welcome

@AlexanderHarrison
Copy link
Owner

Nice! Glad someone is getting around to rewriting this.

  • I would convert free practice into an option.
  • Functions with no params should be (void) instead of (), It's silly, I know.

Other than that, looks good so far.

@jamsge
Copy link
Author

jamsge commented Oct 20, 2025

made turning on free practice a function option. I didn't think it would make sense for people to turn on and off free practice whenever. Does that seem right?

The way random positions are selected for eggs follows how UP did it in assembly. I've seen it fail 10-20 times before finding a suitable position which concerns me slightly and makes me wonder if there is a better way. But it works and it does not seem to produce any noticeable slow down

Had many issues with getting the eggs to destroy properly while also showing GFX, but ultimately what I have works and feels okay. The solution for GFX I settled on was creating an empty GOBJ+JOBJ which follows hit eggs and spawns the proper GFX. Because of this, certain hit GFX that are normally visible are missing, such as the usual green sparks or electric moves like Ganon dair. I think these can be added in manually

@AlexanderHarrison
Copy link
Owner

AlexanderHarrison commented Oct 21, 2025

made turning on free practice a function option. I didn't think it would make sense for people to turn on and off free practice whenever. Does that seem right?

Yeah that makes sense to me.

The way random positions are selected for eggs follows how UP did it in assembly. I've seen it fail 10-20 times before finding a suitable position which concerns me slightly and makes me wonder if there is a better way. But it works and it does not seem to produce any noticeable slow down

If you're concerned, feel free to get some performance measurements on console. Look into OSGetTicks. Make sure you compile in release mode when measuring.

Had many issues with getting the eggs to destroy properly while also showing GFX, but ultimately what I have works and feels okay. The solution for GFX I settled on was creating an empty GOBJ+JOBJ which follows hit eggs and spawns the proper GFX. Because of this, certain hit GFX that are normally visible are missing, such as the usual green sparks or electric moves like Ganon dair. I think these can be added in manually

What does the assembly do? Should be able to copy that if it isn't doing anything silly. In any case, look into Effect_SpawnAsync and Effect_SpawnAsyncLookup. I think those can make effects that persist after the gobj is destroyed.

@jamsge
Copy link
Author

jamsge commented Oct 24, 2025

It turned out I was not copying UP's code exactly, now GFX is the way it should be. Outside of needing to clean up a bit and do some more testing, I am feeling decent about this (of course feel free to correct me on that lol). Old eggs-ercise is still in, but I will deal with taking that out once I've finalized new eggs-ercise

@jamsge jamsge marked this pull request as ready for review October 26, 2025 00:25
@jamsge
Copy link
Author

jamsge commented Oct 26, 2025

some things I felt I should bring up

  • I wasn't able to get the event marked as played when finished. To be more specific, the event is not grayed out after being played and returning to the event list. I did not see this as a problem because there are a lot of other events with the same behavior.
  • Starting free practice when the timer counts down from 5 to game end bugs out the UI. I didn't really see a reason to spend effort fixing this.
  • In addition to giving players the ability to adjust egg spawn velocity in free practice, I toned down the default egg spawn velocity and made it a fixed value instead of a random range. This makes it so eggs that spawn below platforms will not bounce to the platform above, which was often the case before. I understand that this is an opinionated change and am totally willing to change egg velocity to its original random range.
  • Maybe players should be able to change settings before the "Ready, GO" announcement finishes so there is a way for them to time themselves and set records on different eggs-ercise settings. This would be an easy way for anybody to create their own game mode. Thoughts?

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

Successfully merging this pull request may close these issues.

2 participants