from collections import OrderedDict


def shop_address(shop_id, shelf_id):
    return 0xC71ED0 + (0x40 * shop_id) + (0x08 * shelf_id)

#   Abbreviations
#       DMC     Death Mountain Crater
#       DMT     Death Mountain Trail
#       GC      Goron City
#       GF      Gerudo Fortress
#       GS      Gold Skulltula
#       GV      Gerudo Valley
#       HC      Hyrule Castle
#       HF      Hyrule Field
#       KF      Kokiri Forest
#       LH      Lake Hylia
#       LLR     Lon Lon Ranch
#       LW      Lost Woods
#       OGC     Outside Ganon's Castle
#       SFM     Sacred Forest Meadow
#       ToT     Temple of Time
#       ZD      Zora's Domain
#       ZF      Zora's Fountain
#       ZR      Zora's River

# The order of this table is reflected in the spoiler's list of locations (except Hints aren't included).
# Within a section, the order of types is: gifts/freestanding/chests, Deku Scrubs, Cows, Gold Skulltulas, Shops.

# NPC Scrubs are on the overworld, while GrottoNPC is a special handler for Grottos
# Grottos scrubs are the same scene and actor, so we use a unique grotto ID for the scene

# Note that the scene for skulltulas is not the actual scene the token appears in
# Rather, it is the index of the grouping used when storing skulltula collection
# For example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas

#   Location:                                                        Type             Scene  Default Addresses                  Vanilla Item                             Categories
location_table = OrderedDict([
    ## Dungeon Rewards
    ("Links Pocket",                                                 ("Boss",         None,  None, None,                        'Light Medallion',                       None)),
    ("Queen Gohma",                                                  ("Boss",         None,  0x6C, (0x0CA315F, 0x2079571),      'Kokiri Emerald',                        None)),
    ("King Dodongo",                                                 ("Boss",         None,  0x6D, (0x0CA30DF, 0x2223309),      'Goron Ruby',                            None)),
    ("Barinade",                                                     ("Boss",         None,  0x6E, (0x0CA36EB, 0x2113C19),      'Zora Sapphire',                         None)),
    ("Phantom Ganon",                                                ("Boss",         None,  0x66, (0x0CA3D07, 0x0D4ED79),      'Forest Medallion',                      None)),
    ("Volvagia",                                                     ("Boss",         None,  0x67, (0x0CA3D93, 0x0D10135),      'Fire Medallion',                        None)),
    ("Morpha",                                                       ("Boss",         None,  0x68, (0x0CA3E1F, 0x0D5A3A9),      'Water Medallion',                       None)),
    ("Bongo Bongo",                                                  ("Boss",         None,  0x6A, (0x0CA3F43, 0x0D13E19),      'Shadow Medallion',                      None)),
    ("Twinrova",                                                     ("Boss",         None,  0x69, (0x0CA3EB3, 0x0D39FF1),      'Spirit Medallion',                      None)),
    ("Ganon",                                                        ("Event",        None,  None, None,                        'Triforce',                              None)),

    ## Songs
    ("Song from Impa",                                               ("Song",         0xFF,  0x26, (0x2E8E925, 0x2E8E925),      'Zeldas Lullaby',                        ("Hyrule Castle", "Market", "Songs"))),
    ("Song from Malon",                                              ("Song",         0xFF,  0x27, (0x0D7EB53, 0x0D7EBCF),      'Eponas Song',                           ("Lon Lon Ranch", "Songs",))),
    ("Song from Saria",                                              ("Song",         0xFF,  0x28, (0x20B1DB1, 0x20B1DB1),      'Sarias Song',                           ("Sacred Forest Meadow", "Forest", "Songs"))),
    ("Song from Composers Grave",                                    ("Song",         0xFF,  0x29, (0x332A871, 0x332A871),      'Suns Song',                             ("the Graveyard", "Kakariko", "Songs"))),
    ("Song from Ocarina of Time",                                    ("Song",         0xFF,  0x2A, (0x252FC89, 0x252FC89),      'Song of Time',                          ("Hyrule Field", "Songs", "Need Spiritual Stones"))),
    ("Song from Windmill",                                           ("Song",         0xFF,  0x2B, (0x0E42C07, 0x0E42B8B),      'Song of Storms',                        ("Kakariko Village", "Kakariko", "Songs"))),
    ("Sheik in Forest",                                              ("Song",         0xFF,  0x20, (0x20B0809, 0x20B0809),      'Minuet of Forest',                      ("Sacred Forest Meadow", "Forest", "Songs"))),
    ("Sheik in Crater",                                              ("Song",         0xFF,  0x21, (0x224D7F1, 0x224D7F1),      'Bolero of Fire',                        ("Death Mountain Crater", "Death Mountain", "Songs"))),
    ("Sheik in Ice Cavern",                                          ("Song",         0xFF,  0x22, (0x2BEC889, 0x2BEC889),      'Serenade of Water',                     ("Ice Cavern", "Songs",))),
    ("Sheik at Colossus",                                            ("Song",         0xFF,  0x23, (0x218C57D, 0x218C57D),      'Requiem of Spirit',                     ("Desert Colossus", "Songs",))),
    ("Sheik in Kakariko",                                            ("Song",         0xFF,  0x24, (0x2000FE1, 0x2000FE1),      'Nocturne of Shadow',                    ("Kakariko Village", "Kakariko", "Songs"))),
    ("Sheik at Temple",                                              ("Song",         0xFF,  0x25, (0x2531329, 0x2531329),      'Prelude of Light',                      ("Temple of Time", "Market", "Songs"))),

    ## Overworld
    # Kokiri Forest
    ("KF Midos Top Left Chest",                                      ("Chest",        0x28,  0x00, None,                        'Rupees (5)',                            ("Kokiri Forest", "Forest",))),
    ("KF Midos Top Right Chest",                                     ("Chest",        0x28,  0x01, None,                        'Rupees (5)',                            ("Kokiri Forest", "Forest",))),
    ("KF Midos Bottom Left Chest",                                   ("Chest",        0x28,  0x02, None,                        'Rupee (1)',                             ("Kokiri Forest", "Forest",))),
    ("KF Midos Bottom Right Chest",                                  ("Chest",        0x28,  0x03, None,                        'Recovery Heart',                        ("Kokiri Forest", "Forest",))),
    ("KF Kokiri Sword Chest",                                        ("Chest",        0x55,  0x00, None,                        'Kokiri Sword',                          ("Kokiri Forest", "Forest",))),
    ("KF Storms Grotto Chest",                                       ("Chest",        0x3E,  0x0C, None,                        'Rupees (20)',                           ("Kokiri Forest", "Forest", "Grottos"))),
    ("KF Links House Cow",                                           ("NPC",          0x34,  0x15, None,                        'Milk',                                  ("KF Links House", "Forest", "Cow", "Minigames"))),
    ("KF GS Know It All House",                                      ("GS Token",     0x0C,  0x02, None,                        'Gold Skulltula Token',                  ("Kokiri Forest", "Skulltulas",))),
    ("KF GS Bean Patch",                                             ("GS Token",     0x0C,  0x01, None,                        'Gold Skulltula Token',                  ("Kokiri Forest", "Skulltulas",))),
    ("KF GS House of Twins",                                         ("GS Token",     0x0C,  0x04, None,                        'Gold Skulltula Token',                  ("Kokiri Forest", "Skulltulas",))),
    ("KF Shop Item 1",                                               ("Shop",         0x2D,  0x30, (shop_address(0, 0), None),  'Buy Deku Shield',                       ("Kokiri Forest", "Forest", "Shops"))),
    ("KF Shop Item 2",                                               ("Shop",         0x2D,  0x31, (shop_address(0, 1), None),  'Buy Deku Nut (5)',                      ("Kokiri Forest", "Forest", "Shops"))),
    ("KF Shop Item 3",                                               ("Shop",         0x2D,  0x32, (shop_address(0, 2), None),  'Buy Deku Nut (10)',                     ("Kokiri Forest", "Forest", "Shops"))),
    ("KF Shop Item 4",                                               ("Shop",         0x2D,  0x33, (shop_address(0, 3), None),  'Buy Deku Stick (1)',                    ("Kokiri Forest", "Forest", "Shops"))),
    ("KF Shop Item 5",                                               ("Shop",         0x2D,  0x34, (shop_address(0, 4), None),  'Buy Deku Seeds (30)',                   ("Kokiri Forest", "Forest", "Shops"))),
    ("KF Shop Item 6",                                               ("Shop",         0x2D,  0x35, (shop_address(0, 5), None),  'Buy Arrows (10)',                       ("Kokiri Forest", "Forest", "Shops"))),
    ("KF Shop Item 7",                                               ("Shop",         0x2D,  0x36, (shop_address(0, 6), None),  'Buy Arrows (30)',                       ("Kokiri Forest", "Forest", "Shops"))),
    ("KF Shop Item 8",                                               ("Shop",         0x2D,  0x37, (shop_address(0, 7), None),  'Buy Heart',                             ("Kokiri Forest", "Forest", "Shops"))),

    # Lost Woods
    ("LW Gift from Saria",                                           ("Cutscene",     0xFF,  0x02, None,                        'Ocarina',                               ("the Lost Woods", "Forest",))),
    ("LW Ocarina Memory Game",                                       ("NPC",          0x5B,  0x76, None,                        'Piece of Heart',                        ("the Lost Woods", "Forest", "Minigames"))),
    ("LW Target in Woods",                                           ("NPC",          0x5B,  0x60, None,                        'Slingshot',                             ("the Lost Woods", "Forest",))),
    ("LW Near Shortcuts Grotto Chest",                               ("Chest",        0x3E,  0x14, None,                        'Rupees (5)',                            ("the Lost Woods", "Forest", "Grottos"))),
    ("Deku Theater Skull Mask",                                      ("NPC",          0x3E,  0x77, None,                        'Deku Stick Capacity',                   ("the Lost Woods", "Forest", "Grottos"))),
    ("Deku Theater Mask of Truth",                                   ("NPC",          0x3E,  0x7A, None,                        'Deku Nut Capacity',                     ("the Lost Woods", "Forest", "Need Spiritual Stones", "Grottos"))),
    ("LW Skull Kid",                                                 ("NPC",          0x5B,  0x3E, None,                        'Piece of Heart',                        ("the Lost Woods", "Forest",))),
    ("LW Deku Scrub Near Bridge",                                    ("NPC",          0x5B,  0x77, None,                        'Deku Stick Capacity',                   ("the Lost Woods", "Forest", "Deku Scrub", "Deku Scrub Upgrades"))),
    ("LW Deku Scrub Near Deku Theater Left",                         ("NPC",          0x5B,  0x31, None,                        'Buy Deku Stick (1)',                    ("the Lost Woods", "Forest", "Deku Scrub"))),
    ("LW Deku Scrub Near Deku Theater Right",                        ("NPC",          0x5B,  0x30, None,                        'Buy Deku Nut (5)',                      ("the Lost Woods", "Forest", "Deku Scrub"))),
    ("LW Deku Scrub Grotto Front",                                   ("GrottoNPC",    0xF5,  0x79, None,                        'Deku Nut Capacity',                     ("the Lost Woods", "Forest", "Deku Scrub", "Deku Scrub Upgrades", "Grottos"))),
    ("LW Deku Scrub Grotto Rear",                                    ("GrottoNPC",    0xF5,  0x33, None,                        'Buy Deku Seeds (30)',                   ("the Lost Woods", "Forest", "Deku Scrub", "Grottos"))),
    ("LW GS Bean Patch Near Bridge",                                 ("GS Token",     0x0D,  0x01, None,                        'Gold Skulltula Token',                  ("the Lost Woods", "Skulltulas",))),
    ("LW GS Bean Patch Near Theater",                                ("GS Token",     0x0D,  0x02, None,                        'Gold Skulltula Token',                  ("the Lost Woods", "Skulltulas",))),
    ("LW GS Above Theater",                                          ("GS Token",     0x0D,  0x04, None,                        'Gold Skulltula Token',                  ("the Lost Woods", "Skulltulas",))),

    # Sacred Forest Meadow
    ("SFM Wolfos Grotto Chest",                                      ("Chest",        0x3E,  0x11, None,                        'Rupees (50)',                           ("Sacred Forest Meadow", "Forest", "Grottos"))),
    ("SFM Deku Scrub Grotto Front",                                  ("GrottoNPC",    0xEE,  0x3A, None,                        'Buy Green Potion',                      ("Sacred Forest Meadow", "Forest", "Deku Scrub", "Grottos"))),
    ("SFM Deku Scrub Grotto Rear",                                   ("GrottoNPC",    0xEE,  0x39, None,                        'Buy Red Potion [30]',                   ("Sacred Forest Meadow", "Forest", "Deku Scrub", "Grottos"))),
    ("SFM GS",                                                       ("GS Token",     0x0D,  0x08, None,                        'Gold Skulltula Token',                  ("Sacred Forest Meadow", "Skulltulas",))),

    # Hyrule Field
    ("HF Ocarina of Time Item",                                      ("NPC",          0x51,  0x0C, None,                        'Ocarina',                               ("Hyrule Field", "Need Spiritual Stones",))),
    ("HF Near Market Grotto Chest",                                  ("Chest",        0x3E,  0x00, None,                        'Rupees (5)',                            ("Hyrule Field", "Grottos",))),
    ("HF Tektite Grotto Freestanding PoH",                           ("Collectable",  0x3E,  0x01, None,                        'Piece of Heart',                        ("Hyrule Field", "Grottos",))),
    ("HF Southeast Grotto Chest",                                    ("Chest",        0x3E,  0x02, None,                        'Rupees (20)',                           ("Hyrule Field", "Grottos",))),
    ("HF Open Grotto Chest",                                         ("Chest",        0x3E,  0x03, None,                        'Rupees (5)',                            ("Hyrule Field", "Grottos",))),
    ("HF Deku Scrub Grotto",                                         ("GrottoNPC",    0xE6,  0x3E, None,                        'Piece of Heart',                        ("Hyrule Field", "Deku Scrub", "Deku Scrub Upgrades", "Grottos"))),
    ("HF Cow Grotto Cow",                                            ("NPC",          0x3E,  0x16, None,                        'Milk',                                  ("Hyrule Field", "Cow", "Grottos"))),
    ("HF GS Cow Grotto",                                             ("GS Token",     0x0A,  0x01, None,                        'Gold Skulltula Token',                  ("Hyrule Field", "Skulltulas", "Grottos"))),
    ("HF GS Near Kak Grotto",                                        ("GS Token",     0x0A,  0x02, None,                        'Gold Skulltula Token',                  ("Hyrule Field", "Skulltulas", "Grottos"))),

    # Market
    ("Market Shooting Gallery Reward",                               ("NPC",          0x42,  0x60, None,                        'Slingshot',                             ("the Market", "Market", "Minigames"))),
    ("Market Bombchu Bowling First Prize",                           ("NPC",          0x4B,  0x34, None,                        'Bomb Bag',                              ("the Market", "Market", "Minigames"))),
    ("Market Bombchu Bowling Second Prize",                          ("NPC",          0x4B,  0x3E, None,                        'Piece of Heart',                        ("the Market", "Market", "Minigames"))),
    ("Market Bombchu Bowling Bombchus",                              ("Event",        0x4B,  None, None,                        'Bombchu Drop',                          ("the Market", "Market", "Minigames"))),
    ("Market Lost Dog",                                              ("NPC",          0x35,  0x3E, None,                        'Piece of Heart',                        ("the Market", "Market",))),
    ("Market Treasure Chest Game Reward",                            ("Chest",        0x10,  0x0A, None,                        'Piece of Heart (Treasure Chest Game)',  ("the Market", "Market", "Minigames"))),
    ("Market 10 Big Poes",                                           ("NPC",          0x4D,  0x0F, None,                        'Bottle',                                ("the Market", "Hyrule Castle",))),
    ("Market GS Guard House",                                        ("GS Token",     0x0E,  0x08, None,                        'Gold Skulltula Token',                  ("the Market", "Skulltulas",))),
    ("Market Bazaar Item 1",                                         ("Shop",         0x2C,  0x30, (shop_address(4, 0), None),  'Buy Hylian Shield',                     ("the Market", "Market", "Shops"))),
    ("Market Bazaar Item 2",                                         ("Shop",         0x2C,  0x31, (shop_address(4, 1), None),  'Buy Bombs (5) [35]',                    ("the Market", "Market", "Shops"))),
    ("Market Bazaar Item 3",                                         ("Shop",         0x2C,  0x32, (shop_address(4, 2), None),  'Buy Deku Nut (5)',                      ("the Market", "Market", "Shops"))),
    ("Market Bazaar Item 4",                                         ("Shop",         0x2C,  0x33, (shop_address(4, 3), None),  'Buy Heart',                             ("the Market", "Market", "Shops"))),
    ("Market Bazaar Item 5",                                         ("Shop",         0x2C,  0x34, (shop_address(4, 4), None),  'Buy Arrows (10)',                       ("the Market", "Market", "Shops"))),
    ("Market Bazaar Item 6",                                         ("Shop",         0x2C,  0x35, (shop_address(4, 5), None),  'Buy Arrows (50)',                       ("the Market", "Market", "Shops"))),
    ("Market Bazaar Item 7",                                         ("Shop",         0x2C,  0x36, (shop_address(4, 6), None),  'Buy Deku Stick (1)',                    ("the Market", "Market", "Shops"))),
    ("Market Bazaar Item 8",                                         ("Shop",         0x2C,  0x37, (shop_address(4, 7), None),  'Buy Arrows (30)',                       ("the Market", "Market", "Shops"))),

    ("Market Potion Shop Item 1",                                    ("Shop",         0x31,  0x30, (shop_address(3, 0), None),  'Buy Green Potion',                      ("the Market", "Market", "Shops"))),
    ("Market Potion Shop Item 2",                                    ("Shop",         0x31,  0x31, (shop_address(3, 1), None),  'Buy Blue Fire',                         ("the Market", "Market", "Shops"))),
    ("Market Potion Shop Item 3",                                    ("Shop",         0x31,  0x32, (shop_address(3, 2), None),  'Buy Red Potion [30]',                   ("the Market", "Market", "Shops"))),
    ("Market Potion Shop Item 4",                                    ("Shop",         0x31,  0x33, (shop_address(3, 3), None),  'Buy Fairy\'s Spirit',                   ("the Market", "Market", "Shops"))),
    ("Market Potion Shop Item 5",                                    ("Shop",         0x31,  0x34, (shop_address(3, 4), None),  'Buy Deku Nut (5)',                      ("the Market", "Market", "Shops"))),
    ("Market Potion Shop Item 6",                                    ("Shop",         0x31,  0x35, (shop_address(3, 5), None),  'Buy Bottle Bug',                        ("the Market", "Market", "Shops"))),
    ("Market Potion Shop Item 7",                                    ("Shop",         0x31,  0x36, (shop_address(3, 6), None),  'Buy Poe',                               ("the Market", "Market", "Shops"))),
    ("Market Potion Shop Item 8",                                    ("Shop",         0x31,  0x37, (shop_address(3, 7), None),  'Buy Fish',                              ("the Market", "Market", "Shops"))),

    ("Market Bombchu Shop Item 1",                                   ("Shop",         0x32,  0x30, (shop_address(2, 0), None),  'Buy Bombchu (5)',                       ("the Market", "Market", "Shops"))),
    ("Market Bombchu Shop Item 2",                                   ("Shop",         0x32,  0x31, (shop_address(2, 1), None),  'Buy Bombchu (10)',                      ("the Market", "Market", "Shops"))),
    ("Market Bombchu Shop Item 3",                                   ("Shop",         0x32,  0x32, (shop_address(2, 2), None),  'Buy Bombchu (10)',                      ("the Market", "Market", "Shops"))),
    ("Market Bombchu Shop Item 4",                                   ("Shop",         0x32,  0x33, (shop_address(2, 3), None),  'Buy Bombchu (10)',                      ("the Market", "Market", "Shops"))),
    ("Market Bombchu Shop Item 5",                                   ("Shop",         0x32,  0x34, (shop_address(2, 4), None),  'Buy Bombchu (20)',                      ("the Market", "Market", "Shops"))),
    ("Market Bombchu Shop Item 6",                                   ("Shop",         0x32,  0x35, (shop_address(2, 5), None),  'Buy Bombchu (20)',                      ("the Market", "Market", "Shops"))),
    ("Market Bombchu Shop Item 7",                                   ("Shop",         0x32,  0x36, (shop_address(2, 6), None),  'Buy Bombchu (20)',                      ("the Market", "Market", "Shops"))),
    ("Market Bombchu Shop Item 8",                                   ("Shop",         0x32,  0x37, (shop_address(2, 7), None),  'Buy Bombchu (20)',                      ("the Market", "Market", "Shops"))),

    ("ToT Light Arrows Cutscene",                                    ("Cutscene",     0xFF,  0x01, None,                        'Light Arrows',                          ("Temple of Time", "Market",))),

    # Hyrule Castle
    ("HC Malon Egg",                                                 ("NPC",          0x5F,  0x47, None,                        'Weird Egg',                             ("Hyrule Castle", "Market",))),
    ("HC Zeldas Letter",                                             ("NPC",          0x4A,  0x0B, None,                        'Zeldas Letter',                         ("Hyrule Castle", "Market",))),
    ("HC Great Fairy Reward",                                        ("Cutscene",     0xFF,  0x11, None,                        'Dins Fire',                             ("Hyrule Castle", "Market", "Fairies"))),
    ("HC GS Tree",                                                   ("GS Token",     0x0E,  0x04, None,                        'Gold Skulltula Token',                  ("Hyrule Castle", "Skulltulas",))),
    ("HC GS Storms Grotto",                                          ("GS Token",     0x0E,  0x02, None,                        'Gold Skulltula Token',                  ("Hyrule Castle", "Skulltulas", "Grottos"))),

    # Lon Lon Ranch
    ("LLR Talons Chickens",                                          ("NPC",          0x4C,  0x14, None,                        'Bottle with Milk',                      ("Lon Lon Ranch", "Kakariko", "Minigames"))),
    ("LLR Freestanding PoH",                                         ("Collectable",  0x4C,  0x01, None,                        'Piece of Heart',                        ("Lon Lon Ranch",))),
    ("LLR Deku Scrub Grotto Left",                                   ("GrottoNPC",    0xFC,  0x30, None,                        'Buy Deku Nut (5)',                      ("Lon Lon Ranch", "Deku Scrub", "Grottos"))),
    ("LLR Deku Scrub Grotto Center",                                 ("GrottoNPC",    0xFC,  0x33, None,                        'Buy Deku Seeds (30)',                   ("Lon Lon Ranch", "Deku Scrub", "Grottos"))),
    ("LLR Deku Scrub Grotto Right",                                  ("GrottoNPC",    0xFC,  0x37, None,                        'Buy Bombs (5) [35]',                    ("Lon Lon Ranch", "Deku Scrub", "Grottos"))),
    ("LLR Stables Left Cow",                                         ("NPC",          0x36,  0x15, None,                        'Milk',                                  ("Lon Lon Ranch", "Cow",))),
    ("LLR Stables Right Cow",                                        ("NPC",          0x36,  0x16, None,                        'Milk',                                  ("Lon Lon Ranch", "Cow",))),
    ("LLR Tower Left Cow",                                           ("NPC",          0x4C,  0x16, None,                        'Milk',                                  ("Lon Lon Ranch", "Cow",))),
    ("LLR Tower Right Cow",                                          ("NPC",          0x4C,  0x15, None,                        'Milk',                                  ("Lon Lon Ranch", "Cow",))),
    ("LLR GS House Window",                                          ("GS Token",     0x0B,  0x04, None,                        'Gold Skulltula Token',                  ("Lon Lon Ranch", "Skulltulas",))),
    ("LLR GS Tree",                                                  ("GS Token",     0x0B,  0x08, None,                        'Gold Skulltula Token',                  ("Lon Lon Ranch", "Skulltulas",))),
    ("LLR GS Rain Shed",                                             ("GS Token",     0x0B,  0x02, None,                        'Gold Skulltula Token',                  ("Lon Lon Ranch", "Skulltulas",))),
    ("LLR GS Back Wall",                                             ("GS Token",     0x0B,  0x01, None,                        'Gold Skulltula Token',                  ("Lon Lon Ranch", "Skulltulas",))),

    # Kakariko
    ("Kak Anju as Child",                                            ("NPC",          0x52,  0x0F, None,                        'Bottle',                                ("Kakariko Village", "Kakariko", "Minigames"))),
    ("Kak Anju as Adult",                                            ("NPC",          0x52,  0x1D, None,                        'Pocket Egg',                            ("Kakariko Village", "Kakariko",))),
    ("Kak Impas House Freestanding PoH",                             ("Collectable",  0x37,  0x01, None,                        'Piece of Heart',                        ("Kakariko Village", "Kakariko",))),
    ("Kak Windmill Freestanding PoH",                                ("Collectable",  0x48,  0x01, None,                        'Piece of Heart',                        ("Kakariko Village", "Kakariko",))),
    ("Kak Man on Roof",                                              ("NPC",          0x52,  0x3E, None,                        'Piece of Heart',                        ("Kakariko Village", "Kakariko",))),
    ("Kak Open Grotto Chest",                                        ("Chest",        0x3E,  0x08, None,                        'Rupees (20)',                           ("Kakariko Village", "Kakariko", "Grottos"))),
    ("Kak Redead Grotto Chest",                                      ("Chest",        0x3E,  0x0A, None,                        'Rupees (200)',                          ("Kakariko Village", "Kakariko", "Grottos"))),
    ("Kak Shooting Gallery Reward",                                  ("NPC",          0x42,  0x30, None,                        'Bow',                                   ("Kakariko Village", "Kakariko", "Minigames"))),
    ("Kak 10 Gold Skulltula Reward",                                 ("NPC",          0x50,  0x45, None,                        'Progressive Wallet',                    ("Kakariko Village", "Kakariko", "Skulltula House"))),
    ("Kak 20 Gold Skulltula Reward",                                 ("NPC",          0x50,  0x39, None,                        'Stone of Agony',                        ("Kakariko Village", "Kakariko", "Skulltula House"))),
    ("Kak 30 Gold Skulltula Reward",                                 ("NPC",          0x50,  0x46, None,                        'Progressive Wallet',                    ("Kakariko Village", "Kakariko", "Skulltula House"))),
    ("Kak 40 Gold Skulltula Reward",                                 ("NPC",          0x50,  0x03, None,                        'Bombchus (10)',                         ("Kakariko Village", "Kakariko", "Skulltula House"))),
    ("Kak 50 Gold Skulltula Reward",                                 ("NPC",          0x50,  0x3E, None,                        'Piece of Heart',                        ("Kakariko Village", "Kakariko", "Skulltula House"))),
    ("Kak Impas House Cow",                                          ("NPC",          0x37,  0x15, None,                        'Milk',                                  ("Kakariko Village", "Kakariko", "Cow"))),
    ("Kak GS Tree",                                                  ("GS Token",     0x10,  0x20, None,                        'Gold Skulltula Token',                  ("Kakariko Village", "Skulltulas",))),
    ("Kak GS Guards House",                                          ("GS Token",     0x10,  0x02, None,                        'Gold Skulltula Token',                  ("Kakariko Village", "Skulltulas",))),
    ("Kak GS Watchtower",                                            ("GS Token",     0x10,  0x04, None,                        'Gold Skulltula Token',                  ("Kakariko Village", "Skulltulas",))),
    ("Kak GS Skulltula House",                                       ("GS Token",     0x10,  0x10, None,                        'Gold Skulltula Token',                  ("Kakariko Village", "Skulltulas",))),
    ("Kak GS House Under Construction",                              ("GS Token",     0x10,  0x08, None,                        'Gold Skulltula Token',                  ("Kakariko Village", "Skulltulas",))),
    ("Kak GS Above Impas House",                                     ("GS Token",     0x10,  0x40, None,                        'Gold Skulltula Token',                  ("Kakariko Village", "Skulltulas",))),
    ("Kak Bazaar Item 1",                                            ("Shop",         0x2C,  0x38, (shop_address(5, 0), None),  'Buy Hylian Shield',                     ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Bazaar Item 2",                                            ("Shop",         0x2C,  0x39, (shop_address(5, 1), None),  'Buy Bombs (5) [35]',                    ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Bazaar Item 3",                                            ("Shop",         0x2C,  0x3A, (shop_address(5, 2), None),  'Buy Deku Nut (5)',                      ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Bazaar Item 4",                                            ("Shop",         0x2C,  0x3B, (shop_address(5, 3), None),  'Buy Heart',                             ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Bazaar Item 5",                                            ("Shop",         0x2C,  0x3D, (shop_address(5, 4), None),  'Buy Arrows (10)',                       ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Bazaar Item 6",                                            ("Shop",         0x2C,  0x3E, (shop_address(5, 5), None),  'Buy Arrows (50)',                       ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Bazaar Item 7",                                            ("Shop",         0x2C,  0x3F, (shop_address(5, 6), None),  'Buy Deku Stick (1)',                    ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Bazaar Item 8",                                            ("Shop",         0x2C,  0x40, (shop_address(5, 7), None),  'Buy Arrows (30)',                       ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 1",                                       ("Shop",         0x30,  0x30, (shop_address(1, 0), None),  'Buy Deku Nut (5)',                      ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 2",                                       ("Shop",         0x30,  0x31, (shop_address(1, 1), None),  'Buy Fish',                              ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 3",                                       ("Shop",         0x30,  0x32, (shop_address(1, 2), None),  'Buy Red Potion [30]',                   ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 4",                                       ("Shop",         0x30,  0x33, (shop_address(1, 3), None),  'Buy Green Potion',                      ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 5",                                       ("Shop",         0x30,  0x34, (shop_address(1, 4), None),  'Buy Blue Fire',                         ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 6",                                       ("Shop",         0x30,  0x35, (shop_address(1, 5), None),  'Buy Bottle Bug',                        ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 7",                                       ("Shop",         0x30,  0x36, (shop_address(1, 6), None),  'Buy Poe',                               ("Kakariko Village", "Kakariko", "Shops"))),
    ("Kak Potion Shop Item 8",                                       ("Shop",         0x30,  0x37, (shop_address(1, 7), None),  'Buy Fairy\'s Spirit',                   ("Kakariko Village", "Kakariko", "Shops"))),

    # Graveyard
    ("Graveyard Shield Grave Chest",                                 ("Chest",        0x40,  0x00, None,                        'Hylian Shield',                         ("the Graveyard", "Kakariko",))),
    ("Graveyard Heart Piece Grave Chest",                            ("Chest",        0x3F,  0x00, None,                        'Piece of Heart',                        ("the Graveyard", "Kakariko",))),
    ("Graveyard Composers Grave Chest",                              ("Chest",        0x41,  0x00, None,                        'Bombs (5)',                             ("the Graveyard", "Kakariko",))),
    ("Graveyard Freestanding PoH",                                   ("Collectable",  0x53,  0x04, None,                        'Piece of Heart',                        ("the Graveyard", "Kakariko",))),
    ("Graveyard Dampe Gravedigging Tour",                            ("Collectable",  0x53,  0x08, None,                        'Piece of Heart',                        ("the Graveyard", "Kakariko",))),
    ("Graveyard Hookshot Chest",                                     ("Chest",        0x48,  0x00, None,                        'Progressive Hookshot',                  ("the Graveyard", "Kakariko",))),
    ("Graveyard Dampe Race Freestanding PoH",                        ("Collectable",  0x48,  0x07, None,                        'Piece of Heart',                        ("the Graveyard", "Kakariko", "Minigames"))),
    ("Graveyard GS Bean Patch",                                      ("GS Token",     0x10,  0x01, None,                        'Gold Skulltula Token',                  ("the Graveyard", "Skulltulas",))),
    ("Graveyard GS Wall",                                            ("GS Token",     0x10,  0x80, None,                        'Gold Skulltula Token',                  ("the Graveyard", "Skulltulas",))),

    # Death Mountain Trail
    ("DMT Freestanding PoH",                                         ("Collectable",  0x60,  0x1E, None,                        'Piece of Heart',                        ("Death Mountain Trail", "Death Mountain",))),
    ("DMT Chest",                                                    ("Chest",        0x60,  0x01, None,                        'Rupees (50)',                           ("Death Mountain Trail", "Death Mountain",))),
    ("DMT Storms Grotto Chest",                                      ("Chest",        0x3E,  0x17, None,                        'Rupees (200)',                          ("Death Mountain Trail", "Death Mountain", "Grottos"))),
    ("DMT Great Fairy Reward",                                       ("Cutscene",     0xFF,  0x13, None,                        'Magic Meter',                           ("Death Mountain Trail", "Death Mountain", "Fairies"))),
    ("DMT Biggoron",                                                 ("NPC",          0x60,  0x57, None,                        'Biggoron Sword',                        ("Death Mountain Trail", "Death Mountain",))),
    ("DMT Cow Grotto Cow",                                           ("NPC",          0x3E,  0x15, None,                        'Milk',                                  ("Death Mountain Trail", "Death Mountain", "Cow", "Grottos"))),
    ("DMT GS Near Kak",                                              ("GS Token",     0x0F,  0x04, None,                        'Gold Skulltula Token',                  ("Death Mountain Trail", "Skulltulas",))),
    ("DMT GS Bean Patch",                                            ("GS Token",     0x0F,  0x02, None,                        'Gold Skulltula Token',                  ("Death Mountain Trail", "Skulltulas",))),
    ("DMT GS Above Dodongos Cavern",                                 ("GS Token",     0x0F,  0x08, None,                        'Gold Skulltula Token',                  ("Death Mountain Trail", "Skulltulas",))),
    ("DMT GS Falling Rocks Path",                                    ("GS Token",     0x0F,  0x10, None,                        'Gold Skulltula Token',                  ("Death Mountain Trail", "Skulltulas",))),

    # Goron City
    ("GC Darunias Joy",                                              ("NPC",          0x62,  0x54, None,                        'Progressive Strength Upgrade',          ("Goron City",))),
    ("GC Pot Freestanding PoH",                                      ("Collectable",  0x62,  0x1F, None,                        'Piece of Heart',                        ("Goron City", "Goron City",))),
    ("GC Rolling Goron as Child",                                    ("NPC",          0x62,  0x34, None,                        'Bomb Bag',                              ("Goron City",))),
    ("GC Rolling Goron as Adult",                                    ("NPC",          0x62,  0x2C, None,                        'Goron Tunic',                           ("Goron City",))),
    ("GC Medigoron",                                                 ("NPC",          0x62,  0x28, None,                        'Giants Knife',                          ("Goron City",))),
    ("GC Maze Left Chest",                                           ("Chest",        0x62,  0x00, None,                        'Rupees (200)',                          ("Goron City",))),
    ("GC Maze Right Chest",                                          ("Chest",        0x62,  0x01, None,                        'Rupees (50)',                           ("Goron City",))),
    ("GC Maze Center Chest",                                         ("Chest",        0x62,  0x02, None,                        'Rupees (50)',                           ("Goron City",))),
    ("GC Deku Scrub Grotto Left",                                    ("GrottoNPC",    0xFB,  0x30, None,                        'Buy Deku Nut (5)',                      ("Goron City", "Deku Scrub", "Grottos"))),
    ("GC Deku Scrub Grotto Center",                                  ("GrottoNPC",    0xFB,  0x33, None,                        'Buy Arrows (30)',                       ("Goron City", "Deku Scrub", "Grottos"))),
    ("GC Deku Scrub Grotto Right",                                   ("GrottoNPC",    0xFB,  0x37, None,                        'Buy Bombs (5) [35]',                    ("Goron City", "Deku Scrub", "Grottos"))),
    ("GC GS Center Platform",                                        ("GS Token",     0x0F,  0x20, None,                        'Gold Skulltula Token',                  ("Goron City", "Skulltulas",))),
    ("GC GS Boulder Maze",                                           ("GS Token",     0x0F,  0x40, None,                        'Gold Skulltula Token',                  ("Goron City", "Skulltulas",))),
    ("GC Shop Item 1",                                               ("Shop",         0x2E,  0x30, (shop_address(8, 0), None),  'Buy Bombs (5) [25]',                    ("Goron City", "Shops",))),
    ("GC Shop Item 2",                                               ("Shop",         0x2E,  0x31, (shop_address(8, 1), None),  'Buy Bombs (10)',                        ("Goron City", "Shops",))),
    ("GC Shop Item 3",                                               ("Shop",         0x2E,  0x32, (shop_address(8, 2), None),  'Buy Bombs (20)',                        ("Goron City", "Shops",))),
    ("GC Shop Item 4",                                               ("Shop",         0x2E,  0x33, (shop_address(8, 3), None),  'Buy Bombs (30)',                        ("Goron City", "Shops",))),
    ("GC Shop Item 5",                                               ("Shop",         0x2E,  0x34, (shop_address(8, 4), None),  'Buy Goron Tunic',                       ("Goron City", "Shops",))),
    ("GC Shop Item 6",                                               ("Shop",         0x2E,  0x35, (shop_address(8, 5), None),  'Buy Heart',                             ("Goron City", "Shops",))),
    ("GC Shop Item 7",                                               ("Shop",         0x2E,  0x36, (shop_address(8, 6), None),  'Buy Red Potion [40]',                   ("Goron City", "Shops",))),
    ("GC Shop Item 8",                                               ("Shop",         0x2E,  0x37, (shop_address(8, 7), None),  'Buy Heart',                             ("Goron City", "Shops",))),

    # Death Mountain Crater
    ("DMC Volcano Freestanding PoH",                                 ("Collectable",  0x61,  0x08, None,                        'Piece of Heart',                        ("Death Mountain Crater", "Death Mountain",))),
    ("DMC Wall Freestanding PoH",                                    ("Collectable",  0x61,  0x02, None,                        'Piece of Heart',                        ("Death Mountain Crater", "Death Mountain",))),
    ("DMC Upper Grotto Chest",                                       ("Chest",        0x3E,  0x1A, None,                        'Bombs (20)',                            ("Death Mountain Crater", "Death Mountain", "Grottos"))),
    ("DMC Great Fairy Reward",                                       ("Cutscene",     0xFF,  0x14, None,                        'Magic Meter',                           ("Death Mountain Crater", "Death Mountain", "Fairies",))),
    ("DMC Deku Scrub",                                               ("NPC",          0x61,  0x37, None,                        'Buy Bombs (5) [35]',                    ("Death Mountain Crater", "Death Mountain", "Deku Scrub"))),
    ("DMC Deku Scrub Grotto Left",                                   ("GrottoNPC",    0xF9,  0x30, None,                        'Buy Deku Nut (5)',                      ("Death Mountain Crater", "Death Mountain", "Deku Scrub", "Grottos"))),
    ("DMC Deku Scrub Grotto Center",                                 ("GrottoNPC",    0xF9,  0x33, None,                        'Buy Arrows (30)',                       ("Death Mountain Crater", "Death Mountain", "Deku Scrub", "Grottos"))),
    ("DMC Deku Scrub Grotto Right",                                  ("GrottoNPC",    0xF9,  0x37, None,                        'Buy Bombs (5) [35]',                    ("Death Mountain Crater", "Death Mountain", "Deku Scrub", "Grottos"))),
    ("DMC GS Crate",                                                 ("GS Token",     0x0F,  0x80, None,                        'Gold Skulltula Token',                  ("Death Mountain Crater", "Skulltulas",))),
    ("DMC GS Bean Patch",                                            ("GS Token",     0x0F,  0x01, None,                        'Gold Skulltula Token',                  ("Death Mountain Crater", "Skulltulas",))),

    # Zora's River
    ("ZR Magic Bean Salesman",                                       ("NPC",          0x54,  0x16, None,                        'Magic Bean',                            ("Zora's River",))),
    ("ZR Open Grotto Chest",                                         ("Chest",        0x3E,  0x09, None,                        'Rupees (20)',                           ("Zora's River", "Grottos",))),
    ("ZR Frogs in the Rain",                                         ("NPC",          0x54,  0x3E, None,                        'Piece of Heart',                        ("Zora's River", "Minigames",))),
    ("ZR Frogs Ocarina Game",                                        ("NPC",          0x54,  0x76, None,                        'Piece of Heart',                        ("Zora's River",))),
    ("ZR Near Open Grotto Freestanding PoH",                         ("Collectable",  0x54,  0x04, None,                        'Piece of Heart',                        ("Zora's River",))),
    ("ZR Near Domain Freestanding PoH",                              ("Collectable",  0x54,  0x0B, None,                        'Piece of Heart',                        ("Zora's River",))),
    ("ZR Deku Scrub Grotto Front",                                   ("GrottoNPC",    0xEB,  0x3A, None,                        'Buy Green Potion',                      ("Zora's River", "Deku Scrub", "Grottos"))),
    ("ZR Deku Scrub Grotto Rear",                                    ("GrottoNPC",    0xEB,  0x39, None,                        'Buy Red Potion [30]',                   ("Zora's River", "Deku Scrub", "Grottos"))),
    ("ZR GS Tree",                                                   ("GS Token",     0x11,  0x02, None,                        'Gold Skulltula Token',                  ("Zora's River", "Skulltulas",))),
    ("ZR GS Ladder",                                                 ("GS Token",     0x11,  0x01, None,                        'Gold Skulltula Token',                  ("Zora's River", "Skulltulas",))),
    ("ZR GS Near Raised Grottos",                                    ("GS Token",     0x11,  0x10, None,                        'Gold Skulltula Token',                  ("Zora's River", "Skulltulas",))),
    ("ZR GS Above Bridge",                                           ("GS Token",     0x11,  0x08, None,                        'Gold Skulltula Token',                  ("Zora's River", "Skulltulas",))),

    # Zora's Domain
    ("ZD Diving Minigame",                                           ("NPC",          0x58,  0x37, None,                        'Progressive Scale',                     ("Zora's Domain", "Minigames",))),
    ("ZD Chest",                                                     ("Chest",        0x58,  0x00, None,                        'Piece of Heart',                        ("Zora's Domain", ))),
    ("ZD King Zora Thawed",                                          ("NPC",          0x58,  0x2D, None,                        'Zora Tunic',                            ("Zora's Domain",))),
    ("ZD GS Frozen Waterfall",                                       ("GS Token",     0x11,  0x40, None,                        'Gold Skulltula Token',                  ("Zora's Domain", "Skulltulas",))),
    ("ZD Shop Item 1",                                               ("Shop",         0x2F,  0x30, (shop_address(7, 0), None),  'Buy Zora Tunic',                        ("Zora's Domain", "Shops",))),
    ("ZD Shop Item 2",                                               ("Shop",         0x2F,  0x31, (shop_address(7, 1), None),  'Buy Arrows (10)',                       ("Zora's Domain", "Shops",))),
    ("ZD Shop Item 3",                                               ("Shop",         0x2F,  0x32, (shop_address(7, 2), None),  'Buy Heart',                             ("Zora's Domain", "Shops",))),
    ("ZD Shop Item 4",                                               ("Shop",         0x2F,  0x33, (shop_address(7, 3), None),  'Buy Arrows (30)',                       ("Zora's Domain", "Shops",))),
    ("ZD Shop Item 5",                                               ("Shop",         0x2F,  0x34, (shop_address(7, 4), None),  'Buy Deku Nut (5)',                      ("Zora's Domain", "Shops",))),
    ("ZD Shop Item 6",                                               ("Shop",         0x2F,  0x35, (shop_address(7, 5), None),  'Buy Arrows (50)',                       ("Zora's Domain", "Shops",))),
    ("ZD Shop Item 7",                                               ("Shop",         0x2F,  0x36, (shop_address(7, 6), None),  'Buy Fish',                              ("Zora's Domain", "Shops",))),
    ("ZD Shop Item 8",                                               ("Shop",         0x2F,  0x37, (shop_address(7, 7), None),  'Buy Red Potion [50]',                   ("Zora's Domain", "Shops",))),

    # Zora's Fountain
    ("ZF Great Fairy Reward",                                        ("Cutscene",     0xFF,  0x10, None,                        'Farores Wind',                          ("Zora's Fountain", "Fairies",))),
    ("ZF Iceberg Freestanding PoH",                                  ("Collectable",  0x59,  0x01, None,                        'Piece of Heart',                        ("Zora's Fountain",))),
    ("ZF Bottom Freestanding PoH",                                   ("Collectable",  0x59,  0x14, None,                        'Piece of Heart',                        ("Zora's Fountain",))),
    ("ZF GS Above the Log",                                          ("GS Token",     0x11,  0x04, None,                        'Gold Skulltula Token',                  ("Zora's Fountain", "Skulltulas",))),
    ("ZF GS Tree",                                                   ("GS Token",     0x11,  0x80, None,                        'Gold Skulltula Token',                  ("Zora's Fountain", "Skulltulas",))),
    ("ZF GS Hidden Cave",                                            ("GS Token",     0x11,  0x20, None,                        'Gold Skulltula Token',                  ("Zora's Fountain", "Skulltulas",))),

    # Lake Hylia
    ("LH Underwater Item",                                           ("NPC",          0x57,  0x15, None,                        'Rutos Letter',                          ("Lake Hylia",))),
    ("LH Child Fishing",                                             ("NPC",          0x49,  0x3E, None,                        'Piece of Heart',                        ("Lake Hylia", "Minigames",))),
    ("LH Adult Fishing",                                             ("NPC",          0x49,  0x38, None,                        'Progressive Scale',                     ("Lake Hylia", "Minigames",))),
    ("LH Lab Dive",                                                  ("NPC",          0x38,  0x3E, None,                        'Piece of Heart',                        ("Lake Hylia",))),
    ("LH Freestanding PoH",                                          ("Collectable",  0x57,  0x1E, None,                        'Piece of Heart',                        ("Lake Hylia",))),
    ("LH Sun",                                                       ("NPC",          0x57,  0x58, None,                        'Fire Arrows',                           ("Lake Hylia",))),
    ("LH Deku Scrub Grotto Left",                                    ("GrottoNPC",    0xEF,  0x30, None,                        'Buy Deku Nut (5)',                      ("Lake Hylia", "Deku Scrub", "Grottos"))),
    ("LH Deku Scrub Grotto Center",                                  ("GrottoNPC",    0xEF,  0x33, None,                        'Buy Deku Seeds (30)',                   ("Lake Hylia", "Deku Scrub", "Grottos"))),
    ("LH Deku Scrub Grotto Right",                                   ("GrottoNPC",    0xEF,  0x37, None,                        'Buy Bombs (5) [35]',                    ("Lake Hylia", "Deku Scrub", "Grottos"))),
    ("LH GS Bean Patch",                                             ("GS Token",     0x12,  0x01, None,                        'Gold Skulltula Token',                  ("Lake Hylia", "Skulltulas",))),
    ("LH GS Lab Wall",                                               ("GS Token",     0x12,  0x04, None,                        'Gold Skulltula Token',                  ("Lake Hylia", "Skulltulas",))),
    ("LH GS Small Island",                                           ("GS Token",     0x12,  0x02, None,                        'Gold Skulltula Token',                  ("Lake Hylia", "Skulltulas",))),
    ("LH GS Lab Crate",                                              ("GS Token",     0x12,  0x08, None,                        'Gold Skulltula Token',                  ("Lake Hylia", "Skulltulas",))),
    ("LH GS Tree",                                                   ("GS Token",     0x12,  0x10, None,                        'Gold Skulltula Token',                  ("Lake Hylia", "Skulltulas",))),

    # Gerudo Valley
    ("GV Crate Freestanding PoH",                                    ("Collectable",  0x5A,  0x02, None,                        'Piece of Heart',                        ("Gerudo Valley", "Gerudo",))),
    ("GV Waterfall Freestanding PoH",                                ("Collectable",  0x5A,  0x01, None,                        'Piece of Heart',                        ("Gerudo Valley", "Gerudo",))),
    ("GV Chest",                                                     ("Chest",        0x5A,  0x00, None,                        'Rupees (50)',                           ("Gerudo Valley", "Gerudo",))),
    ("GV Deku Scrub Grotto Front",                                   ("GrottoNPC",    0xF0,  0x3A, None,                        'Buy Green Potion',                      ("Gerudo Valley", "Gerudo", "Deku Scrub", "Grottos"))),
    ("GV Deku Scrub Grotto Rear",                                    ("GrottoNPC",    0xF0,  0x39, None,                        'Buy Red Potion [30]',                   ("Gerudo Valley", "Gerudo", "Deku Scrub", "Grottos"))),
    ("GV Cow",                                                       ("NPC",          0x5A,  0x15, None,                        'Milk',                                  ("Gerudo Valley", "Gerudo", "Cow"))),
    ("GV GS Small Bridge",                                           ("GS Token",     0x13,  0x02, None,                        'Gold Skulltula Token',                  ("Gerudo Valley", "Skulltulas",))),
    ("GV GS Bean Patch",                                             ("GS Token",     0x13,  0x01, None,                        'Gold Skulltula Token',                  ("Gerudo Valley", "Skulltulas",))),
    ("GV GS Behind Tent",                                            ("GS Token",     0x13,  0x08, None,                        'Gold Skulltula Token',                  ("Gerudo Valley", "Skulltulas",))),
    ("GV GS Pillar",                                                 ("GS Token",     0x13,  0x04, None,                        'Gold Skulltula Token',                  ("Gerudo Valley", "Skulltulas",))),

    # Gerudo's Fortress
    ("GF North F1 Carpenter",                                        ("Collectable",  0x0C,  0x0C, None,                        'Small Key (Gerudo Fortress)',           ("Gerudo's Fortress", "Gerudo",))),
    ("GF North F2 Carpenter",                                        ("Collectable",  0x0C,  0x0A, None,                        'Small Key (Gerudo Fortress)',           ("Gerudo's Fortress", "Gerudo",))),
    ("GF South F1 Carpenter",                                        ("Collectable",  0x0C,  0x0E, None,                        'Small Key (Gerudo Fortress)',           ("Gerudo's Fortress", "Gerudo",))),
    ("GF South F2 Carpenter",                                        ("Collectable",  0x0C,  0x0F, None,                        'Small Key (Gerudo Fortress)',           ("Gerudo's Fortress", "Gerudo",))),
    ("GF Gerudo Membership Card",                                    ("NPC",          0x0C,  0x3A, None,                        'Gerudo Membership Card',                ("Gerudo's Fortress", "Gerudo",))),
    ("GF Chest",                                                     ("Chest",        0x5D,  0x00, None,                        'Piece of Heart',                        ("Gerudo's Fortress", "Gerudo",))),
    ("GF HBA 1000 Points",                                           ("NPC",          0x5D,  0x3E, None,                        'Piece of Heart',                        ("Gerudo's Fortress", "Gerudo", "Minigames"))),
    ("GF HBA 1500 Points",                                           ("NPC",          0x5D,  0x30, None,                        'Bow',                                   ("Gerudo's Fortress", "Gerudo", "Minigames"))),
    ("GF GS Top Floor",                                              ("GS Token",     0x14,  0x02, None,                        'Gold Skulltula Token',                  ("Gerudo's Fortress", "Skulltulas",))),
    ("GF GS Archery Range",                                          ("GS Token",     0x14,  0x01, None,                        'Gold Skulltula Token',                  ("Gerudo's Fortress", "Skulltulas",))),

    # Wasteland
    ("Wasteland Bombchu Salesman",                                   ("NPC",          0x5E,  0x03, None,                        'Bombchus (10)',                         ("Haunted Wasteland",))),
    ("Wasteland Chest",                                              ("Chest",        0x5E,  0x00, None,                        'Rupees (50)',                           ("Haunted Wasteland",))),
    ("Wasteland GS",                                                 ("GS Token",     0x15,  0x02, None,                        'Gold Skulltula Token',                  ("Haunted Wasteland", "Skulltulas",))),

    # Colossus
    ("Colossus Great Fairy Reward",                                  ("Cutscene",     0xFF,  0x12, None,                        'Nayrus Love',                           ("Desert Colossus", "Fairies",))),
    ("Colossus Freestanding PoH",                                    ("Collectable",  0x5C,  0x0D, None,                        'Piece of Heart',                        ("Desert Colossus",))),
    ("Colossus Deku Scrub Grotto Front",                             ("GrottoNPC",    0xFD,  0x3A, None,                        'Buy Green Potion',                      ("Desert Colossus", "Deku Scrub", "Grottos"))),
    ("Colossus Deku Scrub Grotto Rear",                              ("GrottoNPC",    0xFD,  0x39, None,                        'Buy Red Potion [30]',                   ("Desert Colossus", "Deku Scrub", "Grottos"))),
    ("Colossus GS Bean Patch",                                       ("GS Token",     0x15,  0x01, None,                        'Gold Skulltula Token',                  ("Desert Colossus", "Skulltulas",))),
    ("Colossus GS Tree",                                             ("GS Token",     0x15,  0x08, None,                        'Gold Skulltula Token',                  ("Desert Colossus", "Skulltulas",))),
    ("Colossus GS Hill",                                             ("GS Token",     0x15,  0x04, None,                        'Gold Skulltula Token',                  ("Desert Colossus", "Skulltulas",))),

    # Outside Ganon's Castle
    ("OGC Great Fairy Reward",                                       ("Cutscene",     0xFF,  0x15, None,                        'Double Defense',                        ("outside Ganon's Castle", "Market", "Fairies"))),
    ("OGC GS",                                                       ("GS Token",     0x0E,  0x01, None,                        'Gold Skulltula Token',                  ("outside Ganon's Castle", "Skulltulas",))),

    ## Dungeons
    # Deku Tree vanilla
    ("Deku Tree Map Chest",                                          ("Chest",        0x00,  0x03, None,                        'Map (Deku Tree)',                       ("Deku Tree", "Vanilla",))),
    ("Deku Tree Slingshot Room Side Chest",                          ("Chest",        0x00,  0x05, None,                        'Recovery Heart',                        ("Deku Tree", "Vanilla",))),
    ("Deku Tree Slingshot Chest",                                    ("Chest",        0x00,  0x01, None,                        'Slingshot',                             ("Deku Tree", "Vanilla",))),
    ("Deku Tree Compass Chest",                                      ("Chest",        0x00,  0x02, None,                        'Compass (Deku Tree)',                   ("Deku Tree", "Vanilla",))),
    ("Deku Tree Compass Room Side Chest",                            ("Chest",        0x00,  0x06, None,                        'Recovery Heart',                        ("Deku Tree", "Vanilla",))),
    ("Deku Tree Basement Chest",                                     ("Chest",        0x00,  0x04, None,                        'Recovery Heart',                        ("Deku Tree", "Vanilla",))),
    ("Deku Tree GS Compass Room",                                    ("GS Token",     0x00,  0x08, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Vanilla", "Skulltulas",))),
    ("Deku Tree GS Basement Vines",                                  ("GS Token",     0x00,  0x04, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Vanilla", "Skulltulas",))),
    ("Deku Tree GS Basement Gate",                                   ("GS Token",     0x00,  0x02, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Vanilla", "Skulltulas",))),
    ("Deku Tree GS Basement Back Room",                              ("GS Token",     0x00,  0x01, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Vanilla", "Skulltulas",))),
    # Deku Tree MQ
    ("Deku Tree MQ Map Chest",                                       ("Chest",        0x00,  0x03, None,                        'Map (Deku Tree)',                       ("Deku Tree", "Master Quest",))),
    ("Deku Tree MQ Slingshot Chest",                                 ("Chest",        0x00,  0x06, None,                        'Slingshot',                             ("Deku Tree", "Master Quest",))),
    ("Deku Tree MQ Slingshot Room Back Chest",                       ("Chest",        0x00,  0x02, None,                        'Deku Shield',                           ("Deku Tree", "Master Quest",))),
    ("Deku Tree MQ Compass Chest",                                   ("Chest",        0x00,  0x01, None,                        'Compass (Deku Tree)',                   ("Deku Tree", "Master Quest",))),
    ("Deku Tree MQ Basement Chest",                                  ("Chest",        0x00,  0x04, None,                        'Deku Shield',                           ("Deku Tree", "Master Quest",))),
    ("Deku Tree MQ Before Spinning Log Chest",                       ("Chest",        0x00,  0x05, None,                        'Recovery Heart',                        ("Deku Tree", "Master Quest",))),
    ("Deku Tree MQ After Spinning Log Chest",                        ("Chest",        0x00,  0x00, None,                        'Rupees (50)',                           ("Deku Tree", "Master Quest",))),
    ("Deku Tree MQ Deku Scrub",                                      ("NPC",          0x00,  0x34, None,                        'Buy Deku Shield',                       ("Deku Tree", "Master Quest", "Deku Scrub",))),
    ("Deku Tree MQ GS Lobby",                                        ("GS Token",     0x00,  0x02, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Master Quest", "Skulltulas",))),
    ("Deku Tree MQ GS Compass Room",                                 ("GS Token",     0x00,  0x08, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Master Quest", "Skulltulas",))),
    ("Deku Tree MQ GS Basement Graves Room",                         ("GS Token",     0x00,  0x04, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Master Quest", "Skulltulas",))),
    ("Deku Tree MQ GS Basement Back Room",                           ("GS Token",     0x00,  0x01, None,                        'Gold Skulltula Token',                  ("Deku Tree", "Master Quest", "Skulltulas",))),
    # Deku Tree shared
    ("Deku Tree Queen Gohma Heart",                                  ("BossHeart",    0x11,  0x4F, None,                        'Heart Container',                       ("Deku Tree", "Vanilla", "Master Quest",))),

    # Dodongo's Cavern vanilla
    ("Dodongos Cavern Map Chest",                                    ("Chest",        0x01,  0x08, None,                        'Map (Dodongos Cavern)',                 ("Dodongo's Cavern", "Vanilla",))),
    ("Dodongos Cavern Compass Chest",                                ("Chest",        0x01,  0x05, None,                        'Compass (Dodongos Cavern)',             ("Dodongo's Cavern", "Vanilla",))),
    ("Dodongos Cavern Bomb Flower Platform Chest",                   ("Chest",        0x01,  0x06, None,                        'Rupees (20)',                           ("Dodongo's Cavern", "Vanilla",))),
    ("Dodongos Cavern Bomb Bag Chest",                               ("Chest",        0x01,  0x04, None,                        'Bomb Bag',                              ("Dodongo's Cavern", "Vanilla",))),
    ("Dodongos Cavern End of Bridge Chest",                          ("Chest",        0x01,  0x0A, None,                        'Deku Shield',                           ("Dodongo's Cavern", "Vanilla",))),
    ("Dodongos Cavern Deku Scrub Side Room Near Dodongos",           ("NPC",          0x01,  0x31, None,                        'Buy Deku Stick (1)',                    ("Dodongo's Cavern", "Vanilla", "Deku Scrub",))),
    ("Dodongos Cavern Deku Scrub Lobby",                             ("NPC",          0x01,  0x34, None,                        'Buy Deku Shield',                       ("Dodongo's Cavern", "Vanilla", "Deku Scrub",))),
    ("Dodongos Cavern Deku Scrub Near Bomb Bag Left",                ("NPC",          0x01,  0x30, None,                        'Buy Deku Nut (5)',                      ("Dodongo's Cavern", "Vanilla", "Deku Scrub",))),
    ("Dodongos Cavern Deku Scrub Near Bomb Bag Right",               ("NPC",          0x01,  0x33, None,                        'Buy Deku Seeds (30)',                   ("Dodongo's Cavern", "Vanilla", "Deku Scrub",))),
    ("Dodongos Cavern GS Side Room Near Lower Lizalfos",             ("GS Token",     0x01,  0x10, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Vanilla", "Skulltulas",))),
    ("Dodongos Cavern GS Scarecrow",                                 ("GS Token",     0x01,  0x02, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Vanilla", "Skulltulas",))),
    ("Dodongos Cavern GS Alcove Above Stairs",                       ("GS Token",     0x01,  0x04, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Vanilla", "Skulltulas",))),
    ("Dodongos Cavern GS Vines Above Stairs",                        ("GS Token",     0x01,  0x01, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Vanilla", "Skulltulas",))),
    ("Dodongos Cavern GS Back Room",                                 ("GS Token",     0x01,  0x08, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Vanilla", "Skulltulas",))),
    # Dodongo's Cavern MQ
    ("Dodongos Cavern MQ Map Chest",                                 ("Chest",        0x01,  0x00, None,                        'Map (Dodongos Cavern)',                 ("Dodongo's Cavern", "Master Quest",))),
    ("Dodongos Cavern MQ Bomb Bag Chest",                            ("Chest",        0x01,  0x04, None,                        'Bomb Bag',                              ("Dodongo's Cavern", "Master Quest",))),
    ("Dodongos Cavern MQ Torch Puzzle Room Chest",                   ("Chest",        0x01,  0x03, None,                        'Rupees (5)',                            ("Dodongo's Cavern", "Master Quest",))),
    ("Dodongos Cavern MQ Larvae Room Chest",                         ("Chest",        0x01,  0x02, None,                        'Deku Shield',                           ("Dodongo's Cavern", "Master Quest",))),
    ("Dodongos Cavern MQ Compass Chest",                             ("Chest",        0x01,  0x05, None,                        'Compass (Dodongos Cavern)',             ("Dodongo's Cavern", "Master Quest",))),
    ("Dodongos Cavern MQ Under Grave Chest",                         ("Chest",        0x01,  0x01, None,                        'Hylian Shield',                         ("Dodongo's Cavern", "Master Quest",))),
    ("Dodongos Cavern MQ Deku Scrub Lobby Front",                    ("NPC",          0x01,  0x33, None,                        'Buy Deku Seeds (30)',                   ("Dodongo's Cavern", "Master Quest", "Deku Scrub",))),
    ("Dodongos Cavern MQ Deku Scrub Lobby Rear",                     ("NPC",          0x01,  0x31, None,                        'Buy Deku Stick (1)',                    ("Dodongo's Cavern", "Master Quest", "Deku Scrub",))),
    ("Dodongos Cavern MQ Deku Scrub Side Room Near Lower Lizalfos",  ("NPC",          0x01,  0x39, None,                        'Buy Red Potion [30]',                   ("Dodongo's Cavern", "Master Quest", "Deku Scrub",))),
    ("Dodongos Cavern MQ Deku Scrub Staircase",                      ("NPC",          0x01,  0x34, None,                        'Buy Deku Shield',                       ("Dodongo's Cavern", "Master Quest", "Deku Scrub",))),
    ("Dodongos Cavern MQ GS Scrub Room",                             ("GS Token",     0x01,  0x02, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Master Quest", "Skulltulas",))),
    ("Dodongos Cavern MQ GS Larvae Room",                            ("GS Token",     0x01,  0x10, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Master Quest", "Skulltulas",))),
    ("Dodongos Cavern MQ GS Lizalfos Room",                          ("GS Token",     0x01,  0x04, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Master Quest", "Skulltulas",))),
    ("Dodongos Cavern MQ GS Song of Time Block Room",                ("GS Token",     0x01,  0x08, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Master Quest", "Skulltulas",))),
    ("Dodongos Cavern MQ GS Back Area",                              ("GS Token",     0x01,  0x01, None,                        'Gold Skulltula Token',                  ("Dodongo's Cavern", "Master Quest", "Skulltulas",))),
    # Dodongo's Cavern shared
    ("Dodongos Cavern Boss Room Chest",                              ("Chest",        0x12,  0x00, None,                        'Bombs (5)',                             ("Dodongo's Cavern", "Vanilla", "Master Quest",))),
    ("Dodongos Cavern King Dodongo Heart",                           ("BossHeart",    0x12,  0x4F, None,                        'Heart Container',                       ("Dodongo's Cavern", "Vanilla", "Master Quest",))),

    # Jabu Jabu's Belly vanilla
    ("Jabu Jabus Belly Boomerang Chest",                             ("Chest",        0x02,  0x01, None,                        'Boomerang',                             ("Jabu Jabu's Belly", "Vanilla",))),
    ("Jabu Jabus Belly Map Chest",                                   ("Chest",        0x02,  0x02, None,                        'Map (Jabu Jabus Belly)',                ("Jabu Jabu's Belly", "Vanilla",))),
    ("Jabu Jabus Belly Compass Chest",                               ("Chest",        0x02,  0x04, None,                        'Compass (Jabu Jabus Belly)',            ("Jabu Jabu's Belly", "Vanilla",))),
    ("Jabu Jabus Belly Deku Scrub",                                  ("NPC",          0x02,  0x30, None,                        'Buy Deku Nut (5)',                      ("Jabu Jabu's Belly", "Vanilla", "Deku Scrub",))),
    ("Jabu Jabus Belly GS Water Switch Room",                        ("GS Token",     0x02,  0x08, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Vanilla", "Skulltulas",))),
    ("Jabu Jabus Belly GS Lobby Basement Lower",                     ("GS Token",     0x02,  0x01, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Vanilla", "Skulltulas",))),
    ("Jabu Jabus Belly GS Lobby Basement Upper",                     ("GS Token",     0x02,  0x02, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Vanilla", "Skulltulas",))),
    ("Jabu Jabus Belly GS Near Boss",                                ("GS Token",     0x02,  0x04, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Vanilla", "Skulltulas",))),
    # Jabu Jabu's Belly MQ
    ("Jabu Jabus Belly MQ Map Chest",                                ("Chest",        0x02,  0x03, None,                        'Map (Jabu Jabus Belly)',                ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ First Room Side Chest",                    ("Chest",        0x02,  0x05, None,                        'Deku Nuts (5)',                         ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Second Room Lower Chest",                  ("Chest",        0x02,  0x02, None,                        'Deku Nuts (5)',                         ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Compass Chest",                            ("Chest",        0x02,  0x00, None,                        'Compass (Jabu Jabus Belly)',            ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Basement Near Switches Chest",             ("Chest",        0x02,  0x08, None,                        'Deku Nuts (5)',                         ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Basement Near Vines Chest",                ("Chest",        0x02,  0x04, None,                        'Bombchus (10)',                         ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Boomerang Room Small Chest",               ("Chest",        0x02,  0x01, None,                        'Deku Nuts (5)',                         ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Boomerang Chest",                          ("Chest",        0x02,  0x06, None,                        'Boomerang',                             ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Falling Like Like Room Chest",             ("Chest",        0x02,  0x09, None,                        'Deku Stick (1)',                        ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Second Room Upper Chest",                  ("Chest",        0x02,  0x07, None,                        'Recovery Heart',                        ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Near Boss Chest",                          ("Chest",        0x02,  0x0A, None,                        'Deku Shield',                           ("Jabu Jabu's Belly", "Master Quest",))),
    ("Jabu Jabus Belly MQ Cow",                                      ("NPC",          0x02,  0x15, None,                        'Milk',                                  ("Jabu Jabu's Belly", "Master Quest", "Cow",))),
    ("Jabu Jabus Belly MQ GS Boomerang Chest Room",                  ("GS Token",     0x02,  0x01, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Master Quest", "Skulltulas",))),
    ("Jabu Jabus Belly MQ GS Tailpasaran Room",                      ("GS Token",     0x02,  0x04, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Master Quest", "Skulltulas",))),
    ("Jabu Jabus Belly MQ GS Invisible Enemies Room",                ("GS Token",     0x02,  0x08, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Master Quest", "Skulltulas",))),
    ("Jabu Jabus Belly MQ GS Near Boss",                             ("GS Token",     0x02,  0x02, None,                        'Gold Skulltula Token',                  ("Jabu Jabu's Belly", "Master Quest", "Skulltulas",))),
    # Jabu Jabu's Belly shared
    ("Jabu Jabus Belly Barinade Heart",                              ("BossHeart",    0x13,  0x4F, None,                        'Heart Container',                       ("Jabu Jabu's Belly", "Vanilla", "Master Quest",))),

    # Bottom of the Well vanilla
    ("Bottom of the Well Front Left Fake Wall Chest",                ("Chest",        0x08,  0x08, None,                        'Small Key (Bottom of the Well)',        ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Front Center Bombable Chest",               ("Chest",        0x08,  0x02, None,                        'Bombchus (10)',                         ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Back Left Bombable Chest",                  ("Chest",        0x08,  0x04, None,                        'Deku Nuts (10)',                        ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Underwater Left Chest",                     ("Chest",        0x08,  0x09, None,                        'Recovery Heart',                        ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Freestanding Key",                          ("Collectable",  0x08,  0x01, None,                        'Small Key (Bottom of the Well)',        ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Compass Chest",                             ("Chest",        0x08,  0x01, None,                        'Compass (Bottom of the Well)',          ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Center Skulltula Chest",                    ("Chest",        0x08,  0x0E, None,                        'Deku Nuts (5)',                         ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Right Bottom Fake Wall Chest",              ("Chest",        0x08,  0x05, None,                        'Small Key (Bottom of the Well)',        ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Fire Keese Chest",                          ("Chest",        0x08,  0x0A, None,                        'Deku Shield',                           ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Like Like Chest",                           ("Chest",        0x08,  0x0C, None,                        'Hylian Shield',                         ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Map Chest",                                 ("Chest",        0x08,  0x07, None,                        'Map (Bottom of the Well)',              ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Underwater Front Chest",                    ("Chest",        0x08,  0x10, None,                        'Bombs (10)',                            ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Invisible Chest",                           ("Chest",        0x08,  0x14, None,                        'Rupees (200)',                          ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well Lens of Truth Chest",                       ("Chest",        0x08,  0x03, None,                        'Lens of Truth',                         ("Bottom of the Well", "Vanilla",))),
    ("Bottom of the Well GS West Inner Room",                        ("GS Token",     0x08,  0x04, None,                        'Gold Skulltula Token',                  ("Bottom of the Well", "Vanilla", "Skulltulas",))),
    ("Bottom of the Well GS East Inner Room",                        ("GS Token",     0x08,  0x02, None,                        'Gold Skulltula Token',                  ("Bottom of the Well", "Vanilla", "Skulltulas",))),
    ("Bottom of the Well GS Like Like Cage",                         ("GS Token",     0x08,  0x01, None,                        'Gold Skulltula Token',                  ("Bottom of the Well", "Vanilla", "Skulltulas",))),
    # Bottom of the Well MQ
    ("Bottom of the Well MQ Map Chest",                              ("Chest",        0x08,  0x03, None,                        'Map (Bottom of the Well)',              ("Bottom of the Well", "Master Quest",))),
    ("Bottom of the Well MQ East Inner Room Freestanding Key",       ("Collectable",  0x08,  0x01, None,                        'Small Key (Bottom of the Well)',        ("Bottom of the Well", "Master Quest",))),
    ("Bottom of the Well MQ Compass Chest",                          ("Chest",        0x08,  0x02, None,                        'Compass (Bottom of the Well)',          ("Bottom of the Well", "Master Quest",))),
    ("Bottom of the Well MQ Dead Hand Freestanding Key",             ("Collectable",  0x08,  0x02, None,                        'Small Key (Bottom of the Well)',        ("Bottom of the Well", "Master Quest",))),
    ("Bottom of the Well MQ Lens of Truth Chest",                    ("Chest",        0x08,  0x01, None,                        'Lens of Truth',                         ("Bottom of the Well", "Master Quest",))),
    ("Bottom of the Well MQ GS Coffin Room",                         ("GS Token",     0x08,  0x04, None,                        'Gold Skulltula Token',                  ("Bottom of the Well", "Master Quest", "Skulltulas",))),
    ("Bottom of the Well MQ GS West Inner Room",                     ("GS Token",     0x08,  0x02, None,                        'Gold Skulltula Token',                  ("Bottom of the Well", "Master Quest", "Skulltulas",))),
    ("Bottom of the Well MQ GS Basement",                            ("GS Token",     0x08,  0x01, None,                        'Gold Skulltula Token',                  ("Bottom of the Well", "Master Quest", "Skulltulas",))),

    # Forest Temple vanilla
    ("Forest Temple First Room Chest",                               ("Chest",        0x03,  0x03, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Vanilla",))),
    ("Forest Temple First Stalfos Chest",                            ("Chest",        0x03,  0x00, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Vanilla",))),
    ("Forest Temple Raised Island Courtyard Chest",                  ("Chest",        0x03,  0x05, None,                        'Recovery Heart',                        ("Forest Temple", "Vanilla",))),
    ("Forest Temple Map Chest",                                      ("Chest",        0x03,  0x01, None,                        'Map (Forest Temple)',                   ("Forest Temple", "Vanilla",))),
    ("Forest Temple Well Chest",                                     ("Chest",        0x03,  0x09, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Vanilla",))),
    ("Forest Temple Eye Switch Chest",                               ("Chest",        0x03,  0x04, None,                        'Arrows (30)',                           ("Forest Temple", "Vanilla",))),
    ("Forest Temple Boss Key Chest",                                 ("Chest",        0x03,  0x0E, None,                        'Boss Key (Forest Temple)',              ("Forest Temple", "Vanilla",))),
    ("Forest Temple Floormaster Chest",                              ("Chest",        0x03,  0x02, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Vanilla",))),
    ("Forest Temple Red Poe Chest",                                  ("Chest",        0x03,  0x0D, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Vanilla",))),
    ("Forest Temple Bow Chest",                                      ("Chest",        0x03,  0x0C, None,                        'Bow',                                   ("Forest Temple", "Vanilla",))),
    ("Forest Temple Blue Poe Chest",                                 ("Chest",        0x03,  0x0F, None,                        'Compass (Forest Temple)',               ("Forest Temple", "Vanilla",))),
    ("Forest Temple Falling Ceiling Room Chest",                     ("Chest",        0x03,  0x07, None,                        'Arrows (10)',                           ("Forest Temple", "Vanilla",))),
    ("Forest Temple Basement Chest",                                 ("Chest",        0x03,  0x0B, None,                        'Arrows (5)',                            ("Forest Temple", "Vanilla",))),
    ("Forest Temple GS First Room",                                  ("GS Token",     0x03,  0x02, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Vanilla", "Skulltulas",))),
    ("Forest Temple GS Lobby",                                       ("GS Token",     0x03,  0x08, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Vanilla", "Skulltulas",))),
    ("Forest Temple GS Raised Island Courtyard",                     ("GS Token",     0x03,  0x01, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Vanilla", "Skulltulas",))),
    ("Forest Temple GS Level Island Courtyard",                      ("GS Token",     0x03,  0x04, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Vanilla", "Skulltulas",))),
    ("Forest Temple GS Basement",                                    ("GS Token",     0x03,  0x10, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Vanilla", "Skulltulas",))),
    # Forest Temple MQ
    ("Forest Temple MQ First Room Chest",                            ("Chest",        0x03,  0x03, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Wolfos Chest",                                ("Chest",        0x03,  0x00, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Well Chest",                                  ("Chest",        0x03,  0x09, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Raised Island Courtyard Lower Chest",         ("Chest",        0x03,  0x01, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Raised Island Courtyard Upper Chest",         ("Chest",        0x03,  0x05, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Boss Key Chest",                              ("Chest",        0x03,  0x0E, None,                        'Boss Key (Forest Temple)',              ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Redead Chest",                                ("Chest",        0x03,  0x02, None,                        'Small Key (Forest Temple)',             ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Map Chest",                                   ("Chest",        0x03,  0x0D, None,                        'Map (Forest Temple)',                   ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Bow Chest",                                   ("Chest",        0x03,  0x0C, None,                        'Bow',                                   ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Compass Chest",                               ("Chest",        0x03,  0x0F, None,                        'Compass (Forest Temple)',               ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Falling Ceiling Room Chest",                  ("Chest",        0x03,  0x06, None,                        'Arrows (5)',                            ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ Basement Chest",                              ("Chest",        0x03,  0x0B, None,                        'Arrows (5)',                            ("Forest Temple", "Master Quest",))),
    ("Forest Temple MQ GS First Hallway",                            ("GS Token",     0x03,  0x02, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Master Quest", "Skulltulas",))),
    ("Forest Temple MQ GS Raised Island Courtyard",                  ("GS Token",     0x03,  0x01, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Master Quest", "Skulltulas",))),
    ("Forest Temple MQ GS Level Island Courtyard",                   ("GS Token",     0x03,  0x04, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Master Quest", "Skulltulas",))),
    ("Forest Temple MQ GS Well",                                     ("GS Token",     0x03,  0x08, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Master Quest", "Skulltulas",))),
    ("Forest Temple MQ GS Block Push Room",                          ("GS Token",     0x03,  0x10, None,                        'Gold Skulltula Token',                  ("Forest Temple", "Master Quest", "Skulltulas",))),
    # Forest Temple shared
    ("Forest Temple Phantom Ganon Heart",                            ("BossHeart",    0x14,  0x4F, None,                        'Heart Container',                       ("Forest Temple", "Vanilla", "Master Quest",))),

    # Fire Temple vanilla
    ("Fire Temple Near Boss Chest",                                  ("Chest",        0x04,  0x01, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple Flare Dancer Chest",                               ("Chest",        0x04,  0x00, None,                        'Bombs (10)',                            ("Fire Temple", "Vanilla",))),
    ("Fire Temple Boss Key Chest",                                   ("Chest",        0x04,  0x0C, None,                        'Boss Key (Fire Temple)',                ("Fire Temple", "Vanilla",))),
    ("Fire Temple Big Lava Room Lower Open Door Chest",              ("Chest",        0x04,  0x04, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple Big Lava Room Blocked Door Chest",                 ("Chest",        0x04,  0x02, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple Boulder Maze Lower Chest",                         ("Chest",        0x04,  0x03, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple Boulder Maze Side Room Chest",                     ("Chest",        0x04,  0x08, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple Map Chest",                                        ("Chest",        0x04,  0x0A, None,                        'Map (Fire Temple)',                     ("Fire Temple", "Vanilla",))),
    ("Fire Temple Boulder Maze Shortcut Chest",                      ("Chest",        0x04,  0x0B, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple Boulder Maze Upper Chest",                         ("Chest",        0x04,  0x06, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple Scarecrow Chest",                                  ("Chest",        0x04,  0x0D, None,                        'Rupees (200)',                          ("Fire Temple", "Vanilla",))),
    ("Fire Temple Compass Chest",                                    ("Chest",        0x04,  0x07, None,                        'Compass (Fire Temple)',                 ("Fire Temple", "Vanilla",))),
    ("Fire Temple Megaton Hammer Chest",                             ("Chest",        0x04,  0x05, None,                        'Megaton Hammer',                        ("Fire Temple", "Vanilla",))),
    ("Fire Temple Highest Goron Chest",                              ("Chest",        0x04,  0x09, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Vanilla",))),
    ("Fire Temple GS Boss Key Loop",                                 ("GS Token",     0x04,  0x02, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Vanilla", "Skulltulas",))),
    ("Fire Temple GS Song of Time Room",                             ("GS Token",     0x04,  0x01, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Vanilla", "Skulltulas",))),
    ("Fire Temple GS Boulder Maze",                                  ("GS Token",     0x04,  0x04, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Vanilla", "Skulltulas",))),
    ("Fire Temple GS Scarecrow Climb",                               ("GS Token",     0x04,  0x10, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Vanilla", "Skulltulas",))),
    ("Fire Temple GS Scarecrow Top",                                 ("GS Token",     0x04,  0x08, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Vanilla", "Skulltulas",))),
    # Fire Temple MQ
    ("Fire Temple MQ Map Room Side Chest",                           ("Chest",        0x04,  0x02, None,                        'Hylian Shield',                         ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Megaton Hammer Chest",                          ("Chest",        0x04,  0x00, None,                        'Megaton Hammer',                        ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Map Chest",                                     ("Chest",        0x04,  0x0C, None,                        'Map (Fire Temple)',                     ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Near Boss Chest",                               ("Chest",        0x04,  0x07, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Big Lava Room Blocked Door Chest",              ("Chest",        0x04,  0x01, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Boss Key Chest",                                ("Chest",        0x04,  0x04, None,                        'Boss Key (Fire Temple)',                ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Lizalfos Maze Side Room Chest",                 ("Chest",        0x04,  0x08, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Compass Chest",                                 ("Chest",        0x04,  0x0B, None,                        'Compass (Fire Temple)',                 ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Lizalfos Maze Upper Chest",                     ("Chest",        0x04,  0x06, None,                        'Bombs (10)',                            ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Lizalfos Maze Lower Chest",                     ("Chest",        0x04,  0x03, None,                        'Bombs (10)',                            ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Freestanding Key",                              ("Collectable",  0x04,  0x1C, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ Chest On Fire",                                 ("Chest",        0x04,  0x05, None,                        'Small Key (Fire Temple)',               ("Fire Temple", "Master Quest",))),
    ("Fire Temple MQ GS Big Lava Room Open Door",                    ("GS Token",     0x04,  0x01, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Master Quest", "Skulltulas",))),
    ("Fire Temple MQ GS Skull On Fire",                              ("GS Token",     0x04,  0x04, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Master Quest", "Skulltulas",))),
    ("Fire Temple MQ GS Fire Wall Maze Center",                      ("GS Token",     0x04,  0x08, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Master Quest", "Skulltulas",))),
    ("Fire Temple MQ GS Fire Wall Maze Side Room",                   ("GS Token",     0x04,  0x10, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Master Quest", "Skulltulas",))),
    ("Fire Temple MQ GS Above Fire Wall Maze",                       ("GS Token",     0x04,  0x02, None,                        'Gold Skulltula Token',                  ("Fire Temple", "Master Quest", "Skulltulas",))),
    # Fire Temple shared
    ("Fire Temple Volvagia Heart",                                   ("BossHeart",    0x15,  0x4F, None,                        'Heart Container',                       ("Fire Temple", "Vanilla", "Master Quest",))),

    # Water Temple vanilla
    ("Water Temple Compass Chest",                                   ("Chest",        0x05,  0x09, None,                        'Compass (Water Temple)',                ("Water Temple", "Vanilla",))),
    ("Water Temple Map Chest",                                       ("Chest",        0x05,  0x02, None,                        'Map (Water Temple)',                    ("Water Temple", "Vanilla",))),
    ("Water Temple Cracked Wall Chest",                              ("Chest",        0x05,  0x00, None,                        'Small Key (Water Temple)',              ("Water Temple", "Vanilla",))),
    ("Water Temple Torches Chest",                                   ("Chest",        0x05,  0x01, None,                        'Small Key (Water Temple)',              ("Water Temple", "Vanilla",))),
    ("Water Temple Boss Key Chest",                                  ("Chest",        0x05,  0x05, None,                        'Boss Key (Water Temple)',               ("Water Temple", "Vanilla",))),
    ("Water Temple Central Pillar Chest",                            ("Chest",        0x05,  0x06, None,                        'Small Key (Water Temple)',              ("Water Temple", "Vanilla",))),
    ("Water Temple Central Bow Target Chest",                        ("Chest",        0x05,  0x08, None,                        'Small Key (Water Temple)',              ("Water Temple", "Vanilla",))),
    ("Water Temple Longshot Chest",                                  ("Chest",        0x05,  0x07, None,                        'Progressive Hookshot',                  ("Water Temple", "Vanilla",))),
    ("Water Temple River Chest",                                     ("Chest",        0x05,  0x03, None,                        'Small Key (Water Temple)',              ("Water Temple", "Vanilla",))),
    ("Water Temple Dragon Chest",                                    ("Chest",        0x05,  0x0A, None,                        'Small Key (Water Temple)',              ("Water Temple", "Vanilla",))),
    ("Water Temple GS Behind Gate",                                  ("GS Token",     0x05,  0x01, None,                        'Gold Skulltula Token',                  ("Water Temple", "Vanilla", "Skulltulas",))),
    ("Water Temple GS Near Boss Key Chest",                          ("GS Token",     0x05,  0x08, None,                        'Gold Skulltula Token',                  ("Water Temple", "Vanilla", "Skulltulas",))),
    ("Water Temple GS Central Pillar",                               ("GS Token",     0x05,  0x04, None,                        'Gold Skulltula Token',                  ("Water Temple", "Vanilla", "Skulltulas",))),
    ("Water Temple GS Falling Platform Room",                        ("GS Token",     0x05,  0x02, None,                        'Gold Skulltula Token',                  ("Water Temple", "Vanilla", "Skulltulas",))),
    ("Water Temple GS River",                                        ("GS Token",     0x05,  0x10, None,                        'Gold Skulltula Token',                  ("Water Temple", "Vanilla", "Skulltulas",))),
    # Water Temple MQ
    ("Water Temple MQ Longshot Chest",                               ("Chest",        0x05,  0x00, None,                        'Progressive Hookshot',                  ("Water Temple", "Master Quest",))),
    ("Water Temple MQ Map Chest",                                    ("Chest",        0x05,  0x02, None,                        'Map (Water Temple)',                    ("Water Temple", "Master Quest",))),
    ("Water Temple MQ Compass Chest",                                ("Chest",        0x05,  0x01, None,                        'Compass (Water Temple)',                ("Water Temple", "Master Quest",))),
    ("Water Temple MQ Central Pillar Chest",                         ("Chest",        0x05,  0x06, None,                        'Small Key (Water Temple)',              ("Water Temple", "Master Quest",))),
    ("Water Temple MQ Boss Key Chest",                               ("Chest",        0x05,  0x05, None,                        'Boss Key (Water Temple)',               ("Water Temple", "Master Quest",))),
    ("Water Temple MQ Freestanding Key",                             ("Collectable",  0x05,  0x01, None,                        'Small Key (Water Temple)',              ("Water Temple", "Master Quest",))),
    ("Water Temple MQ GS Lizalfos Hallway",                          ("GS Token",     0x05,  0x01, None,                        'Gold Skulltula Token',                  ("Water Temple", "Master Quest", "Skulltulas",))),
    ("Water Temple MQ GS Before Upper Water Switch",                 ("GS Token",     0x05,  0x04, None,                        'Gold Skulltula Token',                  ("Water Temple", "Master Quest", "Skulltulas",))),
    ("Water Temple MQ GS River",                                     ("GS Token",     0x05,  0x02, None,                        'Gold Skulltula Token',                  ("Water Temple", "Master Quest", "Skulltulas",))),
    ("Water Temple MQ GS Freestanding Key Area",                     ("GS Token",     0x05,  0x08, None,                        'Gold Skulltula Token',                  ("Water Temple", "Master Quest", "Skulltulas",))),
    ("Water Temple MQ GS Triple Wall Torch",                         ("GS Token",     0x05,  0x10, None,                        'Gold Skulltula Token',                  ("Water Temple", "Master Quest", "Skulltulas",))),
    # Water Temple shared
    ("Water Temple Morpha Heart",                                    ("BossHeart",    0x16,  0x4F, None,                        'Heart Container',                       ("Water Temple", "Vanilla", "Master Quest",))),

    # Shadow Temple vanilla
    ("Shadow Temple Map Chest",                                      ("Chest",        0x07,  0x01, None,                        'Map (Shadow Temple)',                   ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Hover Boots Chest",                              ("Chest",        0x07,  0x07, None,                        'Hover Boots',                           ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Compass Chest",                                  ("Chest",        0x07,  0x03, None,                        'Compass (Shadow Temple)',               ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Early Silver Rupee Chest",                       ("Chest",        0x07,  0x02, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Invisible Blades Visible Chest",                 ("Chest",        0x07,  0x0C, None,                        'Rupees (5)',                            ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Invisible Blades Invisible Chest",               ("Chest",        0x07,  0x16, None,                        'Arrows (30)',                           ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Falling Spikes Lower Chest",                     ("Chest",        0x07,  0x05, None,                        'Arrows (10)',                           ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Falling Spikes Upper Chest",                     ("Chest",        0x07,  0x06, None,                        'Rupees (5)',                            ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Falling Spikes Switch Chest",                    ("Chest",        0x07,  0x04, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Invisible Spikes Chest",                         ("Chest",        0x07,  0x09, None,                        'Rupees (5)',                            ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Freestanding Key",                               ("Collectable",  0x07,  0x01, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Wind Hint Chest",                                ("Chest",        0x07,  0x15, None,                        'Arrows (10)',                           ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple After Wind Enemy Chest",                         ("Chest",        0x07,  0x08, None,                        'Rupees (5)',                            ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple After Wind Hidden Chest",                        ("Chest",        0x07,  0x14, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Spike Walls Left Chest",                         ("Chest",        0x07,  0x0A, None,                        'Rupees (5)',                            ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Boss Key Chest",                                 ("Chest",        0x07,  0x0B, None,                        'Boss Key (Shadow Temple)',              ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple Invisible Floormaster Chest",                    ("Chest",        0x07,  0x0D, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Vanilla",))),
    ("Shadow Temple GS Like Like Room",                              ("GS Token",     0x07,  0x08, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Vanilla", "Skulltulas",))),
    ("Shadow Temple GS Falling Spikes Room",                         ("GS Token",     0x07,  0x02, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Vanilla", "Skulltulas",))),
    ("Shadow Temple GS Single Giant Pot",                            ("GS Token",     0x07,  0x01, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Vanilla", "Skulltulas",))),
    ("Shadow Temple GS Near Ship",                                   ("GS Token",     0x07,  0x10, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Vanilla", "Skulltulas",))),
    ("Shadow Temple GS Triple Giant Pot",                            ("GS Token",     0x07,  0x04, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Vanilla", "Skulltulas",))),
    # Shadow Temple MQ
    ("Shadow Temple MQ Early Gibdos Chest",                          ("Chest",        0x07,  0x03, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Map Chest",                                   ("Chest",        0x07,  0x02, None,                        'Map (Shadow Temple)',                   ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Near Ship Invisible Chest",                   ("Chest",        0x07,  0x0E, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Compass Chest",                               ("Chest",        0x07,  0x01, None,                        'Compass (Shadow Temple)',               ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Hover Boots Chest",                           ("Chest",        0x07,  0x07, None,                        'Hover Boots',                           ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Invisible Blades Invisible Chest",            ("Chest",        0x07,  0x16, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Invisible Blades Visible Chest",              ("Chest",        0x07,  0x0C, None,                        'Rupees (5)',                            ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Beamos Silver Rupees Chest",                  ("Chest",        0x07,  0x0F, None,                        'Arrows (5)',                            ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Falling Spikes Lower Chest",                  ("Chest",        0x07,  0x05, None,                        'Arrows (10)',                           ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Falling Spikes Upper Chest",                  ("Chest",        0x07,  0x06, None,                        'Rupees (5)',                            ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Falling Spikes Switch Chest",                 ("Chest",        0x07,  0x04, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Invisible Spikes Chest",                      ("Chest",        0x07,  0x09, None,                        'Rupees (5)',                            ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Stalfos Room Chest",                          ("Chest",        0x07,  0x10, None,                        'Rupees (20)',                           ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Wind Hint Chest",                             ("Chest",        0x07,  0x15, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ After Wind Hidden Chest",                     ("Chest",        0x07,  0x14, None,                        'Arrows (5)',                            ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ After Wind Enemy Chest",                      ("Chest",        0x07,  0x08, None,                        'Rupees (5)',                            ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Boss Key Chest",                              ("Chest",        0x07,  0x0B, None,                        'Boss Key (Shadow Temple)',              ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Spike Walls Left Chest",                      ("Chest",        0x07,  0x0A, None,                        'Rupees (5)',                            ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Freestanding Key",                            ("Collectable",  0x07,  0x06, None,                        'Small Key (Shadow Temple)',             ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ Bomb Flower Chest",                           ("Chest",        0x07,  0x0D, None,                        'Arrows (10)',                           ("Shadow Temple", "Master Quest",))),
    ("Shadow Temple MQ GS Falling Spikes Room",                      ("GS Token",     0x07,  0x02, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Master Quest", "Skulltulas",))),
    ("Shadow Temple MQ GS Wind Hint Room",                           ("GS Token",     0x07,  0x01, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Master Quest", "Skulltulas",))),
    ("Shadow Temple MQ GS After Wind",                               ("GS Token",     0x07,  0x08, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Master Quest", "Skulltulas",))),
    ("Shadow Temple MQ GS After Ship",                               ("GS Token",     0x07,  0x10, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Master Quest", "Skulltulas",))),
    ("Shadow Temple MQ GS Near Boss",                                ("GS Token",     0x07,  0x04, None,                        'Gold Skulltula Token',                  ("Shadow Temple", "Master Quest", "Skulltulas",))),
    # Shadow Temple shared
    ("Shadow Temple Bongo Bongo Heart",                              ("BossHeart",    0x18,  0x4F, None,                        'Heart Container',                       ("Shadow Temple", "Vanilla", "Master Quest",))),

    # Spirit Temple shared
    # Vanilla and MQ locations are mixed to ensure the positions of Silver Gauntlets/Mirror Shield chests are correct for both versions
    ("Spirit Temple Child Bridge Chest",                             ("Chest",        0x06,  0x08, None,                        'Deku Shield',                           ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Child Early Torches Chest",                      ("Chest",        0x06,  0x00, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Child Climb North Chest",                        ("Chest",        0x06,  0x06, None,                        'Bombchus (10)',                         ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Child Climb East Chest",                         ("Chest",        0x06,  0x0C, None,                        'Deku Shield',                           ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Map Chest",                                      ("Chest",        0x06,  0x03, None,                        'Map (Spirit Temple)',                   ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Sun Block Room Chest",                           ("Chest",        0x06,  0x01, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple MQ Entrance Front Left Chest",                   ("Chest",        0x06,  0x1A, None,                        'Bombchus (10)',                         ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Entrance Back Right Chest",                   ("Chest",        0x06,  0x1F, None,                        'Bombchus (10)',                         ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Entrance Front Right Chest",                  ("Chest",        0x06,  0x1B, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Entrance Back Left Chest",                    ("Chest",        0x06,  0x1E, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Map Chest",                                   ("Chest",        0x06,  0x00, None,                        'Map (Spirit Temple)',                   ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Map Room Enemy Chest",                        ("Chest",        0x06,  0x08, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Child Climb North Chest",                     ("Chest",        0x06,  0x06, None,                        'Bombchus (10)',                         ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Child Climb South Chest",                     ("Chest",        0x06,  0x0C, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Compass Chest",                               ("Chest",        0x06,  0x03, None,                        'Compass (Spirit Temple)',               ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Silver Block Hallway Chest",                  ("Chest",        0x06,  0x1C, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Sun Block Room Chest",                        ("Chest",        0x06,  0x01, None,                        'Recovery Heart',                        ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple Silver Gauntlets Chest",                         ("Chest",        0x5C,  0x0B, None,                        'Progressive Strength Upgrade',          ("Spirit Temple", "Vanilla", "Master Quest", "Desert Colossus"))),

    ("Spirit Temple Compass Chest",                                  ("Chest",        0x06,  0x04, None,                        'Compass (Spirit Temple)',               ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Early Adult Right Chest",                        ("Chest",        0x06,  0x07, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple First Mirror Left Chest",                        ("Chest",        0x06,  0x0D, None,                        'Ice Trap',                              ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple First Mirror Right Chest",                       ("Chest",        0x06,  0x0E, None,                        'Recovery Heart',                        ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Statue Room Northeast Chest",                    ("Chest",        0x06,  0x0F, None,                        'Rupees (5)',                            ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Statue Room Hand Chest",                         ("Chest",        0x06,  0x02, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Near Four Armos Chest",                          ("Chest",        0x06,  0x05, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Hallway Right Invisible Chest",                  ("Chest",        0x06,  0x14, None,                        'Recovery Heart',                        ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Hallway Left Invisible Chest",                   ("Chest",        0x06,  0x15, None,                        'Recovery Heart',                        ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple MQ Child Hammer Switch Chest",                   ("Chest",        0x06,  0x1D, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Statue Room Lullaby Chest",                   ("Chest",        0x06,  0x0F, None,                        'Rupees (5)',                            ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Statue Room Invisible Chest",                 ("Chest",        0x06,  0x02, None,                        'Recovery Heart',                        ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Leever Room Chest",                           ("Chest",        0x06,  0x04, None,                        'Rupees (50)',                           ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Symphony Room Chest",                         ("Chest",        0x06,  0x07, None,                        'Rupees (50)',                           ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Beamos Room Chest",                           ("Chest",        0x06,  0x19, None,                        'Recovery Heart',                        ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Chest Switch Chest",                          ("Chest",        0x06,  0x18, None,                        'Ice Trap',                              ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple MQ Boss Key Chest",                              ("Chest",        0x06,  0x05, None,                        'Boss Key (Spirit Temple)',              ("Spirit Temple", "Master Quest",))),
    ("Spirit Temple Mirror Shield Chest",                            ("Chest",        0x5C,  0x09, None,                        'Mirror Shield',                         ("Spirit Temple", "Vanilla", "Master Quest", "Desert Colossus"))),

    ("Spirit Temple Boss Key Chest",                                 ("Chest",        0x06,  0x0A, None,                        'Boss Key (Spirit Temple)',              ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple Topmost Chest",                                  ("Chest",        0x06,  0x12, None,                        'Bombs (20)',                            ("Spirit Temple", "Vanilla",))),
    ("Spirit Temple MQ Mirror Puzzle Invisible Chest",               ("Chest",        0x06,  0x12, None,                        'Small Key (Spirit Temple)',             ("Spirit Temple", "Master Quest",))),

    ("Spirit Temple GS Metal Fence",                                 ("GS Token",     0x06,  0x10, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Vanilla", "Skulltulas",))),
    ("Spirit Temple GS Sun on Floor Room",                           ("GS Token",     0x06,  0x08, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Vanilla", "Skulltulas",))),
    ("Spirit Temple GS Hall After Sun Block Room",                   ("GS Token",     0x06,  0x01, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Vanilla", "Skulltulas",))),
    ("Spirit Temple GS Lobby",                                       ("GS Token",     0x06,  0x04, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Vanilla", "Skulltulas",))),
    ("Spirit Temple GS Boulder Room",                                ("GS Token",     0x06,  0x02, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Vanilla", "Skulltulas",))),
    ("Spirit Temple MQ GS Sun Block Room",                           ("GS Token",     0x06,  0x01, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Master Quest", "Skulltulas",))),
    ("Spirit Temple MQ GS Leever Room",                              ("GS Token",     0x06,  0x02, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Master Quest", "Skulltulas",))),
    ("Spirit Temple MQ GS Symphony Room",                            ("GS Token",     0x06,  0x08, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Master Quest", "Skulltulas",))),
    ("Spirit Temple MQ GS Nine Thrones Room West",                   ("GS Token",     0x06,  0x04, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Master Quest", "Skulltulas",))),
    ("Spirit Temple MQ GS Nine Thrones Room North",                  ("GS Token",     0x06,  0x10, None,                        'Gold Skulltula Token',                  ("Spirit Temple", "Master Quest", "Skulltulas",))),

    ("Spirit Temple Twinrova Heart",                                 ("BossHeart",    0x17,  0x4F, None,                        'Heart Container',                       ("Spirit Temple", "Vanilla", "Master Quest",))),

    # Ice Cavern vanilla
    ("Ice Cavern Map Chest",                                         ("Chest",        0x09,  0x00, None,                        'Map (Ice Cavern)',                      ("Ice Cavern", "Vanilla",))),
    ("Ice Cavern Compass Chest",                                     ("Chest",        0x09,  0x01, None,                        'Compass (Ice Cavern)',                  ("Ice Cavern", "Vanilla",))),
    ("Ice Cavern Freestanding PoH",                                  ("Collectable",  0x09,  0x01, None,                        'Piece of Heart',                        ("Ice Cavern", "Vanilla",))),
    ("Ice Cavern Iron Boots Chest",                                  ("Chest",        0x09,  0x02, None,                        'Iron Boots',                            ("Ice Cavern", "Vanilla",))),
    ("Ice Cavern GS Spinning Scythe Room",                           ("GS Token",     0x09,  0x02, None,                        'Gold Skulltula Token',                  ("Ice Cavern", "Vanilla", "Skulltulas",))),
    ("Ice Cavern GS Heart Piece Room",                               ("GS Token",     0x09,  0x04, None,                        'Gold Skulltula Token',                  ("Ice Cavern", "Vanilla", "Skulltulas",))),
    ("Ice Cavern GS Push Block Room",                                ("GS Token",     0x09,  0x01, None,                        'Gold Skulltula Token',                  ("Ice Cavern", "Vanilla", "Skulltulas",))),
    # Ice Cavern MQ
    ("Ice Cavern MQ Map Chest",                                      ("Chest",        0x09,  0x01, None,                        'Map (Ice Cavern)',                      ("Ice Cavern", "Master Quest",))),
    ("Ice Cavern MQ Compass Chest",                                  ("Chest",        0x09,  0x00, None,                        'Compass (Ice Cavern)',                  ("Ice Cavern", "Master Quest",))),
    ("Ice Cavern MQ Freestanding PoH",                               ("Collectable",  0x09,  0x01, None,                        'Piece of Heart',                        ("Ice Cavern", "Master Quest",))),
    ("Ice Cavern MQ Iron Boots Chest",                               ("Chest",        0x09,  0x02, None,                        'Iron Boots',                            ("Ice Cavern", "Master Quest",))),
    ("Ice Cavern MQ GS Red Ice",                                     ("GS Token",     0x09,  0x02, None,                        'Gold Skulltula Token',                  ("Ice Cavern", "Master Quest", "Skulltulas",))),
    ("Ice Cavern MQ GS Ice Block",                                   ("GS Token",     0x09,  0x04, None,                        'Gold Skulltula Token',                  ("Ice Cavern", "Master Quest", "Skulltulas",))),
    ("Ice Cavern MQ GS Scarecrow",                                   ("GS Token",     0x09,  0x01, None,                        'Gold Skulltula Token',                  ("Ice Cavern", "Master Quest", "Skulltulas",))),

    # Gerudo Training Grounds vanilla
    ("Gerudo Training Grounds Lobby Left Chest",                     ("Chest",        0x0B,  0x13, None,                        'Rupees (5)',                            ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Lobby Right Chest",                    ("Chest",        0x0B,  0x07, None,                        'Arrows (10)',                           ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Stalfos Chest",                        ("Chest",        0x0B,  0x00, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Before Heavy Block Chest",             ("Chest",        0x0B,  0x11, None,                        'Arrows (30)',                           ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Heavy Block First Chest",              ("Chest",        0x0B,  0x0F, None,                        'Rupees (200)',                          ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Heavy Block Second Chest",             ("Chest",        0x0B,  0x0E, None,                        'Rupees (5)',                            ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Heavy Block Third Chest",              ("Chest",        0x0B,  0x14, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Heavy Block Fourth Chest",             ("Chest",        0x0B,  0x02, None,                        'Ice Trap',                              ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Eye Statue Chest",                     ("Chest",        0x0B,  0x03, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Near Scarecrow Chest",                 ("Chest",        0x0B,  0x04, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Hammer Room Clear Chest",              ("Chest",        0x0B,  0x12, None,                        'Arrows (10)',                           ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Hammer Room Switch Chest",             ("Chest",        0x0B,  0x10, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Freestanding Key",                     ("Collectable",  0x0B,  0x01, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Maze Right Central Chest",             ("Chest",        0x0B,  0x05, None,                        'Bombchus (5)',                          ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Maze Right Side Chest",                ("Chest",        0x0B,  0x08, None,                        'Arrows (30)',                           ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Underwater Silver Rupee Chest",        ("Chest",        0x0B,  0x0D, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Beamos Chest",                         ("Chest",        0x0B,  0x01, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Hidden Ceiling Chest",                 ("Chest",        0x0B,  0x0B, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Maze Path First Chest",                ("Chest",        0x0B,  0x06, None,                        'Rupees (50)',                           ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Maze Path Second Chest",               ("Chest",        0x0B,  0x0A, None,                        'Rupees (20)',                           ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Maze Path Third Chest",                ("Chest",        0x0B,  0x09, None,                        'Arrows (30)',                           ("Gerudo Training Grounds", "Vanilla",))),
    ("Gerudo Training Grounds Maze Path Final Chest",                ("Chest",        0x0B,  0x0C, None,                        'Ice Arrows',                            ("Gerudo Training Grounds", "Vanilla",))),
    # Gerudo Training Grounds MQ
    ("Gerudo Training Grounds MQ Lobby Left Chest",                  ("Chest",        0x0B,  0x13, None,                        'Arrows (10)',                           ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Lobby Right Chest",                 ("Chest",        0x0B,  0x07, None,                        'Bombchus (5)',                          ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ First Iron Knuckle Chest",          ("Chest",        0x0B,  0x00, None,                        'Rupees (5)',                            ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Before Heavy Block Chest",          ("Chest",        0x0B,  0x11, None,                        'Arrows (10)',                           ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Heavy Block Chest",                 ("Chest",        0x0B,  0x02, None,                        'Rupees (50)',                           ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Eye Statue Chest",                  ("Chest",        0x0B,  0x03, None,                        'Bombchus (10)',                         ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Ice Arrows Chest",                  ("Chest",        0x0B,  0x04, None,                        'Ice Arrows',                            ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Second Iron Knuckle Chest",         ("Chest",        0x0B,  0x12, None,                        'Arrows (10)',                           ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Flame Circle Chest",                ("Chest",        0x0B,  0x0E, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Maze Right Central Chest",          ("Chest",        0x0B,  0x05, None,                        'Rupees (5)',                            ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Maze Right Side Chest",             ("Chest",        0x0B,  0x08, None,                        'Rupee (Treasure Chest Game)',           ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Underwater Silver Rupee Chest",     ("Chest",        0x0B,  0x0D, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Dinolfos Chest",                    ("Chest",        0x0B,  0x01, None,                        'Small Key (Gerudo Training Grounds)',   ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Hidden Ceiling Chest",              ("Chest",        0x0B,  0x0B, None,                        'Rupees (50)',                           ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Maze Path First Chest",             ("Chest",        0x0B,  0x06, None,                        'Rupee (1)',                             ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Maze Path Third Chest",             ("Chest",        0x0B,  0x09, None,                        'Rupee (Treasure Chest Game)',           ("Gerudo Training Grounds", "Master Quest",))),
    ("Gerudo Training Grounds MQ Maze Path Second Chest",            ("Chest",        0x0B,  0x0A, None,                        'Rupees (20)',                           ("Gerudo Training Grounds", "Master Quest",))),

    # Ganon's Castle vanilla
    ("Ganons Castle Forest Trial Chest",                             ("Chest",        0x0D,  0x09, None,                        'Rupees (5)',                            ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Water Trial Left Chest",                         ("Chest",        0x0D,  0x07, None,                        'Ice Trap',                              ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Water Trial Right Chest",                        ("Chest",        0x0D,  0x06, None,                        'Recovery Heart',                        ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Shadow Trial Front Chest",                       ("Chest",        0x0D,  0x08, None,                        'Rupees (5)',                            ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Shadow Trial Golden Gauntlets Chest",            ("Chest",        0x0D,  0x05, None,                        'Progressive Strength Upgrade',          ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial First Left Chest",                   ("Chest",        0x0D,  0x0C, None,                        'Rupees (5)',                            ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial Second Left Chest",                  ("Chest",        0x0D,  0x0B, None,                        'Ice Trap',                              ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial Third Left Chest",                   ("Chest",        0x0D,  0x0D, None,                        'Recovery Heart',                        ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial First Right Chest",                  ("Chest",        0x0D,  0x0E, None,                        'Ice Trap',                              ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial Second Right Chest",                 ("Chest",        0x0D,  0x0A, None,                        'Arrows (30)',                           ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial Third Right Chest",                  ("Chest",        0x0D,  0x0F, None,                        'Ice Trap',                              ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial Invisible Enemies Chest",            ("Chest",        0x0D,  0x10, None,                        'Small Key (Ganons Castle)',             ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Light Trial Lullaby Chest",                      ("Chest",        0x0D,  0x11, None,                        'Small Key (Ganons Castle)',             ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Spirit Trial Crystal Switch Chest",              ("Chest",        0x0D,  0x12, None,                        'Bombchus (20)',                         ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Spirit Trial Invisible Chest",                   ("Chest",        0x0D,  0x14, None,                        'Arrows (10)',                           ("Ganon's Castle", "Vanilla",))),
    ("Ganons Castle Deku Scrub Left",                                ("NPC",          0x0D,  0x3A, None,                        'Buy Green Potion',                      ("Ganon's Castle", "Vanilla", "Deku Scrub",))),
    ("Ganons Castle Deku Scrub Center-Left",                         ("NPC",          0x0D,  0x37, None,                        'Buy Bombs (5) [35]',                    ("Ganon's Castle", "Vanilla", "Deku Scrub",))),
    ("Ganons Castle Deku Scrub Center-Right",                        ("NPC",          0x0D,  0x33, None,                        'Buy Arrows (30)',                       ("Ganon's Castle", "Vanilla", "Deku Scrub",))),
    ("Ganons Castle Deku Scrub Right",                               ("NPC",          0x0D,  0x39, None,                        'Buy Red Potion [30]',                   ("Ganon's Castle", "Vanilla", "Deku Scrub",))),
    # Ganon's Castle MQ
    ("Ganons Castle MQ Forest Trial Freestanding Key",               ("Collectable",  0x0D,  0x01, None,                        'Small Key (Ganons Castle)',             ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Forest Trial Eye Switch Chest",               ("Chest",        0x0D,  0x02, None,                        'Arrows (10)',                           ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Forest Trial Frozen Eye Switch Chest",        ("Chest",        0x0D,  0x03, None,                        'Bombs (5)',                             ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Water Trial Chest",                           ("Chest",        0x0D,  0x01, None,                        'Rupees (20)',                           ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Shadow Trial Bomb Flower Chest",              ("Chest",        0x0D,  0x00, None,                        'Arrows (10)',                           ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Shadow Trial Eye Switch Chest",               ("Chest",        0x0D,  0x05, None,                        'Small Key (Ganons Castle)',             ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Light Trial Lullaby Chest",                   ("Chest",        0x0D,  0x04, None,                        'Recovery Heart',                        ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Spirit Trial First Chest",                    ("Chest",        0x0D,  0x0A, None,                        'Bombchus (10)',                         ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Spirit Trial Invisible Chest",                ("Chest",        0x0D,  0x14, None,                        'Arrows (10)',                           ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Spirit Trial Sun Front Left Chest",           ("Chest",        0x0D,  0x09, None,                        'Recovery Heart',                        ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Spirit Trial Sun Back Left Chest",            ("Chest",        0x0D,  0x08, None,                        'Small Key (Ganons Castle)',             ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Spirit Trial Sun Back Right Chest",           ("Chest",        0x0D,  0x07, None,                        'Recovery Heart',                        ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Spirit Trial Golden Gauntlets Chest",         ("Chest",        0x0D,  0x06, None,                        'Progressive Strength Upgrade',          ("Ganon's Castle", "Master Quest",))),
    ("Ganons Castle MQ Deku Scrub Left",                             ("NPC",          0x0D,  0x3A, None,                        'Buy Green Potion',                      ("Ganon's Castle", "Master Quest", "Deku Scrub",))),
    ("Ganons Castle MQ Deku Scrub Center-Left",                      ("NPC",          0x0D,  0x37, None,                        'Buy Bombs (5) [35]',                    ("Ganon's Castle", "Master Quest", "Deku Scrub",))),
    ("Ganons Castle MQ Deku Scrub Center",                           ("NPC",          0x0D,  0x33, None,                        'Buy Arrows (30)',                       ("Ganon's Castle", "Master Quest", "Deku Scrub",))),
    ("Ganons Castle MQ Deku Scrub Center-Right",                     ("NPC",          0x0D,  0x39, None,                        'Buy Red Potion [30]',                   ("Ganon's Castle", "Master Quest", "Deku Scrub",))),
    ("Ganons Castle MQ Deku Scrub Right",                            ("NPC",          0x0D,  0x30, None,                        'Buy Deku Nut (5)',                      ("Ganon's Castle", "Master Quest", "Deku Scrub",))),
    # Ganon's Castle shared
    ("Ganons Tower Boss Key Chest",                                  ("Chest",        0x0A,  0x0B, None,                        'Boss Key (Ganons Castle)',              ("Ganon's Castle", "Vanilla", "Master Quest",))),

    ## Events and Drops
    ("Pierre",                                                       ("Event",        None,  None, None,                        'Scarecrow Song',                        None)),
    ("Deliver Rutos Letter",                                         ("Event",        None,  None, None,                        'Deliver Letter',                        None)),
    ("Master Sword Pedestal",                                        ("Event",        None,  None, None,                        'Time Travel',                           None)),

    ("Deku Baba Sticks",                                             ("Drop",         None,  None, None,                        'Deku Stick Drop',                       None)),
    ("Deku Baba Nuts",                                               ("Drop",         None,  None, None,                        'Deku Nut Drop',                         None)),
    ("Stick Pot",                                                    ("Drop",         None,  None, None,                        'Deku Stick Drop',                       None)),
    ("Nut Pot",                                                      ("Drop",         None,  None, None,                        'Deku Nut Drop',                         None)),
    ("Nut Crate",                                                    ("Drop",         None,  None, None,                        'Deku Nut Drop',                         None)),
    ("Blue Fire",                                                    ("Drop",         None,  None, None,                        'Blue Fire',                             None)),
    ("Lone Fish",                                                    ("Drop",         None,  None, None,                        'Fish',                                  None)),
    ("Fish Group",                                                   ("Drop",         None,  None, None,                        'Fish',                                  None)),
    ("Bug Rock",                                                     ("Drop",         None,  None, None,                        'Bugs',                                  None)),
    ("Bug Shrub",                                                    ("Drop",         None,  None, None,                        'Bugs',                                  None)),
    ("Wandering Bugs",                                               ("Drop",         None,  None, None,                        'Bugs',                                  None)),
    ("Fairy Pot",                                                    ("Drop",         None,  None, None,                        'Fairy',                                 None)),
    ("Free Fairies",                                                 ("Drop",         None,  None, None,                        'Fairy',                                 None)),
    ("Wall Fairy",                                                   ("Drop",         None,  None, None,                        'Fairy',                                 None)),
    ("Butterfly Fairy",                                              ("Drop",         None,  None, None,                        'Fairy',                                 None)),
    ("Gossip Stone Fairy",                                           ("Drop",         None,  None, None,                        'Fairy',                                 None)),
    ("Bean Plant Fairy",                                             ("Drop",         None,  None, None,                        'Fairy',                                 None)),
    ("Fairy Pond",                                                   ("Drop",         None,  None, None,                        'Fairy',                                 None)),
    ("Big Poe Kill",                                                 ("Drop",         None,  None, None,                        'Big Poe',                               None)),

    ## Hints
    # These are not actual locations, but are filler spots used for hint reachability.
    # Hint location types must start with 'Hint'.
    ("DMC Gossip Stone",                                             ("HintStone",    None,  None, None,                        None,                                    None)),
    ("DMT Gossip Stone",                                             ("HintStone",    None,  None, None,                        None,                                    None)),
    ("Colossus Gossip Stone",                                        ("HintStone",    None,  None, None,                        None,                                    None)),
    ("Dodongos Cavern Gossip Stone",                                 ("HintStone",    None,  None, None,                        None,                                    None)),
    ("GV Gossip Stone",                                              ("HintStone",    None,  None, None,                        None,                                    None)),
    ("GC Maze Gossip Stone",                                         ("HintStone",    None,  None, None,                        None,                                    None)),
    ("GC Medigoron Gossip Stone",                                    ("HintStone",    None,  None, None,                        None,                                    None)),
    ("Graveyard Gossip Stone",                                       ("HintStone",    None,  None, None,                        None,                                    None)),
    ("HC Malon Gossip Stone",                                        ("HintStone",    None,  None, None,                        None,                                    None)),
    ("HC Rock Wall Gossip Stone",                                    ("HintStone",    None,  None, None,                        None,                                    None)),
    ("HC Storms Grotto Gossip Stone",                                ("HintStone",    None,  None, None,                        None,                                    None)),
    ("HF Cow Grotto Gossip Stone",                                   ("HintStone",    None,  None, None,                        None,                                    None)),
    ("KF Deku Tree Gossip Stone (Left)",                             ("HintStone",    None,  None, None,                        None,                                    None)),
    ("KF Deku Tree Gossip Stone (Right)",                            ("HintStone",    None,  None, None,                        None,                                    None)),
    ("KF Gossip Stone",                                              ("HintStone",    None,  None, None,                        None,                                    None)),
    ("LH Lab Gossip Stone",                                          ("HintStone",    None,  None, None,                        None,                                    None)),
    ("LH Gossip Stone (Southeast)",                                  ("HintStone",    None,  None, None,                        None,                                    None)),
    ("LH Gossip Stone (Southwest)",                                  ("HintStone",    None,  None, None,                        None,                                    None)),
    ("LW Gossip Stone",                                              ("HintStone",    None,  None, None,                        None,                                    None)),
    ("SFM Maze Gossip Stone (Lower)",                                ("HintStone",    None,  None, None,                        None,                                    None)),
    ("SFM Maze Gossip Stone (Upper)",                                ("HintStone",    None,  None, None,                        None,                                    None)),
    ("SFM Saria Gossip Stone",                                       ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ToT Gossip Stone (Left)",                                      ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ToT Gossip Stone (Left-Center)",                               ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ToT Gossip Stone (Right)",                                     ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ToT Gossip Stone (Right-Center)",                              ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ZD Gossip Stone",                                              ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ZF Fairy Gossip Stone",                                        ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ZF Jabu Gossip Stone",                                         ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ZR Near Grottos Gossip Stone",                                 ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ZR Near Domain Gossip Stone",                                  ("HintStone",    None,  None, None,                        None,                                    None)),

    ("HF Near Market Grotto Gossip Stone",                           ("HintStone",    None,  None, None,                        None,                                    None)),
    ("HF Southeast Grotto Gossip Stone",                             ("HintStone",    None,  None, None,                        None,                                    None)),
    ("HF Open Grotto Gossip Stone",                                  ("HintStone",    None,  None, None,                        None,                                    None)),
    ("Kak Open Grotto Gossip Stone",                                 ("HintStone",    None,  None, None,                        None,                                    None)),
    ("ZR Open Grotto Gossip Stone",                                  ("HintStone",    None,  None, None,                        None,                                    None)),
    ("KF Storms Grotto Gossip Stone",                                ("HintStone",    None,  None, None,                        None,                                    None)),
    ("LW Near Shortcuts Grotto Gossip Stone",                        ("HintStone",    None,  None, None,                        None,                                    None)),
    ("DMT Storms Grotto Gossip Stone",                               ("HintStone",    None,  None, None,                        None,                                    None)),
    ("DMC Upper Grotto Gossip Stone",                                ("HintStone",    None,  None, None,                        None,                                    None)),

    ("Ganondorf Hint",                                               ("Hint",         None,  None, None,                        None,                                    None)),
])

location_sort_order = {
    loc: i for i, loc in enumerate(location_table.keys())
}

# Business Scrub Details
business_scrubs = [
    # id   price  text   text replacement
    (0x30, 20,   0x10A0, ["Deku Nuts", "a \x05\x42mysterious item\x05\x40"]),
    (0x31, 15,   0x10A1, ["Deku Sticks", "a \x05\x42mysterious item\x05\x40"]),
    (0x3E, 10,   0x10A2, ["Piece of Heart", "\x05\x42mysterious item\x05\x40"]),
    (0x33, 40,   0x10CA, ["\x05\x41Deku Seeds", "a \x05\x42mysterious item"]),
    (0x34, 50,   0x10CB, ["\x41Deku Shield", "\x42mysterious item"]),
    (0x37, 40,   0x10CC, ["\x05\x41Bombs", "a \x05\x42mysterious item"]),
    (0x38, 00,   0x10CD, ["\x05\x41Arrows", "a \x05\x42mysterious item"]),  # unused
    (0x39, 40,   0x10CE, ["\x05\x41Red Potion", "\x05\x42mysterious item"]),
    (0x3A, 40,   0x10CF, ["Green Potion", "mysterious item"]),
    (0x77, 40,   0x10DC, ["enable you to pick up more\x01\x05\x41Deku Sticks", "sell you a \x05\x42mysterious item"]),
    (0x79, 40,   0x10DD, ["enable you to pick up more \x05\x41Deku\x01Nuts", "sell you a \x05\x42mysterious item"]),
]

dungeons = ('Deku Tree', 'Dodongo\'s Cavern', 'Jabu Jabu\'s Belly', 'Forest Temple', 'Fire Temple', 'Water Temple', 'Spirit Temple', 'Shadow Temple', 'Ice Cavern', 'Bottom of the Well', 'Gerudo Training Grounds', 'Ganon\'s Castle')
location_groups = {
    'Song': [name for (name, data) in location_table.items() if data[0] == 'Song'],
    'Chest': [name for (name, data) in location_table.items() if data[0] == 'Chest'],
    'Collectable': [name for (name, data) in location_table.items() if data[0] == 'Collectable'],
    'BossHeart': [name for (name, data) in location_table.items() if data[0] == 'BossHeart'],
    'CollectableLike': [name for (name, data) in location_table.items() if data[0] in ('Collectable', 'BossHeart', 'GS Token')],
    'CanSee': [name for (name, data) in location_table.items()
               if data[0] in ('Collectable', 'BossHeart', 'GS Token', 'Shop')
               # Treasure Box Shop, Bombchu Bowling, Hyrule Field (OoT), Lake Hylia (RL/FA)
               or data[0:2] in [('Chest', 0x10), ('NPC', 0x4B), ('NPC', 0x51), ('NPC', 0x57)]],
    'Dungeon': [name for (name, data) in location_table.items() if data[5] is not None and any(dungeon in data[5] for dungeon in dungeons)],
}


def location_is_viewable(loc_name, correct_chest_sizes):
    return correct_chest_sizes and loc_name in location_groups['Chest'] or loc_name in location_groups['CanSee']


# Function to run exactly once after after placing items in drop locations for each world
# Sets all Drop locations to a unique name in order to avoid name issues and to identify locations in the spoiler
# Also cause them to not be shown in the list of locations, only in playthrough
def set_drop_location_names(ootworld):
    for region in ootworld.regions:
        for location in region.locations:
            if location.type == 'Drop': 
                location.name = location.parent_region.name + " " + location.name
                location.show_in_spoiler = False
