Skip to content

[ALTTP] Add second Power Star to differentiate non-native progression items#2866

Closed
Kappatechy wants to merge 16 commits intoArchipelagoMW:mainfrom
Kappatechy:progression_power_star
Closed

[ALTTP] Add second Power Star to differentiate non-native progression items#2866
Kappatechy wants to merge 16 commits intoArchipelagoMW:mainfrom
Kappatechy:progression_power_star

Conversation

@Kappatechy
Copy link
Contributor

What is this fixing or adding?

This change updates the ALTTP base patch to add item ID 0x69 for advancement items from other worlds, and adds the corresponding item and sprite handling to allow displaying gold power stars for advancement/progression items from other worlds and silver power stars for other items. A new option, "Star Scams," is added to allow players to opt out of this adjustment and have all non-native items appear as gold power stars, whether they're progression items or not.

New base patch was generated from ArchipelagoMW/z3randomizer#9 after updating it to include recent "Bombless" functionality.

How was this tested?

Multiworlds were generated using ALTTP and several copies of Bumper Stickers, with Star Scams set On for some, Off for others. A number of locations were checked to ensure that the Power Star graphics matched expectations, and the items behaved appropriately.

If this makes graphical changes, please attach screenshots.

AP_16894030208794895037_P1_StarTest1002

krelbel and others added 8 commits August 31, 2023 01:19
This change updates the alttp basepatch to add item ID 0x69 for advancement items from other worlds, and adds the corresponding item and sprite handling to allow displaying gold power stars for advancement/progression items from other worlds and silver power stars for other items.

The basepatch was generated from krelbel/z3randomizer@91c3dd6

Example image: https://i.imgur.com/B2LUdFS.png
This change updates the gold/silver power star item names to be consistent with the final planned behavior of progression items being gold and all other items being silver, and imports a new basepatch based on ArchipelagoMW/z3randomizer@b787b83 which fixes a bug in the previous commit where the silver power star item in newitems.asm:.properties still used the gold power star palette, causing the "item get" animation to incorrectly show a gold power star upon picking up a silver power star.

Tested with a 2-player lttp/hollowknight multiworld verifying standing items look correct in and out of shops and picking up items animates correctly for both gold and silver power stars.

The previous commit listed an outdated screenshot (with the colors reversed); the updated screenshot showing this feature is: https://i.imgur.com/iMPxzgw.png
Fix outdated comment
Update the LTTP basepatch to include recent additions for "Bomb Bag" setting, alongside our Silver Power Star adjustments.
Allow players to opt out of seeing non-progression items as Silver Stars, through a new YAML option.
The wording of the comments in the get_nonnative_item_sprite function was a little confusing, making it sound like the vote mentioned there was for Gold vs. Silver Power Stars, when it's actually for using Power Stars as a whole. This text has been clarified.
@github-actions github-actions bot added the waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. label Feb 26, 2024
@Kappatechy
Copy link
Contributor Author

This is an update/extension of #2139 created with permission from the original developer.

@ScipioWright ScipioWright added the is: enhancement Issues requesting new features or pull requests implementing new features. label Feb 26, 2024
@krelbel
Copy link

krelbel commented Feb 26, 2024

Just confirming here, as the original developer, I fully approve of this change. Thanks for taking care of this Kappa! I'm really excited to see this finally committed. (If everyone's okay with this, then I'll happily close my original PR that I reopened to make my intentions clear.)

Copy link
Contributor

@shananas shananas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ran 5 seeds with this over the past week or so with no issues. this last seed I did with the shop fix merged in #2890 to confirm it all interacted fine and had no issues.

Exempt-Medic
Exempt-Medic previously approved these changes Jul 28, 2024
Copy link
Contributor

@Exempt-Medic Exempt-Medic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested two games with these changes and everything appeared to work correctly.

@Exempt-Medic Exempt-Medic added waiting-on: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world. waiting-on: core-review Issue/PR has been peer-reviewed and is ready to be merged or needs input from a core maintainer. and removed waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. labels Jul 28, 2024
@Exempt-Medic Exempt-Medic dismissed their stale review July 29, 2025 12:51

Was not core approval

@Exempt-Medic
Copy link
Contributor

@Berserker66 Please decide whether you want to close this PR, accept this PR, or suggest changes for it

@Berserker66
Copy link
Member

I've since learned that I was originally lied to and the star is an injected sprite (unless that information was a lie too)
So it makes much more sense to me to instead change the injected sprite, or possibly inject multiple, instead of shading the star.

@Berserker66 Berserker66 closed this Aug 1, 2025
@Kappatechy
Copy link
Contributor Author

What are you talking about? Lied to by whom? Which star are you referring to-- the original gold version, which is already in use, and has been for years? Or the silver version, which uses the exact same sprite, but with a different, also preexisting palette? Isn't injecting sprites a LOT more difficult than working with sprites that are already present? Why would it "make more sense" to do that instead, when the work to recolor what's already there has already been done, and works fine? Even if injecting more sprites did make more sense, isn't this a reasonable temporary measure, until the work on the "better" version can be completed? I do not understand why this is being rejected. Please help me understand.

@Kappatechy
Copy link
Contributor Author

I suppose the first thing to clarify is:
What do you mean by "injected sprite"?
It sounds like you're saying the Silver Power Star uses new graphics that have been added to the baseROM, and could therefore have been made to look like anything we wanted... which is false. The visuals used for the star are the same visuals as for the gold version, just applying a different palette. Saying to instead "change the injected sprite" clearly demonstrates a lack of understanding as to what is actually being done.

That said, getting those visuals to appear using that palette DOES involve a process that could also be referred to as "injection." One of the unused sprite ID slots in the baseROM, which was previously using just default values, was set to instead call on the image value for the Power Star, with a palette value that makes it look silver. Adjustments were then made to the item collection handler, to tell it what to do if an item with that ID were collected. If someone told you this Silver Power Star was an "injected sprite," they likely meant it in THAT way. Not a lie, just a miscommunication.

@Berserker66
Copy link
Member

The original lie is that I was told the star was a base game sprite.
Instead, it apparently is part of the basepatch. So, its graphics can be modified there, to for example look like the AP logo, or an up arrow, or whatever else is appropriate and looks good.

@Kappatechy
Copy link
Contributor Author

Okay, that makes it much clearer what we're talking about. Thank you for that. Now I can respond to it properly.

Yes, it certainly would be possible to modify the star's graphics, to make it look like something else. With enough digging into how the sprites are being injected, it may even be possible to inject additional sprites alongside the star, if there's enough space in the ROM for that. But what impact does that have on this PR? Changing the star's sprite would not, by itself, do anything to visually distinguish Progression from non-Progression items. The work done here would still need to be done, completely separate from any adjustments made to the visuals themselves. If anything, having these adjustments already in place would give the hypothetical developer who's modifying the sprites a framework to work from, somewhere to put the new sprites they're crafting and have them show up in-game.

Yes, it would be great to have something even more visually distinct. Injecting additional sprites, or careful crafting of the single sprite being used, could even allow for splitting Useful items from Filler, alongside the Prog/non-Prog split. That would be fantastic. But is anything like that under active development? In what way would this work interfere with work like that? Is this PR not a stepping stone along that path?

@Kappatechy
Copy link
Contributor Author

I thought of a much more succinct way of putting it:
Altering the sprites themselves is out of scope for this PR.

Yes, one COULD change the Power Star sprite into something new, but that is not what this PR is designed for, nor would it solve the issue this PR is trying to solve. This PR aims to provide the player a way to visually distinguish between Progression and non-Progression items. That's it. That is accomplished without touching the sprite injection routines, by using sprites that were already in the baseROM. If you or someone else wants to open your own PR, to modify the sprites and/or inject additional ones, by all means, I welcome that. But this PR is complete as-is.

Will you accept this PR as-is? Will you reject this PR? Or do you have some concerns with the specifics of how this PR accomplishes what it set out to do? If it's the last one, please state those concerns as clearly and precisely as you can, that they might be addressed. Regardless, I want to get this finished and behind us.

@Kappatechy
Copy link
Contributor Author

@Berserker66 This PR still needs your attention. The work done here has yet to be evaluated, as your feedback thus far has no connection to what this PR does.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

is: enhancement Issues requesting new features or pull requests implementing new features. waiting-on: core-review Issue/PR has been peer-reviewed and is ready to be merged or needs input from a core maintainer. waiting-on: world-maintainer Issue/PR is waiting for feedback or approval by the maintainer of a world.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants