[ALTTP] Add second Power Star to differentiate non-native progression items#2866
[ALTTP] Add second Power Star to differentiate non-native progression items#2866Kappatechy wants to merge 16 commits intoArchipelagoMW:mainfrom
Conversation
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.
|
This is an update/extension of #2139 created with permission from the original developer. |
|
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.) |
An update was made to the basepatch to correct a calculation. This commit updates the basepatch to include that correction alongside the Silver Star adjustments.
Exempt-Medic
left a comment
There was a problem hiding this comment.
Tested two games with these changes and everything appeared to work correctly.
|
@Berserker66 Please decide whether you want to close this PR, accept this PR, or suggest changes for it |
|
I've since learned that I was originally lied to and the star is an injected sprite (unless that information was a lie too) |
|
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. |
|
I suppose the first thing to clarify is: 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. |
|
The original lie is that I was told the star was a base game sprite. |
|
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? |
|
I thought of a much more succinct way of putting it: 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. |
|
@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. |
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.