diff --git a/data/basepatch.bsdiff4 b/data/basepatch.bsdiff4 index a578b248f577..98fe2b88540b 100644 Binary files a/data/basepatch.bsdiff4 and b/data/basepatch.bsdiff4 differ diff --git a/worlds/alttp/Items.py b/worlds/alttp/Items.py index 40634de8daa3..82bb12836ad4 100644 --- a/worlds/alttp/Items.py +++ b/worlds/alttp/Items.py @@ -100,8 +100,9 @@ def as_init_dict(self) -> typing.Dict[str, typing.Any]: 'Green Pendant': ItemData(IC.progression, 'Crystal', (0x04, 0x38, 0x62, 0x00, 0x69, 0x01), None, None, None, None, None, None, "the green pendant"), 'Blue Pendant': ItemData(IC.progression, 'Crystal', (0x02, 0x34, 0x60, 0x00, 0x69, 0x02), None, None, None, None, None, None, "the blue pendant"), 'Red Pendant': ItemData(IC.progression, 'Crystal', (0x01, 0x32, 0x60, 0x00, 0x69, 0x03), None, None, None, None, None, None, "the red pendant"), + 'Gold Power Star': ItemData(IC.progression, None, 0x69, 'a small victory', 'and the power star', 'star-struck kid', 'star for sale', 'see stars with shroom', 'mario powers up again', 'a Blue Power Star'), 'Triforce': ItemData(IC.progression, None, 0x6A, '\n YOU WIN!', 'and the triforce', 'victorious kid', 'victory for sale', 'fungus for the win', 'greedy boy wins game again', 'the Triforce'), - 'Power Star': ItemData(IC.progression, None, 0x6B, 'a small victory', 'and the power star', 'star-struck kid', 'star for sale', 'see stars with shroom', 'mario powers up again', 'a Power Star'), + 'Silver Power Star': ItemData(IC.filler, None, 0x6B, 'a small victory', 'and the power star', 'star-struck kid', 'star for sale', 'see stars with shroom', 'mario powers up again', 'a Power Star'), 'Triforce Piece': ItemData(IC.progression, None, 0x6C, 'a small victory', 'and the thirdforce', 'triangular kid', 'triangle for sale', 'fungus for triangle', 'wise boy has triangle again', 'a Triforce Piece'), 'Crystal 1': ItemData(IC.progression, 'Crystal', (0x02, 0x34, 0x64, 0x40, 0x7F, 0x06), None, None, None, None, None, None, "a blue crystal"), 'Crystal 2': ItemData(IC.progression, 'Crystal', (0x10, 0x34, 0x64, 0x40, 0x79, 0x06), None, None, None, None, None, None, "a blue crystal"), diff --git a/worlds/alttp/Rom.py b/worlds/alttp/Rom.py index ed222b5f5d14..1e6a79171ed1 100644 --- a/worlds/alttp/Rom.py +++ b/worlds/alttp/Rom.py @@ -4,7 +4,7 @@ import worlds.Files LTTPJPN10HASH: str = "03a63945398191337e896e5771f77173" -RANDOMIZERBASEHASH: str = "9952c2a3ec1b421e408df0d20c8f0c7f" +RANDOMIZERBASEHASH: str = "8719f420b587adac8d3750792d46e5bd" ROM_PLAYER_LIMIT: int = 255 import io @@ -762,11 +762,16 @@ def write_to_rom(self, rom: LocalRom): 0x4D504, 0x4D507, 0x4D55E, 0x4D56A] -def get_nonnative_item_sprite(code: int) -> int: +def get_nonnative_item_sprite(code: int, advancement: bool) -> int: if 84173 >= code >= 84007: # LttP item in SMZ3 return code - 84000 - return 0x6B # set all non-native sprites to Power Star as per 13 to 2 vote at + # Set all non-native sprites to a gold Power Star for advancement + # items and a silver Power Star for non-advancement items as per 13 to 2 vote at # https://discord.com/channels/731205301247803413/827141303330406408/852102450822905886 + if advancement: + return 0x69 # Gold Power Star + else: + return 0x6B # Silver Power Star def patch_rom(world: MultiWorld, rom: LocalRom, player: int, enemized: bool): @@ -787,7 +792,7 @@ def patch_rom(world: MultiWorld, rom: LocalRom, player: int, enemized: bool): if location.item.trap: itemid = 0x5A # Nothing, which disguises else: - itemid = get_nonnative_item_sprite(location.item.code) + itemid = get_nonnative_item_sprite(location.item.code, location.item.advancement) # Keys in their native dungeon should use the orignal item code for keys elif location.parent_region.dungeon: if location.parent_region.dungeon.is_dungeon_item(location.item): @@ -1741,7 +1746,8 @@ def write_custom_shops(rom, world, player): replacement_price_data = get_price_data(item['replacement_price'], item['replacement_price_type']) slot = 0 if shop.type == ShopType.TakeAny else index if item['player'] and world.game[item['player']] != "A Link to the Past": # item not native to ALTTP - item_code = get_nonnative_item_sprite(world.worlds[item['player']].item_name_to_id[item['item']]) + item_code = get_nonnative_item_sprite(world.worlds[item['player']].item_name_to_id[item['item']], + shop.region.locations[index].item.advancement) else: item_code = ItemFactory(item['item'], player).code if item['item'] == 'Single Arrow' and item['player'] == 0 and world.retro_bow[player]: