From 02d6905438c9a46782c620303331de546d5b8bde Mon Sep 17 00:00:00 2001 From: aerinon Date: Thu, 15 Apr 2021 15:11:40 -0600 Subject: [PATCH 1/9] Fix for retro "shops" --- Rom.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index 392efbb7..63cdfb35 100644 --- a/Rom.py +++ b/Rom.py @@ -16,7 +16,7 @@ from BaseClasses import CollectionState, ShopType, Region, Location, Door, DoorT from DoorShuffle import compass_data, DROptions, boss_indicator from Dungeons import dungeon_music_addresses from KeyDoorShuffle import count_locations_exclude_logic -from Regions import location_table, shop_to_location_table +from Regions import location_table, shop_to_location_table, retro_shops from RoomData import DoorKind from Text import MultiByteTextMapper, CompressedTextMapper, text_addresses, Credits, TextTable from Text import Uncle_texts, Ganon1_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, BombShop2_texts, junk_texts @@ -1571,8 +1571,11 @@ def write_custom_shops(rom, world, player): break if world.shopsanity[player] or shop.type == ShopType.TakeAny: rom.write_byte(0x186560 + shop.sram_address + index, 1) - loc_item = world.get_location(shop_to_location_table[shop.region.name][index], player).item - if not loc_item: + if world.shopsanity[player] and shop.region.name in shop_to_location_table: + loc_item = world.get_location(shop_to_location_table[shop.region.name][index], player).item + elif world.shopsanity[player] and shop.region.name in retro_shops: + loc_item = world.get_location(retro_shops[shop.region.name][index], player).item + else: loc_item = ItemFactory(item['item'], player) item_id = loc_item.code price = int16_as_bytes(item['price']) From 7a74ba8999f1b1cc54fa7d56773019d2964445ee Mon Sep 17 00:00:00 2001 From: aerinon Date: Tue, 27 Apr 2021 14:00:00 -0600 Subject: [PATCH 2/9] Shopsanity price re-work --- Fill.py | 36 ++++++++++++++++++++-- ItemList.py | 79 +++++++++++++++++++++++++++++++++++++++++++++++-- RELEASENOTES.md | 65 ++++++++++++++++++++++------------------ 3 files changed, 147 insertions(+), 33 deletions(-) diff --git a/Fill.py b/Fill.py index 3cdf8bf3..55c203a1 100644 --- a/Fill.py +++ b/Fill.py @@ -534,6 +534,30 @@ def balance_money_progression(world): 'TR Rupees': 270, 'PoD Dark Basement': 270} acceptable_balancers = ['Bombs (3)', 'Arrows (10)', 'Bombs (10)'] + base_value = sum(rupee_rooms.values()) + available_money = {player: base_value for player in range(1, world.players+1)} + for loc in world.get_locations(): + if loc.item.name in rupee_chart: + available_money[loc.item.player] += rupee_chart[loc.item.name] + + total_price = {player: 0 for player in range(1, world.players+1)} + for player in range(1, world.players+1): + for shop, loc_list in shop_to_location_table.items(): + for loc in loc_list: + loc = world.get_location(loc, player) + slot = shop_to_location_table[loc.parent_region.name].index(loc.name) + shop = loc.parent_region.shop + shop_item = shop.inventory[slot] + if shop_item: + total_price[player] += shop_item['price'] + total_price[player] += 110 + sum(pay_for_locations.values()) + # base needed: 830 + # base available: 765 + + for player in range(1, world.players+1): + logger.debug(f'Money balance for P{player}: Needed: {total_price[player]} Available: {available_money[player]}') + + def get_sphere_locations(sphere_state, locations): sphere_state.sweep_for_events(key_only=True, locations=locations) return [loc for loc in locations if sphere_state.can_reach(loc) and sphere_state.not_flooding_a_key(sphere_state.world, loc)] @@ -580,9 +604,15 @@ def balance_money_progression(world): shop = location.parent_region.shop shop_item = shop.inventory[slot] if interesting_item(location, location.item, world, location.item.player): - sphere_costs[loc_player] += shop_item['price'] - location_free = False - locked_by_money[loc_player].add(location) + if location.item.name.startswith('Rupee') and loc_player == location.item.player: + if shop_item['price'] < rupee_chart[location.item.name]: + wallet[loc_player] -= shop_item['price'] # will get picked up in the location_free block + else: + location_free = False + else: + location_free = False + sphere_costs[loc_player] += shop_item['price'] + locked_by_money[loc_player].add(location) elif location.name in pay_for_locations: sphere_costs[loc_player] += pay_for_locations[location.name] location_free = False diff --git a/ItemList.py b/ItemList.py index ccc10b28..27312851 100644 --- a/ItemList.py +++ b/ItemList.py @@ -3,12 +3,12 @@ import logging import math import random -from BaseClasses import Region, RegionType, Shop, ShopType, Location +from BaseClasses import Region, RegionType, Shop, ShopType, Location, CollectionState from Bosses import place_bosses from Dungeons import get_dungeon_item_pool from EntranceShuffle import connect_entrance from Regions import shop_to_location_table, retro_shops, shop_table_by_location -from Fill import FillError, fill_restrictive +from Fill import FillError, fill_restrictive, fast_fill from Items import ItemFactory import source.classes.constants as CONST @@ -574,6 +574,7 @@ def customize_shops(world, player): loc.item = upgrade upgrade.location = loc change_shop_items_to_rupees(world, player, shops_to_customize) + balance_prices(world, player) def randomize_price(price): @@ -606,6 +607,77 @@ def change_shop_items_to_rupees(world, player, shops): shop.add_inventory(slot, new_item.name, randomize_price(new_item.price), 1, player=new_item.player) +def balance_prices(world, player): + available_money = 765 # this base just counts the main rupee rooms. Could up it for houlihan by 225 + needed_money = 830 # this base is the pay for + for loc in world.get_filled_locations(player): + if loc.item.name in rupee_chart: + available_money += rupee_chart[loc.item.name] # rupee at locations + shop_locations = [] + for shop, loc_list in shop_to_location_table.items(): + for loc in loc_list: + loc = world.get_location(loc, player) + shop_locations.append(loc) + slot = shop_to_location_table[loc.parent_region.name].index(loc.name) + needed_money += loc.parent_region.shop.inventory[slot]['price'] + + target = available_money - needed_money + # remove the first set of shops from consideration (or used them for discounting) + state, done = CollectionState(world), False + unchecked_locations = world.get_locations().copy() + while not done: + state.sweep_for_events(key_only=True, locations=unchecked_locations) + sphere_loc = [l for l in unchecked_locations if state.can_reach(l) and state.not_flooding_a_key(state.world, l)] + if any(l in shop_locations for l in sphere_loc): + if target >= 0: + shop_locations = [l for l in shop_locations if l not in sphere_loc] + else: + shop_locations = [l for l in sphere_loc if l in shop_locations] + done = True + else: + for l in sphere_loc: + state.collect(l.item, True, l) + unchecked_locations.remove(l) + + while len(shop_locations) > 0: + adjustment = target // len(shop_locations) + adjustment = 5 * (adjustment // 5) + more_adjustment = [] + for loc in shop_locations: + slot = shop_to_location_table[loc.parent_region.name].index(loc.name) + price_max = loc.item.price * 2 + inventory = loc.parent_region.shop.inventory[slot] + flex = price_max - inventory['price'] + if flex <= adjustment: + inventory['price'] = price_max + target -= flex + elif adjustment <= 0: + old_price = inventory['price'] + new_price = max(0, inventory['price'] + adjustment) + inventory['price'] = new_price + target += (old_price - new_price) + else: + more_adjustment.append(loc) + if len(shop_locations) == len(more_adjustment): + for loc in shop_locations: + slot = shop_to_location_table[loc.parent_region.name].index(loc.name) + inventory = loc.parent_region.shop.inventory[slot] + new_price = inventory['price'] + adjustment + new_price = min(500, max(0, new_price)) # cap prices between 0--twice base price + inventory['price'] = new_price + target -= adjustment + more_adjustment = [] + shop_locations = more_adjustment + logging.getLogger('').debug(f'Price target is off by by {target} rupees') + + # for loc in shop_locations: + # slot = shop_to_location_table[loc.parent_region.name].index(loc.name) + # new_price = loc.parent_region.shop.inventory[slot]['price'] + adjustment + # + # new_price = min(500, max(0, new_price)) # cap prices between 0--twice base price + # loc.parent_region.shop.inventory[slot]['price'] = new_price + + repeatable_shop_items = ['Single Arrow', 'Arrows (10)', 'Bombs (3)', 'Bombs (10)', 'Red Potion', 'Small Heart', 'Blue Shield', 'Red Shield', 'Bee', 'Small Key (Universal)', 'Blue Potion', 'Green Potion'] @@ -621,6 +693,9 @@ shop_transfer = {'Red Potion': 'Rupees (50)', 'Bee': 'Rupees (5)', 'Blue Potion' # 'Blue Shield': 'Rupees (50)', 'Red Shield': 'Rupees (300)', } +rupee_chart = {'Rupee (1)': 1, 'Rupees (5)': 5, 'Rupees (20)': 20, 'Rupees (50)': 50, + 'Rupees (100)': 100, 'Rupees (300)': 300} + def get_pool_core(progressive, shuffle, difficulty, treasure_hunt_total, timer, goal, mode, swords, retro, door_shuffle): pool = [] diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 9b677253..214d470d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -44,38 +44,44 @@ All items in the general item pool may appear in shops. This includes normal pro #### Pricing Guide -All prices range approx. from half the base price to the base price in increments of 5, the exact price is chosen randomly within the range. +#### Sphere effects + +Design goal: Shops in early spheres may be discounted below the base price while shops in later spheres will likely exceed the base price range. This is an attempt to balance out the rupees in the item pool vs. the prices the shops charges. Poorer item pools like Triforce Hunt may have early shop prices be adjusted downward while rupee rich item pools will have prices increased, but later in the game. + +Detailed explanation: It is calculated how much money is available in the item pool and various rupee sources. If this amount exceeds the total amount of money needed for shop prices for items, then shops that are not in sphere 1 will raise their prices by a calculated amount to help balance out the money. Conversely, if the amount is below the money needed, then shops in sphere 1 will be discounted by a calculated amount to help ensure everything is purchase-able with minimal grinding. + +#### Base prices + +All prices range approx. from half the base price to twice the base price (as a max) in increments of 5, the exact price is chosen randomly within the range subject to adjustments by the sphere effects above. | Category | Items | Base Price | Typical Range | | ----------------- | ------- |:----------:|:-------------:| -| Major Progression | Hammer, Hookshot, Mirror, Ocarina, Boots, Somaria, Fire Rod, Ice Rod | 250 | 125-250 -| | Moon Pearl | 200 | 100-200 -| | Lamp, Progressive Bows, Gloves, & Swords | 150 | 75-150 -| | Triforce Piece | 100 | 50-100 -| Medallions | Bombos, Ether, Quake | 100 | 50-100 -| Safety/Fetch | Cape, Mushroom, Shovel, Powder, Bug Net, Byrna, Progressive Armor & Shields, Half Magic | 50 | 25-50 -| Bottles | Empty Bottle or Bee Bottle | 50 | 25-50 -| | Green Goo or Good Bee | 60 | 30-60 -| | Red Goo or Fairy | 70 | 35-70 -| | Blue Goo | 80 | 40-80 -| Health | Heart Container | 40 | 20-40 -| | Sanctuary Heart | 50 | 25-50 -| | Piece of Heart | 10 | 5-10 -| Dungeon | Big Keys | 60 | 30-60 -| | Small Keys | 40 | 20-40 -| | Info Maps | 20 | 10-20 -| | Other Maps & Compasses | 10 | 5-10 +| Major Progression | Hammer, Hookshot, Mirror, Ocarina, Boots, Somaria, Fire Rod, Ice Rod | 250 | 125-500 +| | Moon Pearl | 200 | 100-400 +| | Lamp, Progressive Bows, Gloves, & Swords | 150 | 75-300 +| | Triforce Piece | 100 | 50-200 +| Medallions | Bombos, Ether, Quake | 100 | 50-200 +| Safety/Fetch | Cape, Mushroom, Shovel, Powder, Bug Net, Byrna, Progressive Armor & Shields, Half Magic | 50 | 25-100 +| Bottles | Empty Bottle or Bee Bottle | 50 | 25-100 +| | Green Goo or Good Bee | 60 | 30-120 +| | Red Goo or Fairy | 70 | 35-140 +| | Blue Goo | 80 | 40-160 +| Health | Heart Container | 40 | 20-80 +| | Sanctuary Heart | 50 | 25-100 +| | Piece of Heart | 10 | 5-20 +| Dungeon | Big Keys | 60 | 30-120 +| | Small Keys | 40 | 20-80 +| | Info Maps | 20 | 10-40 +| | Other Maps & Compasses | 10 | 5-20 | Rupees | Green | Free | Free -| | Blue | 2 | 2 -| | Red | 10 | 5-10 -| | Fifty | 25 | 15-25 -| | One Hundred | 50 | 25-50 -| | Three Hundred | 150 | 75-150 -| Ammo | Three Bombs | 15 | 10-15 -| | Single Arrow | 3 | 3 -| Original Shop Items | Other Ammo, Refills, Non-Progressive Shields, Capacity Upgrades, Small Hearts, Retro Quiver, Universal Key | Original | Could be Discounted as Above - -~~In addition, 4-7 items are steeply discounted at random.~~ Sales are over. +| | Blue | 2 | 2-4 +| | Red | 10 | 5-20 +| | Fifty | 25 | 15-50 +| | One Hundred | 50 | 25-100 +| | Three Hundred | 150 | 75-300 +| Ammo | Three Bombs | 15 | 10-30 +| | Single Arrow | 3 | 3-6 +| Original Shop Items | Other Ammo, Refills, Non-Progressive Shields, Capacity Upgrades, Small Hearts, Retro Quiver, Universal Key | Original | .5 - 2 * Original #### Rupee Balancing Algorithm @@ -144,6 +150,9 @@ New item counter modified to show total # Bug Fixes and Notes. +* 0.3.1.8-u + * Fix for retro generation + * Shopsanity - rebalance pricing - later prices can be are higher * 0.3.1.7-u * TFH counter off in modes where it should be off * Fixed Big Bomb logic for inverted (bad merge) From ab5458cf1a17ef61f6f6eb0b4e8fedd271cbc6d0 Mon Sep 17 00:00:00 2001 From: aerinon Date: Tue, 27 Apr 2021 14:00:37 -0600 Subject: [PATCH 3/9] Version bump --- Main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main.py b/Main.py index 683ee0da..d83a7cf5 100644 --- a/Main.py +++ b/Main.py @@ -26,7 +26,7 @@ from Fill import sell_potions, sell_keys, balance_multiworld_progression, balanc from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops from Utils import output_path, parse_player_names -__version__ = '0.3.1.7-u' +__version__ = '0.3.1.8-u' class EnemizerError(RuntimeError): From 817833d0fab06ecc830195c3ea7075d94e157c48 Mon Sep 17 00:00:00 2001 From: aerinon Date: Thu, 29 Apr 2021 15:19:50 -0600 Subject: [PATCH 4/9] Standard generation bugs fixed --- DoorShuffle.py | 2 +- DungeonGenerator.py | 4 +++- RELEASENOTES.md | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/DoorShuffle.py b/DoorShuffle.py index cfeab8ac..4e4d4d3b 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -555,7 +555,7 @@ def find_portal_candidates(door_list, dungeon, need_passage=False, dead_end_allo if not dead_end_allowed: ret = [x for x in ret if not x.deadEnd] if standard: - ret = [x for x in ret if not x.standard_restrict] + ret = [x for x in ret if not x.standard_restricted] return ret diff --git a/DungeonGenerator.py b/DungeonGenerator.py index e320bbaf..37f77e7d 100644 --- a/DungeonGenerator.py +++ b/DungeonGenerator.py @@ -1249,7 +1249,6 @@ def create_dungeon_builders(all_sectors, connections_tuple, world, player, for r_name in ['Hyrule Dungeon Cellblock', 'Sanctuary']: # need to deliver zelda assign_sector(find_sector(r_name, candidate_sectors), current_dungeon, candidate_sectors, global_pole) - standard_stair_check(dungeon_map, current_dungeon, candidate_sectors, global_pole) entrances_map, potentials, connections = connections_tuple accessible_sectors, reverse_d_map = set(), {} for key in dungeon_entrances.keys(): @@ -1265,6 +1264,9 @@ def create_dungeon_builders(all_sectors, connections_tuple, world, player, if not sector: sector = find_sector(r_name, all_sectors) reverse_d_map[sector] = key + if world.mode[player] == 'standard': + current_dungeon = dungeon_map['Hyrule Castle'] + standard_stair_check(world, dungeon_map, current_dungeon, candidate_sectors, global_pole) complete_dungeons = {x: y for x, y in dungeon_map.items() if sum(len(sector.outstanding_doors) for sector in y.sectors) <= 0} [dungeon_map.pop(key) for key in complete_dungeons.keys()] diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 214d470d..2c20660d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -150,6 +150,8 @@ New item counter modified to show total # Bug Fixes and Notes. +* 0.3.1.9-u + * Generation improvements for standard * 0.3.1.8-u * Fix for retro generation * Shopsanity - rebalance pricing - later prices can be are higher From 70a3f2e53ea04c9b2f7fee6b0cdd2cd7b602fdf7 Mon Sep 17 00:00:00 2001 From: aerinon Date: Fri, 30 Apr 2021 15:55:00 -0600 Subject: [PATCH 5/9] Remove link sprite. Updated bob sprite --- CLI.py | 2 +- RELEASENOTES.md | 1 + data/sprites/official/001.link.1.zspr | Bin 28862 -> 0 bytes .../official/{bob.1.zspr => bob.2.zspr} | Bin 28872 -> 28845 bytes 4 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 data/sprites/official/001.link.1.zspr rename data/sprites/official/{bob.1.zspr => bob.2.zspr} (81%) diff --git a/CLI.py b/CLI.py index 2dcbd809..29dce609 100644 --- a/CLI.py +++ b/CLI.py @@ -185,7 +185,7 @@ def parse_settings(): "quickswap": False, "heartcolor": "red", "heartbeep": "normal", - "sprite": os.path.join(".", "data", "sprites", "official", "001.link.1.zspr"), + "sprite": None, "fastmenu": "normal", "ow_palettes": "default", "uw_palettes": "default", diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 2c20660d..2bc21111 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -152,6 +152,7 @@ New item counter modified to show total * 0.3.1.9-u * Generation improvements for standard + * Removed link sprite from repo * 0.3.1.8-u * Fix for retro generation * Shopsanity - rebalance pricing - later prices can be are higher diff --git a/data/sprites/official/001.link.1.zspr b/data/sprites/official/001.link.1.zspr deleted file mode 100644 index 4537afa84ba78f558056f2b91783708c5a22caa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28862 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 diff --git a/data/sprites/official/bob.1.zspr b/data/sprites/official/bob.2.zspr similarity index 81% rename from data/sprites/official/bob.1.zspr rename to data/sprites/official/bob.2.zspr index 25fc0410842412a00b47ef51149728e81ca7741a..5731ba7e20ee1bec8fc545ab2583ca0efe35fe9f 100644 GIT binary patch delta 48 zcmX@{ka6upMuDi{fFMQ@wbwTd8GxX`aH4=HcQ!*JLmrTqotU>-kZA$q=GTmO^8j-A B4)6c~ delta 75 zcmZ4cknzMrMuDi{fFQ Date: Sat, 1 May 2021 12:51:46 -0500 Subject: [PATCH 6/9] Added rule for SW back dropdown --- Rules.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Rules.py b/Rules.py index bac0724f..f6ea5a37 100644 --- a/Rules.py +++ b/Rules.py @@ -496,6 +496,7 @@ def default_rules(world, player): set_rule(world.get_entrance('Skull Woods Bush Rock (East)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player)) set_rule(world.get_entrance('Skull Woods Forgotten Bush (West)', player), lambda state: state.has_Pearl(player)) set_rule(world.get_entrance('Skull Woods Forgotten Bush (East)', player), lambda state: state.has_Pearl(player)) + set_rule(world.get_entrance('Skull Woods Second Section Hole', player), lambda state: state.has_Pearl(player)) set_rule(world.get_entrance('Bumper Cave Entrance Rock', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player)) set_rule(world.get_entrance('Skull Woods Pass Bush Row (West)', player), lambda state: state.has_Pearl(player)) set_rule(world.get_entrance('Skull Woods Pass Bush Row (East)', player), lambda state: state.has_Pearl(player)) From 63d77314e6d1ce98558df121a21b1ef74e56af67 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sun, 2 May 2021 19:56:53 -0500 Subject: [PATCH 7/9] Keep Link's position if within incoming gap --- Rom.py | 2 +- asm/owrando.asm | 160 ++++++++++++++++++------------------------ data/base2current.bps | Bin 136824 -> 136845 bytes 3 files changed, 71 insertions(+), 91 deletions(-) diff --git a/Rom.py b/Rom.py index 93b3ae26..4904774b 100644 --- a/Rom.py +++ b/Rom.py @@ -27,7 +27,7 @@ from EntranceShuffle import door_addresses, exit_ids JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '66ad331187e1874d56331f6cbe5b0d90' +RANDOMIZERBASEHASH = 'e0ea6c453588a8a35a59412ddf5ecdf2' class JsonRom(object): diff --git a/asm/owrando.asm b/asm/owrando.asm index 030f25d8..334e622e 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -37,21 +37,16 @@ dw $011E, $0100 ; Length of the range the camera can move on small screens OWEdgeTransition: { - php - phy + php : phy lda.l OWMode : beq + - jsl OWShuffle - bra .return + jsl OWShuffle : bra .return + jsl OWVanilla .return - ply - plp - rtl + ply : plp : rtl } OWVanilla: { - lda $02a4e3,X : ora $7ef3ca - rtl + lda $02a4e3,X : ora $7ef3ca : rtl } OWShuffle: { @@ -62,18 +57,14 @@ OWShuffle: ;down X = $34 ;compares X to determine direction of edge transition - phx - lsr $700 : cpx $700 : !blt .upOrLeft + phx : lsr $700 : cpx $700 : !blt .upOrLeft dex : cpx $700 : bne .downEdge - lda #$3 : sta $418 ;right - bra .setOWID + lda #$3 : sta $418 : bra .setOWID ;right .downEdge - lda #$1 : sta $418 ;down - bra .setOWID + lda #$1 : sta $418 : bra .setOWID ;down .upOrLeft inx : cpx $700 : bne .upEdge - lda #$2 : sta $418 ;left - bra .setOWID + lda #$2 : sta $418 : bra .setOWID ;left .upEdge lda #$0 : sta $418 ;up @@ -86,14 +77,12 @@ OWShuffle: asl $700 : pla ;x = offset to edgeoffsets table - sep #$20 - lda.l OWEdgeOffsets,x : and #$ff : beq .noTransition : pha ;get number of transitions + sep #$20 : lda.l OWEdgeOffsets,x : and #$ff : beq .noTransition : pha ;get number of transitions ;s1 = number of transitions left to check inx : lda.l OWEdgeOffsets,x ;record id of first transition in table ;multiply ^ by 26, 26bytes per record - sta $4202 : lda #26 : sta $4203 - ;do something else for 8 cycles before getting the result + sta $4202 : lda #26 : sta $4203 ;wait 8 cycles pla ;a = number of trans rep #$20 and #$00ff @@ -101,20 +90,15 @@ OWShuffle: .nextTransition pha - jsr OWSearchTransition - bcs .newDestination + jsr OWSearchTransition : bcs .newDestination + txa : !add #$001a : tax pla : dec : bne .nextTransition : bra .noTransition .newDestination - pla - sep #$30 - plx : lda $8a - bra .return + pla : sep #$30 : plx : lda $8a : bra .return .noTransition - sep #$30 - plx - jsl OWVanilla + sep #$30 : plx : jsl OWVanilla .return rtl @@ -123,82 +107,84 @@ OWSearchTransition: { ;A-16 XY-16 lda $418 : bne + ;north - lda.l OWNorthEdges,x : dec : inx #2 + lda.l OWNorthEdges,x : dec cmp $22 : !bge .nomatch - lda.l OWNorthEdges,x : cmp $22 : !blt .nomatch + lda.l OWNorthEdges+2,x : cmp $22 : !blt .nomatch ;MATCH - txa : !add #$0016 : tax : lda.l OWNorthEdges,x : tay ;y = record id of dest - sep #$20 : lda #OWSouthEdges>>16 : phb : pha : plb : ldx #OWSouthEdges : jsr OWNewDestination : plb ;x = address of table - bra .matchfound2 + lda.l OWNorthEdges+24,x : tay ;y = record id of dest + sep #$20 : lda #OWSouthEdges>>16 : phb : pha : plb + ldx #OWSouthEdges : jsr OWNewDestination : plb ;x = address of table + bra .matchfound + dec : bne + ;south - lda.l OWSouthEdges,x : dec : inx #2 - cmp $22 : !bge .nomatch - lda.l OWSouthEdges,x : cmp $22 : !blt .nomatch + lda.l OWSouthEdges,x : dec + cmp $22 : !bge .exitloop + lda.l OWSouthEdges+2,x : cmp $22 : !blt .exitloop ;MATCH - txa : !add #$0016 : tax : lda.l OWSouthEdges,x : tay ;y = record id of dest - sep #$20 : lda #OWNorthEdges>>16 : phb : pha : plb : phx : ldx #OWNorthEdges : jsr OWNewDestination : plx : plb ;x = address of table - .matchfound2 + lda.l OWSouthEdges+24,x : tay ;y = record id of dest + sep #$20 : lda #OWNorthEdges>>16 : phb : pha : plb : phx + ldx #OWNorthEdges : jsr OWNewDestination : plx : plb ;x = address of table bra .matchfound .nomatch bra .exitloop + dec : bne + ; west - lda.l OWWestEdges,x : dec : inx #2 + lda.l OWWestEdges,x : dec cmp $20 : !bge .exitloop - lda.l OWWestEdges,x : cmp $20 : !blt .exitloop + lda.l OWWestEdges+2,x : cmp $20 : !blt .exitloop ;MATCH - txa : !add #$0016 : tax : lda.l OWWestEdges,x : tay ;y = record id of dest - sep #$20 : lda #OWEastEdges>>16 : phb : pha : plb : ldx #OWEastEdges : jsr OWNewDestination : plb ;x = address of table + lda.l OWWestEdges+24,x : tay ;y = record id of dest + sep #$20 : lda #OWEastEdges>>16 : phb : pha : plb + ldx #OWEastEdges : jsr OWNewDestination : plb ;x = address of table bra .matchfound - + lda.l OWEastEdges,x : dec : inx #2 ;east + + lda.l OWEastEdges,x : dec ;east cmp $20 : !bge .exitloop - lda.l OWEastEdges,x : cmp $20 : !blt .exitloop + lda.l OWEastEdges+2,x : cmp $20 : !blt .exitloop ;MATCH - txa : !add #$0016 : tax : lda.l OWEastEdges,x : tay ;y = record id of dest - sep #$20 : lda #OWWestEdges>>16 : phb : pha : plb : ldx #OWWestEdges : jsr OWNewDestination : plb ;x = address of table + lda.l OWEastEdges+24,x : tay ;y = record id of dest + sep #$20 : lda #OWWestEdges>>16 : phb : pha : plb + ldx #OWWestEdges : jsr OWNewDestination : plb ;x = address of table .matchfound plx : pla : pea $0001 : phx - txa : !add #$0010 : tax : sec : rts + sec : rts .exitloop - txa : !add #$0018 : tax : clc : rts + clc : rts } OWNewDestination: { - tya : sta $4202 : lda #26 : sta $4203 - ;do something else for 8 cycles before getting the result - rep #$20 - txa : !add #$0006 - adc $4216 : tax ;a = offset to dest record - lda.w $0000,x : sta $06 ; set coord - inx #2 : lda.w $0000,x : sta $04 ;save dest OW slot/ID - ;I thought I'd need some of these values below, but I likely dont need any of them - inx #2 ;scroll - inx #2 ;cam - inx #2 ;LinkOpp - inx #2 ;ScrollOpp - inx #2 ;CamOpp - inx #2 : lda.w $0000,x : sta $84;VRAM - SEC : SBC #$0400 : AND #$0F00 : ASL : XBA : STA $88 + tya : sta $4202 : lda #26 : sta $4203 ;wait 8 cycles + rep #$20 : txa : nop : !add $4216 : tax ;a = offset to dest record + lda.w $0006,x : sta $06 ; set coord + lda.w $0008,x : sta $04 ;save dest OW slot/ID + lda.w $0014,x : sta $84;VRAM + LDA $84 : SEC : SBC #$0400 : AND #$0F00 : ASL : XBA : STA $88 LDA $84 : SEC : SBC #$0010 : AND #$003E : LSR : STA $86 - inx #2 ;: lda.w $0000,x : and #$00ff : sta $624 ;UnknownY - inx ;: lda.w $0000,x : and #$00ff : sta $628 ;UnknownX - - sep #$10 : ldy $418 + ;lda.w $0016,x : and #$00ff : sta $624 ;UnknownY + ;lda.w $0017,x : and #$00ff : sta $628 ;UnknownX ;;22 e0 e2 61c 61e - X ;;20 e6 e8 618 61a - Y - ldx OWCoordIndex,y : lda $20,x : and #$fe00 : pha : lda $20,x : and #$01ff : pha ;s1 = relative cur, s3 = ow cur + ;keep current position if within incoming gap + lda.w $0000,x : and #$01ff : pha : lda.w $0002,x : and #$01ff : pha + ldy $20 : lda $418 : dec #2 : bpl + : ldy $22 + + tya : and #$01ff : cmp 3,s : !blt .adjustMainAxis + dec : cmp 1,s : !bge .adjustMainAxis + inc : pha : lda $06 : and #$fe00 : !add 1,s : sta $06 : pla + + .adjustMainAxis + pla : pla : sep #$10 : ldy $418 + ldx OWCoordIndex,y : lda $20,x : and #$fe00 : pha + lda $20,x : and #$01ff : pha ;s1 = relative cur, s3 = ow cur lda $06 : and #$fe00 : !sub 3,s : pha ;set coord, s1 = ow diff, s3 = relative cur, s5 = ow cur lda $06 : and #$01ff : !sub 3,s : pha ;s1 = rel diff, s3 = ow diff, s5 = relative cur, s7 = ow cur lda $06 : sta $20,x : and #$fe00 : sta $06 ;set coord - ldx OWBGIndex,y : lda $e2,x : !add 1,s : !add 3,s : sta $e2,x - ldx OWCameraIndex,y : lda $618,x : !add 1,s : !add 3,s : sta $618,x - ldx OWCameraIndex,y : lda $61a,x : !add 1,s : !add 3,s : sta $61a,x - pla : asl : php : ror : plp : ror - pha : ldx OWBGIndex,y : lda $e0,x : !add 1,s : sta $e0,x - pla : ldx OWBGIndex,y : lda $e0,x : !add 1,s : sta $e0,x - pla : pla : pla + ldx OWBGIndex,y : lda $e2,x : !add 1,s : adc 3,s : sta $e2,x + ldx OWCameraIndex,y : lda $618,x : !add 1,s : adc 3,s : sta $618,x + ldx OWCameraIndex,y : lda $61a,x : !add 1,s : adc 3,s : sta $61a,x + pla : asl : php : ror : plp : ror : pha + ldx OWBGIndex,y : lda $e0,x : !add 1,s : sta $e0,x : pla + ldx OWBGIndex,y : lda $e0,x : !add 1,s : sta $e0,x : pla + pla : pla ;fix camera unlock lda $e2,x : !sub $06 : bpl + @@ -212,16 +198,15 @@ OWNewDestination: ldx.w OWCameraIndex,y : lda $0618,x : !add 1,s : sta $0618,x lda $061a,x : !add 1,s : sta $061a,x : pla - ;opposite coord stuff .adjustOppositeAxis + ;opposite coord stuff rep #$30 : lda OWOppDirectionOffset,y : and #$00ff : bit #$0080 : beq + ora #$ff00 ;extend 8-bit negative to 16-bit negative - + pha - cpy #$0002 : lda $700 : !bge + + + pha : cpy #$0002 : lda $700 : !bge + and #$00f0 : pha : lda $04 : asl : and #$0070 : !sub 1,s : tax : pla : txa !add 1,s : tax : pla : txa : asl : asl : asl : asl : asl : pha : bra ++ + and #$000f : pha : lda $04 : asl : and #$000f : !sub 1,s : !add 3,s - sep #$10 : tax : phx : ldx #$0 : phx : rep #$10 : pla : plx : plx : pha + sep #$10 : tax : phx : ldx #$0 : phx : rep #$10 : pla : plx : plx : pha ++ sep #$10 : ldx OWOppCoordIndex,y : lda $20,x : !add 1,s : sta $20,x ;set coord ldx OWOppBGIndex,y : lda $e2,x : !add 1,s : sta $e2,x @@ -230,14 +215,9 @@ OWNewDestination: ldx OWOppBGIndex,y : lda $e0,x : !add 1,s : sta $e0,x lda $418 : asl : tax : lda $610,x : !add 1,s : sta $610,x : pla - sep #$30 - lda OWOppSlotOffset,y : !add $04 : asl : and #$7f : sta $700 - sep #$20 - - lda $05 : sta $8a ;: and #$40 : sta.l $7ef3ca ;removed setting DW flag - rep #$30 - - rts + sep #$30 : lda OWOppSlotOffset,y : !add $04 : asl : and #$7f : sta $700 + sep #$20 : lda $05 : sta $8a ;: and #$40 : sta.l $7ef3ca ;removed setting DW flag + rep #$30 : rts } ;Data diff --git a/data/base2current.bps b/data/base2current.bps index b53e6c20ff2c9b0b9b271f45122d07c5217cd449..fded3b17a1c2fa5c9ead792eedcbfa3b383c9799 100644 GIT binary patch delta 596 zcmW-cPiWI%7{b%J36@a7C0IkS%J|!0%^BjDZCUM^ zqo-Uzfo#2jC};+nxjEE@#dkqgZk1?T{e%w63TyaOPPdd5!#96Xr_0IJLG-+wbmi;=pVG_WH`}_b~2!hxn>bvMb}x}2@TxIsN;IXPz+}N zl8%hL#FI5CE)45f_J!j*RTF0gx9+XwM-UGUFC+LZ#mGkIZm6`iN-*$$S z3JG|!LIK_utqcG@o_cV_gJR(QlyEc#fWJ*}70Z9gGWaEyby%{#C2Vh6=lj`BLhW^N zInodQ(qV!pA%v!5m9}X>-e9oF;n^k@eK$QQ9o(~aNPJdfNwHMpNsW>>Oq>f_lcwg7 zqZOKzww^B2q!^F6QqyS{3GGy5G{T85pY38UxeJS*(hzQ#!SAHwnAnX{ndRUfffE&% z)PoYg3g~o>)EJq5GAv7<7lMbT>MlAFPlr=+aVzn0p&EGWk&E4zvxnR}3n+mu)$4Bn zE@!j*?@3>qLj;fxnkR=I#S;A}Hjp<(h*s_*F@zQer=@Y}Y-^M{V%nK@H83(W*?KeC QBKq8v_h)N+_REdIe>l?xsQ>@~ delta 537 zcmWlQPiWI%7{OB*I@^a{Tyr909D@7a zh*AK6g_hNhInU?J(MwxNo24$d$$--1QRG3EWtr|3!l?r}PY!~Alzm$mwG3?z?K^CU z**$&bwjVJmVf70ObzIJyL=+>Uj+Cjpk Date: Sun, 2 May 2021 20:29:23 -0500 Subject: [PATCH 8/9] Removed unnecessary data --- BaseClasses.py | 26 +- OWEdges.py | 566 ++++++++++++++++++++-------------------- Rom.py | 11 +- asm/owrando.asm | 590 +++++++++++++++++++++--------------------- data/base2current.bps | Bin 136845 -> 136650 bytes 5 files changed, 585 insertions(+), 608 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index b2dbf047..b8a37691 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -1503,11 +1503,11 @@ class OWEdge(object): def getAddress(self): base_address = { Direction.North: 0x153800, - Direction.South: 0x153800 + (0x42 * 26), - Direction.West: 0x153800 + (0x84 * 26), - Direction.East: 0x153800 + (0xcf * 26), + Direction.South: 0x153800 + (0x42 * 16), + Direction.West: 0x153800 + (0x84 * 16), + Direction.East: 0x153800 + (0xcf * 16), } - return base_address[self.direction] + (self.edge_id * 26) + return base_address[self.direction] + (self.edge_id * 16) def getTarget(self): return self.dest.edge_id @@ -1515,24 +1515,8 @@ class OWEdge(object): def dead_end(self): self.deadEnd = True - def coordInfo(self, vram_loc, scrollY, scrollX, linkY, linkX, camY, camX, unkY, unkX): - if self.direction in [Direction.North, Direction.South]: - self.midpoint = linkX - self.linkOpp = linkY - self.scrollPos = scrollX - self.scrollOpp = scrollY - self.camPos = camX - self.camOpp = camY - elif self.direction in [Direction.West, Direction.East]: - self.midpoint = linkY - self.linkOpp = linkX - self.scrollPos = scrollY - self.scrollOpp = scrollX - self.camPos = camY - self.camOpp = camX + def coordInfo(self, vram_loc): self.vramLoc = vram_loc - self.unknownX = unkX - self.unknownY = unkY return self def __eq__(self, other): diff --git a/OWEdges.py b/OWEdges.py index efba1ef6..a0c78cff 100644 --- a/OWEdges.py +++ b/OWEdges.py @@ -19,289 +19,289 @@ Hz = PolSlot.EastWest def create_owedges(world, player): edges = [ - # name, owID,dir,type,edge_id,(owSlot) #(vram, scrollY, scrollX, linkY, linkX, camY, camX, unk1, unk2) - create_owedge(player, 'Lost Woods NW', 0x00, No, Ld, 0x00) .coordInfo(0x0284, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lost Woods SW', 0x00, So, Ld, 0x01, 0x08).coordInfo(0x2000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lost Woods SC', 0x00, So, Ld, 0x02, 0x08).coordInfo(0x2020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lost Woods SE', 0x00, So, Ld, 0x03, 0x09).coordInfo(0x2060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lost Woods EN', 0x00, Ea, Ld, 0x00, 0x01).coordInfo(0x0180, 0x0024, 0x0400, 0x0088, 0x0405, 0x0093, 0x047d, 0x0c, 0x00), - create_owedge(player, 'Lumberjack SW', 0x02, So, Ld, 0x00) .coordInfo(0x100a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lumberjack WN', 0x02, We, Ld, 0x00) .coordInfo(0x00e0, 0x0028, 0x0300, 0x0088, 0x03e8, 0x0097, 0x0385, 0xf8, 0x00), - create_owedge(player, 'West Death Mountain EN', 0x03, Ea, Ld, 0x01, 0x04).coordInfo(0x0180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'West Death Mountain ES', 0x03, Ea, Ld, 0x03, 0x0c).coordInfo(0x1780, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'East Death Mountain WN', 0x05, We, Ld, 0x01, 0x05).coordInfo(0x0060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'East Death Mountain WS', 0x05, We, Ld, 0x03, 0x0d).coordInfo(0x1660, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'East Death Mountain EN', 0x05, Ea, Ld, 0x02, 0x06).coordInfo(0x0180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Death Mountain TR Pegs WN', 0x07, We, Ld, 0x02) .coordInfo(0x00e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'DM Ascent NW', 0x0a, No, Ld, 0x01) .coordInfo(0x180a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'DM Ascent SE', 0x0a, So, Ld, 0x04) .coordInfo(0x1012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Zora Approach NE', 0x0f, No, Ld, 0x02) .coordInfo(0x009a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Zora Approach SE', 0x0f, So, Ld, 0x05) .coordInfo(0x1020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lost Woods Pass NW', 0x10, No, Ld, 0x03) .coordInfo(0x1800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lost Woods Pass NE', 0x10, No, Ld, 0x04) .coordInfo(0x181e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lost Woods Pass SW', 0x10, So, Ld, 0x06) .coordInfo(0x1002, 0x0600, 0x0006, 0x0603, 0x0088, 0x066d, 0x0093, 0x00, 0xfa), - create_owedge(player, 'Lost Woods Pass SE', 0x10, So, Ld, 0x07) .coordInfo(0x101a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Fortune NE', 0x11, No, Ld, 0x05) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Fortune SC', 0x11, So, Ld, 0x08) .coordInfo(0x1014, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Fortune EN', 0x11, Ea, Ld, 0x04) .coordInfo(0x00c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Fortune ES', 0x11, Ea, Ld, 0x05) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Pond NE', 0x12, No, Ld, 0x06) .coordInfo(0x1812, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Pond SW', 0x12, So, Ld, 0x09) .coordInfo(0x1006, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Pond SE', 0x12, So, Ld, 0x0a) .coordInfo(0x1016, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Pond WN', 0x12, We, Ld, 0x04) .coordInfo(0x00e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Pond WS', 0x12, We, Ld, 0x05) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Pond EN', 0x12, Ea, Ld, 0x06) .coordInfo(0x0340, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Pond ES', 0x12, Ea, Ld, 0x07) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Sanctuary WN', 0x13, We, Ld, 0x06) .coordInfo(0x0360, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Sanctuary WS', 0x13, We, Ld, 0x07) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Sanctuary EC', 0x13, Ea, Ld, 0x08) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Graveyard WC', 0x14, We, Ld, 0x08) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Graveyard EC', 0x14, Ea, Ld, 0x09) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Useless Fairy SW', 0x15, So, Ld, 0x0b) .coordInfo(0x1004, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Useless Fairy SC', 0x15, So, Wr, 0x0c) .coordInfo(0x1018, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Useless Fairy SE', 0x15, So, Ld, 0x0d) .coordInfo(0x1020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Useless Fairy WC', 0x15, We, Ld, 0x09) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Useless Fairy EN', 0x15, Ea, Wr, 0x0a) .coordInfo(0x01c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Useless Fairy EC', 0x15, Ea, Ld, 0x0b) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Useless Fairy ES', 0x15, Ea, Ld, 0x0c) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Potion Shop WN', 0x16, We, Wr, 0x0a) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Potion Shop WC', 0x16, We, Ld, 0x0b) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Potion Shop WS', 0x16, We, Ld, 0x0c) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Potion Shop EN', 0x16, Ea, Wr, 0x0d) .coordInfo(0x00c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Potion Shop EC', 0x16, Ea, Ld, 0x0e) .coordInfo(0x01c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Zora Warning NE', 0x17, No, Ld, 0x07) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Zora Warning WN', 0x17, We, Wr, 0x0d) .coordInfo(0x00e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Zora Warning WC', 0x17, We, Ld, 0x0e) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko NW', 0x18, No, Ld, 0x08) .coordInfo(0x1802, 0x051e, 0x0006, 0x05e4, 0x0088, 0x058d, 0x0093, 0x00, 0xfa), - create_owedge(player, 'Kakariko NC', 0x18, No, Ld, 0x09) .coordInfo(0x181a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko NE', 0x18, No, Ld, 0x0a, 0x19).coordInfo(0x1854, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko SE', 0x18, So, Ld, 0x0f, 0x21).coordInfo(0x2060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko ES', 0x18, Ea, Ld, 0x10, 0x21).coordInfo(0x1680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Forgotten Forest NW', 0x1a, No, Ld, 0x0b) .coordInfo(0x1806, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Forgotten Forest NE', 0x1a, No, Ld, 0x0c) .coordInfo(0x1816, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Forgotten Forest ES', 0x1a, Ea, Ld, 0x0f) .coordInfo(0x06c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hyrule Castle SW', 0x1b, So, Ld, 0x10, 0x23).coordInfo(0x2002, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hyrule Castle SE', 0x1b, So, Ld, 0x11, 0x24).coordInfo(0x2054, 0x091e, 0x089e, 0x09e0, 0x0924, 0x098d, 0x092b, 0x00, 0x02), - create_owedge(player, 'Hyrule Castle WN', 0x1b, We, Ld, 0x0f) .coordInfo(0x0660, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hyrule Castle ES', 0x1b, Ea, Ld, 0x11, 0x24).coordInfo(0x1280, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Wooden Bridge NW', 0x1d, No, Ld, 0x0d) .coordInfo(0x1804, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Wooden Bridge NC', 0x1d, No, Wr, 0x0e) .coordInfo(0x1818, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Wooden Bridge NE', 0x1d, No, Ld, 0x0f) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Wooden Bridge SW', 0x1d, So, Ld, 0x0e) .coordInfo(0x1006, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Eastern Palace SW', 0x1e, So, Ld, 0x13, 0x26).coordInfo(0x2002, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Eastern Palace SE', 0x1e, So, Ld, 0x14, 0x27).coordInfo(0x2060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Blacksmith WS', 0x22, We, Ld, 0x10) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Sand Dune NW', 0x25, No, Ld, 0x10) .coordInfo(0x1806, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Sand Dune SC', 0x25, So, Ld, 0x12) .coordInfo(0x100e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Sand Dune WN', 0x25, We, Ld, 0x11) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Maze Race ES', 0x28, Ea, Ld, 0x12) .coordInfo(0x0940, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Suburb NE', 0x29, No, Ld, 0x11) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Suburb WS', 0x29, We, Ld, 0x12) .coordInfo(0x0960, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Kakariko Suburb ES', 0x29, Ea, Ld, 0x13) .coordInfo(0x0940, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Flute Boy SW', 0x2a, So, Ld, 0x15) .coordInfo(0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Flute Boy SC', 0x2a, So, Ld, 0x16) .coordInfo(0x100c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Flute Boy WS', 0x2a, We, Ld, 0x13) .coordInfo(0x0960, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Central Bonk Rock NW', 0x2b, No, Ld, 0x12) .coordInfo(0x1802, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Central Bonk Rock SW', 0x2b, So, Ld, 0x17) .coordInfo(0x1004, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Central Bonk Rock EN', 0x2b, Ea, Ld, 0x14) .coordInfo(0x0340, 0x0a5e, 0x0800, 0x0ac0, 0x0805, 0x0acb, 0x087d, 0x00, 0x00), - create_owedge(player, 'Central Bonk Rock EC', 0x2b, Ea, Ld, 0x15) .coordInfo(0x05c0, 0x0aba, 0x0800, 0x0b18, 0x0805, 0x0b27, 0x087d, 0x06, 0x00), - create_owedge(player, 'Central Bonk Rock ES', 0x2b, Ea, Ld, 0x16) .coordInfo(0x08c0, 0x0b1e, 0x0800, 0x0b8c, 0x0805, 0x0b8b, 0x087d, 0x00, 0x00), - create_owedge(player, 'Links House NE', 0x2c, No, Ld, 0x13) .coordInfo(0x1814, 0x091e, 0x089e, 0x09e4, 0x0924, 0x098d, 0x092b, 0x00, 0x02), - create_owedge(player, 'Links House SC', 0x2c, So, Ld, 0x18) .coordInfo(0x100e, 0x0c00, 0x0862, 0x00c03, 0x008e0, 0x00c6d, 0x08e7, 0x00, 0xfe), - create_owedge(player, 'Links House WN', 0x2c, We, Ld, 0x14) .coordInfo(0x0360, 0x0a5e, 0x0700, 0x0ac0, 0x07e8, 0x0acb, 0x0785, 0x00, 0x00), - create_owedge(player, 'Links House WC', 0x2c, We, Ld, 0x15) .coordInfo(0x05e0, 0x0aba, 0x0700, 0x0b18, 0x07e9, 0x0b27, 0x0785, 0x06, 0x00), - create_owedge(player, 'Links House WS', 0x2c, We, Ld, 0x16) .coordInfo(0x08a0, 0x0b1e, 0x0700, 0x0b8c, 0x07e9, 0x0b8b, 0x0785, 0x00, 0x00), - create_owedge(player, 'Links House ES', 0x2c, Ea, Ld, 0x17) .coordInfo(0x08c0, 0x0b1e, 0x0a00, 0x0b80, 0x0a05, 0x0b8b, 0x0a7d, 0x00, 0x00), - create_owedge(player, 'Stone Bridge NC', 0x2d, No, Ld, 0x14) .coordInfo(0x180e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Stone Bridge SC', 0x2d, So, Ld, 0x19) .coordInfo(0x100c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Stone Bridge WC', 0x2d, We, Wr, 0x17) .coordInfo(0x061c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Stone Bridge WS', 0x2d, We, Ld, 0x18) .coordInfo(0x08e0, 0x0b1e, 0x0900, 0x0b80, 0x09e9, 0x0b8b, 0x0985, 0x00, 0x00), - create_owedge(player, 'Stone Bridge EN', 0x2d, Ea, Ld, 0x18) .coordInfo(0x01c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Stone Bridge EC', 0x2d, Ea, Wr, 0x19) .coordInfo(0x0640, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Tree Line NW', 0x2e, No, Ld, 0x15) .coordInfo(0x1802, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Tree Line SC', 0x2e, So, Wr, 0x1a) .coordInfo(0x101a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Tree Line SE', 0x2e, So, Ld, 0x1b) .coordInfo(0x1020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Tree Line WN', 0x2e, We, Ld, 0x19) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Tree Line WC', 0x2e, We, Wr, 0x1a) .coordInfo(0x0660, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Eastern Nook NE', 0x2f, No, Ld, 0x16) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Desert EC', 0x30, Ea, Ld, 0x1e, 0x39).coordInfo(0x1480, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Desert ES', 0x30, Ea, Ld, 0x1f, 0x39).coordInfo(0x1980, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Cave 45 NW', 0x32, No, Ld, 0x17) .coordInfo(0x1800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Cave 45 NC', 0x32, No, Ld, 0x18) .coordInfo(0x180c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Cave 45 EC', 0x32, Ea, Ld, 0x1a) .coordInfo(0x05c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'C Whirlpool NW', 0x33, No, Ld, 0x19) .coordInfo(0x1804, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'C Whirlpool SC', 0x33, So, Ld, 0x1c) .coordInfo(0x1016, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'C Whirlpool WC', 0x33, We, Ld, 0x1b) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'C Whirlpool EN', 0x33, Ea, Ld, 0x1b) .coordInfo(0x02c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'C Whirlpool EC', 0x33, Ea, Wr, 0x1c) .coordInfo(0x05c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'C Whirlpool ES', 0x33, Ea, Ld, 0x1d) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Statues NC', 0x34, No, Ld, 0x1a) .coordInfo(0x180e, 0x0b1e, 0x0862, 0x0be4, 0x08e0, 0x0b8d, 0x08e7, 0x00, 0xfe), - create_owedge(player, 'Statues SC', 0x34, So, Ld, 0x1d) .coordInfo(0x1010, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Statues WN', 0x34, We, Ld, 0x1c) .coordInfo(0x02e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Statues WC', 0x34, We, Wr, 0x1d) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Statues WS', 0x34, We, Ld, 0x1e) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lake Hylia NW', 0x35, No, Ld, 0x1b) .coordInfo(0x180c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lake Hylia NC', 0x35, No, Wr, 0x1c, 0x36).coordInfo(0x185a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lake Hylia NE', 0x35, No, Ld, 0x1d, 0x36).coordInfo(0x1860, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lake Hylia WS', 0x35, We, Ld, 0x24, 0x3d).coordInfo(0x1860, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lake Hylia EC', 0x35, Ea, Wr, 0x24, 0x3e).coordInfo(0x1680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Lake Hylia ES', 0x35, Ea, Ld, 0x25, 0x3e).coordInfo(0x1880, 0x0f1e, 0x0e00, 0x0f94, 0x0e05, 0x0f8b, 0x0e85, 0x00, 0x00), - create_owedge(player, 'Ice Rod Cave SW', 0x37, So, Wr, 0x1e) .coordInfo(0x1002, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Ice Rod Cave SE', 0x37, So, Ld, 0x1f) .coordInfo(0x101c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Purple Chest WC', 0x3a, We, Ld, 0x1f) .coordInfo(0x03e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Purple Chest WS', 0x3a, We, Ld, 0x20) .coordInfo(0x0860, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Purple Chest EC', 0x3a, Ea, Ld, 0x20) .coordInfo(0x0640, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Purple Chest ES', 0x3a, Ea, Ld, 0x21) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dam NC', 0x3b, No, Ld, 0x1e) .coordInfo(0x1816, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dam WC', 0x3b, We, Ld, 0x21) .coordInfo(0x0660, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dam WS', 0x3b, We, Ld, 0x22) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dam EC', 0x3b, Ea, Ld, 0x22) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'South Pass NC', 0x3c, No, Ld, 0x1f) .coordInfo(0x1810, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'South Pass WC', 0x3c, We, Ld, 0x23) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'South Pass ES', 0x3c, Ea, Ld, 0x23) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Octoballoon NW', 0x3f, No, Wr, 0x20) .coordInfo(0x1802, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Octoballoon NE', 0x3f, No, Ld, 0x21) .coordInfo(0x181c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Octoballoon WC', 0x3f, We, Wr, 0x25) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Octoballoon WS', 0x3f, We, Ld, 0x26) .coordInfo(0x0860, 0x0f1e, 0x0d00, 0x0f94, 0x0de9, 0x0f8b, 0x0d85, 0x00, 0x00), - create_owedge(player, 'Skull Woods SW', 0x40, So, Ld, 0x21, 0x48).coordInfo(0x2000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Skull Woods SC', 0x40, So, Ld, 0x22, 0x48).coordInfo(0x2020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Skull Woods SE', 0x40, So, Ld, 0x23, 0x49).coordInfo(0x2060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Skull Woods EN', 0x40, Ea, Ld, 0x26, 0x41).coordInfo(0x0180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lumberjack SW', 0x42, So, Ld, 0x20) .coordInfo(0x100a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lumberjack WN', 0x42, We, Ld, 0x27) .coordInfo(0x00e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'West Dark Death Mountain EN', 0x43, Ea, Ld, 0x27, 0x44).coordInfo(0x0180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'West Dark Death Mountain ES', 0x43, Ea, Ld, 0x29, 0x4c).coordInfo(0x1780, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'East Dark Death Mountain WN', 0x45, We, Ld, 0x28) .coordInfo(0x0060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'East Dark Death Mountain WS', 0x45, We, Ld, 0x2a, 0x4d).coordInfo(0x1660, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'East Dark Death Mountain EN', 0x45, Ea, Ld, 0x28, 0x46).coordInfo(0x0180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Turtle Rock WN', 0x47, We, Ld, 0x29) .coordInfo(0x00e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Bumper Cave NW', 0x4a, No, Ld, 0x22) .coordInfo(0x180a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Bumper Cave SE', 0x4a, So, Ld, 0x24) .coordInfo(0x1012, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Catfish SE', 0x4f, So, Ld, 0x25) .coordInfo(0x1020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Skull Woods Pass NW', 0x50, No, Ld, 0x23) .coordInfo(0x181e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Skull Woods Pass NE', 0x50, No, Ld, 0x24) .coordInfo(0x1800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Skull Woods Pass SW', 0x50, So, Ld, 0x26) .coordInfo(0x1002, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Skull Woods Pass SE', 0x50, So, Ld, 0x27) .coordInfo(0x101a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Fortune NE', 0x51, No, Ld, 0x25) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Fortune SC', 0x51, So, Ld, 0x28) .coordInfo(0x1014, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Fortune EN', 0x51, Ea, Ld, 0x2a) .coordInfo(0x00c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Fortune ES', 0x51, Ea, Ld, 0x2b) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Outcast Pond NE', 0x52, No, Ld, 0x26) .coordInfo(0x1812, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Outcast Pond SW', 0x52, So, Ld, 0x29) .coordInfo(0x1006, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Outcast Pond SE', 0x52, So, Ld, 0x2a) .coordInfo(0x1016, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Outcast Pond WN', 0x52, We, Ld, 0x2b) .coordInfo(0x00e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Outcast Pond WS', 0x52, We, Ld, 0x2c) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Outcast Pond EN', 0x52, Ea, Ld, 0x2c) .coordInfo(0x0340, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Outcast Pond ES', 0x52, Ea, Ld, 0x2d) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Chapel WN', 0x53, We, Ld, 0x2d) .coordInfo(0x0360, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Chapel WS', 0x53, We, Ld, 0x2e) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Chapel EC', 0x53, Ea, Ld, 0x2e) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Graveyard WC', 0x54, We, Ld, 0x2f) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Graveyard ES', 0x54, Ea, Ld, 0x2f) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Qirn Jump SW', 0x55, So, Ld, 0x2b) .coordInfo(0x1004, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Qirn Jump SC', 0x55, So, Wr, 0x2c) .coordInfo(0x1018, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Qirn Jump SE', 0x55, So, Ld, 0x2d) .coordInfo(0x1020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Qirn Jump WC', 0x55, We, Ld, 0x30) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Qirn Jump EN', 0x55, Ea, Wr, 0x30) .coordInfo(0x01c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Qirn Jump EC', 0x55, Ea, Ld, 0x31) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Qirn Jump ES', 0x55, Ea, Ld, 0x32) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Witch WN', 0x56, We, Wr, 0x31) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Witch WC', 0x56, We, Ld, 0x32) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Witch WS', 0x56, We, Ld, 0x33) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Witch EN', 0x56, Ea, Wr, 0x33) .coordInfo(0x00c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Witch EC', 0x56, Ea, Ld, 0x34) .coordInfo(0x01c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Catfish Approach NE', 0x57, No, Ld, 0x27) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Catfish Approach WN', 0x57, We, Wr, 0x34) .coordInfo(0x00e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Catfish Approach WC', 0x57, We, Ld, 0x35) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Village of Outcasts NW', 0x58, No, Ld, 0x28) .coordInfo(0x1802, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Village of Outcasts NC', 0x58, No, Ld, 0x29) .coordInfo(0x181a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Village of Outcasts NE', 0x58, No, Ld, 0x2a, 0x59).coordInfo(0x1854, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Village of Outcasts SE', 0x58, So, Ld, 0x2f, 0x61).coordInfo(0x2060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Village of Outcasts ES', 0x58, Ea, Ld, 0x35, 0x61).coordInfo(0x1680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Shield Shop NW', 0x5a, No, Ld, 0x2b) .coordInfo(0x1806, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Shield Shop NE', 0x5a, No, Ld, 0x2c) .coordInfo(0x1816, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Pyramid SW', 0x5b, So, Ld, 0x30, 0x63).coordInfo(0x2002, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Pyramid SE', 0x5b, So, Ld, 0x31, 0x64).coordInfo(0x2054, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Pyramid ES', 0x5b, Ea, Ld, 0x36, 0x64).coordInfo(0x1280, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Broken Bridge NW', 0x5d, No, Ld, 0x2d) .coordInfo(0x1804, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Broken Bridge NC', 0x5d, No, Wr, 0x2e) .coordInfo(0x1818, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Broken Bridge NE', 0x5d, No, Ld, 0x2f) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Broken Bridge SW', 0x5d, So, Ld, 0x2e) .coordInfo(0x1006, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Palace of Darkness SW', 0x5e, So, Ld, 0x33, 0x66).coordInfo(0x2002, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Palace of Darkness SE', 0x5e, So, Ld, 0x34, 0x67).coordInfo(0x2060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hammer Pegs WS', 0x62, We, Ld, 0x36) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Dune NW', 0x65, No, Ld, 0x30) .coordInfo(0x1806, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Dune SC', 0x65, So, Ld, 0x32) .coordInfo(0x100e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Dune WN', 0x65, We, Ld, 0x37) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dig Game EC', 0x68, Ea, Ld, 0x37) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dig Game ES', 0x68, Ea, Ld, 0x38) .coordInfo(0x0940, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Frog NE', 0x69, No, Ld, 0x31) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Frog WC', 0x69, We, Ld, 0x38) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Frog WS', 0x69, We, Ld, 0x39) .coordInfo(0x0960, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Frog ES', 0x69, Ea, Ld, 0x39) .coordInfo(0x0940, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Stumpy SW', 0x6a, So, Ld, 0x35) .coordInfo(0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Stumpy SC', 0x6a, So, Ld, 0x36) .coordInfo(0x100c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Stumpy WS', 0x6a, We, Ld, 0x3a) .coordInfo(0x0960, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Bonk Rock NW', 0x6b, No, Ld, 0x32) .coordInfo(0x1802, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Bonk Rock SW', 0x6b, So, Ld, 0x37) .coordInfo(0x1004, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Bonk Rock EN', 0x6b, Ea, Ld, 0x3a) .coordInfo(0x0340, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Bonk Rock EC', 0x6b, Ea, Ld, 0x3b) .coordInfo(0x05c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Bonk Rock ES', 0x6b, Ea, Ld, 0x3c) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Big Bomb Shop NE', 0x6c, No, Ld, 0x33) .coordInfo(0x1814, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Big Bomb Shop SC', 0x6c, So, Ld, 0x38) .coordInfo(0x100e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Big Bomb Shop WN', 0x6c, We, Ld, 0x3b) .coordInfo(0x0360, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Big Bomb Shop WC', 0x6c, We, Ld, 0x3c) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Big Bomb Shop WS', 0x6c, We, Ld, 0x3d) .coordInfo(0x08a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Big Bomb Shop ES', 0x6c, Ea, Ld, 0x3d) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hammer Bridge NC', 0x6d, No, Ld, 0x34) .coordInfo(0x180e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hammer Bridge SC', 0x6d, So, Ld, 0x39) .coordInfo(0x100c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hammer Bridge WS', 0x6d, We, Ld, 0x3e) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hammer Bridge EN', 0x6d, Ea, Ld, 0x3e) .coordInfo(0x01c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hammer Bridge EC', 0x6d, Ea, Wr, 0x3f) .coordInfo(0x0640, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Tree Line NW', 0x6e, No, Ld, 0x35) .coordInfo(0x1802, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Tree Line SC', 0x6e, So, Wr, 0x3a) .coordInfo(0x101a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Tree Line SE', 0x6e, So, Ld, 0x3b) .coordInfo(0x1020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Tree Line WN', 0x6e, We, Ld, 0x3f) .coordInfo(0x01e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Tree Line WC', 0x6e, We, Wr, 0x40) .coordInfo(0x0660, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Palace of Darkness Nook NE', 0x6f, No, Ld, 0x36) .coordInfo(0x1820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Circle of Bushes NW', 0x72, No, Ld, 0x37) .coordInfo(0x1800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Circle of Bushes NC', 0x72, No, Ld, 0x38) .coordInfo(0x180c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Circle of Bushes EC', 0x72, Ea, Ld, 0x40) .coordInfo(0x05c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark C Whirlpool NW', 0x73, No, Ld, 0x39) .coordInfo(0x1804, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark C Whirlpool SC', 0x73, So, Ld, 0x3c) .coordInfo(0x1016, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark C Whirlpool WC', 0x73, We, Ld, 0x41) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark C Whirlpool EN', 0x73, Ea, Ld, 0x41) .coordInfo(0x02c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark C Whirlpool EC', 0x73, Ea, Wr, 0x42) .coordInfo(0x05c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark C Whirlpool ES', 0x73, Ea, Ld, 0x43) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hype Cave NC', 0x74, No, Ld, 0x3a) .coordInfo(0x180e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hype Cave SC', 0x74, So, Ld, 0x3d) .coordInfo(0x1010, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hype Cave WN', 0x74, We, Ld, 0x42) .coordInfo(0x02e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hype Cave WC', 0x74, We, Wr, 0x43) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hype Cave WS', 0x74, We, Ld, 0x44) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lake Hylia NW', 0x75, No, Ld, 0x3b) .coordInfo(0x180c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lake Hylia NC', 0x75, No, Wr, 0x3c, 0x76).coordInfo(0x185a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lake Hylia NE', 0x75, No, Ld, 0x3d, 0x76).coordInfo(0x1860, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lake Hylia WS', 0x75, We, Ld, 0x48, 0x7d).coordInfo(0x1860, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lake Hylia EC', 0x75, Ea, Wr, 0x48, 0x7e).coordInfo(0x1680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Lake Hylia ES', 0x75, Ea, Ld, 0x49, 0x7e).coordInfo(0x1880, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Shopping Mall SW', 0x77, So, Wr, 0x3e) .coordInfo(0x1002, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Shopping Mall SE', 0x77, So, Ld, 0x3f) .coordInfo(0x101c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Purple Chest EC', 0x7a, Ea, Ld, 0x44) .coordInfo(0x0640, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark Purple Chest ES', 0x7a, Ea, Ld, 0x45) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Swamp Palace NC', 0x7b, No, Ld, 0x3e) .coordInfo(0x1816, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Swamp Palace WC', 0x7b, We, Ld, 0x45) .coordInfo(0x0660, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Swamp Palace WS', 0x7b, We, Ld, 0x46) .coordInfo(0x08e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Swamp Palace EC', 0x7b, Ea, Ld, 0x46) .coordInfo(0x04c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark South Pass NC', 0x7c, No, Ld, 0x3f) .coordInfo(0x1810, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark South Pass WC', 0x7c, We, Ld, 0x47) .coordInfo(0x04e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Dark South Pass ES', 0x7c, Ea, Ld, 0x47) .coordInfo(0x08c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Southeast DW NW', 0x7f, No, Wr, 0x40) .coordInfo(0x1802, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Southeast DW NE', 0x7f, No, Ld, 0x41) .coordInfo(0x181c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Southeast DW WC', 0x7f, We, Wr, 0x49) .coordInfo(0x05e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Southeast DW WS', 0x7f, We, Ld, 0x4a) .coordInfo(0x0860, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Master Sword Meadow SC', 0x80, So, Ld, 0x40) .coordInfo(0x0000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Hobo EC', 0x80, Ea, Wr, 0x4a) .coordInfo(0x0020, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), - create_owedge(player, 'Zoras Domain SW', 0x81, So, Ld, 0x41, 0x89).coordInfo(0x1782, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff) + # name, owID,dir,type,edge_id,(owSlot) vram + create_owedge(player, 'Lost Woods NW', 0x00, No, Ld, 0x00) .coordInfo(0x0284), + create_owedge(player, 'Lost Woods SW', 0x00, So, Ld, 0x01, 0x08).coordInfo(0x2000), + create_owedge(player, 'Lost Woods SC', 0x00, So, Ld, 0x02, 0x08).coordInfo(0x2020), + create_owedge(player, 'Lost Woods SE', 0x00, So, Ld, 0x03, 0x09).coordInfo(0x2060), + create_owedge(player, 'Lost Woods EN', 0x00, Ea, Ld, 0x00, 0x01).coordInfo(0x0180), + create_owedge(player, 'Lumberjack SW', 0x02, So, Ld, 0x00) .coordInfo(0x100a), + create_owedge(player, 'Lumberjack WN', 0x02, We, Ld, 0x00) .coordInfo(0x00e0), + create_owedge(player, 'West Death Mountain EN', 0x03, Ea, Ld, 0x01, 0x04).coordInfo(0x0180), + create_owedge(player, 'West Death Mountain ES', 0x03, Ea, Ld, 0x03, 0x0c).coordInfo(0x1780), + create_owedge(player, 'East Death Mountain WN', 0x05, We, Ld, 0x01, 0x05).coordInfo(0x0060), + create_owedge(player, 'East Death Mountain WS', 0x05, We, Ld, 0x03, 0x0d).coordInfo(0x1660), + create_owedge(player, 'East Death Mountain EN', 0x05, Ea, Ld, 0x02, 0x06).coordInfo(0x0180), + create_owedge(player, 'Death Mountain TR Pegs WN', 0x07, We, Ld, 0x02) .coordInfo(0x00e0), + create_owedge(player, 'DM Ascent NW', 0x0a, No, Ld, 0x01) .coordInfo(0x180a), + create_owedge(player, 'DM Ascent SE', 0x0a, So, Ld, 0x04) .coordInfo(0x1012), + create_owedge(player, 'Zora Approach NE', 0x0f, No, Ld, 0x02) .coordInfo(0x009a), + create_owedge(player, 'Zora Approach SE', 0x0f, So, Ld, 0x05) .coordInfo(0x1020), + create_owedge(player, 'Lost Woods Pass NW', 0x10, No, Ld, 0x03) .coordInfo(0x1800), + create_owedge(player, 'Lost Woods Pass NE', 0x10, No, Ld, 0x04) .coordInfo(0x181e), + create_owedge(player, 'Lost Woods Pass SW', 0x10, So, Ld, 0x06) .coordInfo(0x1002), + create_owedge(player, 'Lost Woods Pass SE', 0x10, So, Ld, 0x07) .coordInfo(0x101a), + create_owedge(player, 'Kakariko Fortune NE', 0x11, No, Ld, 0x05) .coordInfo(0x1820), + create_owedge(player, 'Kakariko Fortune SC', 0x11, So, Ld, 0x08) .coordInfo(0x1014), + create_owedge(player, 'Kakariko Fortune EN', 0x11, Ea, Ld, 0x04) .coordInfo(0x00c0), + create_owedge(player, 'Kakariko Fortune ES', 0x11, Ea, Ld, 0x05) .coordInfo(0x08c0), + create_owedge(player, 'Kakariko Pond NE', 0x12, No, Ld, 0x06) .coordInfo(0x1812), + create_owedge(player, 'Kakariko Pond SW', 0x12, So, Ld, 0x09) .coordInfo(0x1006), + create_owedge(player, 'Kakariko Pond SE', 0x12, So, Ld, 0x0a) .coordInfo(0x1016), + create_owedge(player, 'Kakariko Pond WN', 0x12, We, Ld, 0x04) .coordInfo(0x00e0), + create_owedge(player, 'Kakariko Pond WS', 0x12, We, Ld, 0x05) .coordInfo(0x08e0), + create_owedge(player, 'Kakariko Pond EN', 0x12, Ea, Ld, 0x06) .coordInfo(0x0340), + create_owedge(player, 'Kakariko Pond ES', 0x12, Ea, Ld, 0x07) .coordInfo(0x08c0), + create_owedge(player, 'Sanctuary WN', 0x13, We, Ld, 0x06) .coordInfo(0x0360), + create_owedge(player, 'Sanctuary WS', 0x13, We, Ld, 0x07) .coordInfo(0x08e0), + create_owedge(player, 'Sanctuary EC', 0x13, Ea, Ld, 0x08) .coordInfo(0x04c0), + create_owedge(player, 'Graveyard WC', 0x14, We, Ld, 0x08) .coordInfo(0x04e0), + create_owedge(player, 'Graveyard EC', 0x14, Ea, Ld, 0x09) .coordInfo(0x04c0), + create_owedge(player, 'Useless Fairy SW', 0x15, So, Ld, 0x0b) .coordInfo(0x1004), + create_owedge(player, 'Useless Fairy SC', 0x15, So, Wr, 0x0c) .coordInfo(0x1018), + create_owedge(player, 'Useless Fairy SE', 0x15, So, Ld, 0x0d) .coordInfo(0x1020), + create_owedge(player, 'Useless Fairy WC', 0x15, We, Ld, 0x09) .coordInfo(0x04e0), + create_owedge(player, 'Useless Fairy EN', 0x15, Ea, Wr, 0x0a) .coordInfo(0x01c0), + create_owedge(player, 'Useless Fairy EC', 0x15, Ea, Ld, 0x0b) .coordInfo(0x04c0), + create_owedge(player, 'Useless Fairy ES', 0x15, Ea, Ld, 0x0c) .coordInfo(0x08c0), + create_owedge(player, 'Potion Shop WN', 0x16, We, Wr, 0x0a) .coordInfo(0x01e0), + create_owedge(player, 'Potion Shop WC', 0x16, We, Ld, 0x0b) .coordInfo(0x04e0), + create_owedge(player, 'Potion Shop WS', 0x16, We, Ld, 0x0c) .coordInfo(0x08e0), + create_owedge(player, 'Potion Shop EN', 0x16, Ea, Wr, 0x0d) .coordInfo(0x00c0), + create_owedge(player, 'Potion Shop EC', 0x16, Ea, Ld, 0x0e) .coordInfo(0x01c0), + create_owedge(player, 'Zora Warning NE', 0x17, No, Ld, 0x07) .coordInfo(0x1820), + create_owedge(player, 'Zora Warning WN', 0x17, We, Wr, 0x0d) .coordInfo(0x00e0), + create_owedge(player, 'Zora Warning WC', 0x17, We, Ld, 0x0e) .coordInfo(0x01e0), + create_owedge(player, 'Kakariko NW', 0x18, No, Ld, 0x08) .coordInfo(0x1802), + create_owedge(player, 'Kakariko NC', 0x18, No, Ld, 0x09) .coordInfo(0x181a), + create_owedge(player, 'Kakariko NE', 0x18, No, Ld, 0x0a, 0x19).coordInfo(0x1854), + create_owedge(player, 'Kakariko SE', 0x18, So, Ld, 0x0f, 0x21).coordInfo(0x2060), + create_owedge(player, 'Kakariko ES', 0x18, Ea, Ld, 0x10, 0x21).coordInfo(0x1680), + create_owedge(player, 'Forgotten Forest NW', 0x1a, No, Ld, 0x0b) .coordInfo(0x1806), + create_owedge(player, 'Forgotten Forest NE', 0x1a, No, Ld, 0x0c) .coordInfo(0x1816), + create_owedge(player, 'Forgotten Forest ES', 0x1a, Ea, Ld, 0x0f) .coordInfo(0x06c0), + create_owedge(player, 'Hyrule Castle SW', 0x1b, So, Ld, 0x10, 0x23).coordInfo(0x2002), + create_owedge(player, 'Hyrule Castle SE', 0x1b, So, Ld, 0x11, 0x24).coordInfo(0x2054), + create_owedge(player, 'Hyrule Castle WN', 0x1b, We, Ld, 0x0f) .coordInfo(0x0660), + create_owedge(player, 'Hyrule Castle ES', 0x1b, Ea, Ld, 0x11, 0x24).coordInfo(0x1280), + create_owedge(player, 'Wooden Bridge NW', 0x1d, No, Ld, 0x0d) .coordInfo(0x1804), + create_owedge(player, 'Wooden Bridge NC', 0x1d, No, Wr, 0x0e) .coordInfo(0x1818), + create_owedge(player, 'Wooden Bridge NE', 0x1d, No, Ld, 0x0f) .coordInfo(0x1820), + create_owedge(player, 'Wooden Bridge SW', 0x1d, So, Ld, 0x0e) .coordInfo(0x1006), + create_owedge(player, 'Eastern Palace SW', 0x1e, So, Ld, 0x13, 0x26).coordInfo(0x2002), + create_owedge(player, 'Eastern Palace SE', 0x1e, So, Ld, 0x14, 0x27).coordInfo(0x2060), + create_owedge(player, 'Blacksmith WS', 0x22, We, Ld, 0x10) .coordInfo(0x05e0), + create_owedge(player, 'Sand Dune NW', 0x25, No, Ld, 0x10) .coordInfo(0x1806), + create_owedge(player, 'Sand Dune SC', 0x25, So, Ld, 0x12) .coordInfo(0x100e), + create_owedge(player, 'Sand Dune WN', 0x25, We, Ld, 0x11) .coordInfo(0x01e0), + create_owedge(player, 'Maze Race ES', 0x28, Ea, Ld, 0x12) .coordInfo(0x0940), + create_owedge(player, 'Kakariko Suburb NE', 0x29, No, Ld, 0x11) .coordInfo(0x1820), + create_owedge(player, 'Kakariko Suburb WS', 0x29, We, Ld, 0x12) .coordInfo(0x0960), + create_owedge(player, 'Kakariko Suburb ES', 0x29, Ea, Ld, 0x13) .coordInfo(0x0940), + create_owedge(player, 'Flute Boy SW', 0x2a, So, Ld, 0x15) .coordInfo(0x1000), + create_owedge(player, 'Flute Boy SC', 0x2a, So, Ld, 0x16) .coordInfo(0x100c), + create_owedge(player, 'Flute Boy WS', 0x2a, We, Ld, 0x13) .coordInfo(0x0960), + create_owedge(player, 'Central Bonk Rock NW', 0x2b, No, Ld, 0x12) .coordInfo(0x1802), + create_owedge(player, 'Central Bonk Rock SW', 0x2b, So, Ld, 0x17) .coordInfo(0x1004), + create_owedge(player, 'Central Bonk Rock EN', 0x2b, Ea, Ld, 0x14) .coordInfo(0x0340), + create_owedge(player, 'Central Bonk Rock EC', 0x2b, Ea, Ld, 0x15) .coordInfo(0x05c0), + create_owedge(player, 'Central Bonk Rock ES', 0x2b, Ea, Ld, 0x16) .coordInfo(0x08c0), + create_owedge(player, 'Links House NE', 0x2c, No, Ld, 0x13) .coordInfo(0x1814), + create_owedge(player, 'Links House SC', 0x2c, So, Ld, 0x18) .coordInfo(0x100e), + create_owedge(player, 'Links House WN', 0x2c, We, Ld, 0x14) .coordInfo(0x0360), + create_owedge(player, 'Links House WC', 0x2c, We, Ld, 0x15) .coordInfo(0x05e0), + create_owedge(player, 'Links House WS', 0x2c, We, Ld, 0x16) .coordInfo(0x08a0), + create_owedge(player, 'Links House ES', 0x2c, Ea, Ld, 0x17) .coordInfo(0x08c0), + create_owedge(player, 'Stone Bridge NC', 0x2d, No, Ld, 0x14) .coordInfo(0x180e), + create_owedge(player, 'Stone Bridge SC', 0x2d, So, Ld, 0x19) .coordInfo(0x100c), + create_owedge(player, 'Stone Bridge WC', 0x2d, We, Wr, 0x17) .coordInfo(0x061c), + create_owedge(player, 'Stone Bridge WS', 0x2d, We, Ld, 0x18) .coordInfo(0x08e0), + create_owedge(player, 'Stone Bridge EN', 0x2d, Ea, Ld, 0x18) .coordInfo(0x01c0), + create_owedge(player, 'Stone Bridge EC', 0x2d, Ea, Wr, 0x19) .coordInfo(0x0640), + create_owedge(player, 'Tree Line NW', 0x2e, No, Ld, 0x15) .coordInfo(0x1802), + create_owedge(player, 'Tree Line SC', 0x2e, So, Wr, 0x1a) .coordInfo(0x101a), + create_owedge(player, 'Tree Line SE', 0x2e, So, Ld, 0x1b) .coordInfo(0x1020), + create_owedge(player, 'Tree Line WN', 0x2e, We, Ld, 0x19) .coordInfo(0x01e0), + create_owedge(player, 'Tree Line WC', 0x2e, We, Wr, 0x1a) .coordInfo(0x0660), + create_owedge(player, 'Eastern Nook NE', 0x2f, No, Ld, 0x16) .coordInfo(0x1820), + create_owedge(player, 'Desert EC', 0x30, Ea, Ld, 0x1e, 0x39).coordInfo(0x1480), + create_owedge(player, 'Desert ES', 0x30, Ea, Ld, 0x1f, 0x39).coordInfo(0x1980), + create_owedge(player, 'Cave 45 NW', 0x32, No, Ld, 0x17) .coordInfo(0x1800), + create_owedge(player, 'Cave 45 NC', 0x32, No, Ld, 0x18) .coordInfo(0x180c), + create_owedge(player, 'Cave 45 EC', 0x32, Ea, Ld, 0x1a) .coordInfo(0x05c0), + create_owedge(player, 'C Whirlpool NW', 0x33, No, Ld, 0x19) .coordInfo(0x1804), + create_owedge(player, 'C Whirlpool SC', 0x33, So, Ld, 0x1c) .coordInfo(0x1016), + create_owedge(player, 'C Whirlpool WC', 0x33, We, Ld, 0x1b) .coordInfo(0x05e0), + create_owedge(player, 'C Whirlpool EN', 0x33, Ea, Ld, 0x1b) .coordInfo(0x02c0), + create_owedge(player, 'C Whirlpool EC', 0x33, Ea, Wr, 0x1c) .coordInfo(0x05c0), + create_owedge(player, 'C Whirlpool ES', 0x33, Ea, Ld, 0x1d) .coordInfo(0x08c0), + create_owedge(player, 'Statues NC', 0x34, No, Ld, 0x1a) .coordInfo(0x180e), + create_owedge(player, 'Statues SC', 0x34, So, Ld, 0x1d) .coordInfo(0x1010), + create_owedge(player, 'Statues WN', 0x34, We, Ld, 0x1c) .coordInfo(0x02e0), + create_owedge(player, 'Statues WC', 0x34, We, Wr, 0x1d) .coordInfo(0x05e0), + create_owedge(player, 'Statues WS', 0x34, We, Ld, 0x1e) .coordInfo(0x08e0), + create_owedge(player, 'Lake Hylia NW', 0x35, No, Ld, 0x1b) .coordInfo(0x180c), + create_owedge(player, 'Lake Hylia NC', 0x35, No, Wr, 0x1c, 0x36).coordInfo(0x185a), + create_owedge(player, 'Lake Hylia NE', 0x35, No, Ld, 0x1d, 0x36).coordInfo(0x1860), + create_owedge(player, 'Lake Hylia WS', 0x35, We, Ld, 0x24, 0x3d).coordInfo(0x1860), + create_owedge(player, 'Lake Hylia EC', 0x35, Ea, Wr, 0x24, 0x3e).coordInfo(0x1680), + create_owedge(player, 'Lake Hylia ES', 0x35, Ea, Ld, 0x25, 0x3e).coordInfo(0x1880), + create_owedge(player, 'Ice Rod Cave SW', 0x37, So, Wr, 0x1e) .coordInfo(0x1002), + create_owedge(player, 'Ice Rod Cave SE', 0x37, So, Ld, 0x1f) .coordInfo(0x101c), + create_owedge(player, 'Purple Chest WC', 0x3a, We, Ld, 0x1f) .coordInfo(0x03e0), + create_owedge(player, 'Purple Chest WS', 0x3a, We, Ld, 0x20) .coordInfo(0x0860), + create_owedge(player, 'Purple Chest EC', 0x3a, Ea, Ld, 0x20) .coordInfo(0x0640), + create_owedge(player, 'Purple Chest ES', 0x3a, Ea, Ld, 0x21) .coordInfo(0x08c0), + create_owedge(player, 'Dam NC', 0x3b, No, Ld, 0x1e) .coordInfo(0x1816), + create_owedge(player, 'Dam WC', 0x3b, We, Ld, 0x21) .coordInfo(0x0660), + create_owedge(player, 'Dam WS', 0x3b, We, Ld, 0x22) .coordInfo(0x08e0), + create_owedge(player, 'Dam EC', 0x3b, Ea, Ld, 0x22) .coordInfo(0x04c0), + create_owedge(player, 'South Pass NC', 0x3c, No, Ld, 0x1f) .coordInfo(0x1810), + create_owedge(player, 'South Pass WC', 0x3c, We, Ld, 0x23) .coordInfo(0x04e0), + create_owedge(player, 'South Pass ES', 0x3c, Ea, Ld, 0x23) .coordInfo(0x08c0), + create_owedge(player, 'Octoballoon NW', 0x3f, No, Wr, 0x20) .coordInfo(0x1802), + create_owedge(player, 'Octoballoon NE', 0x3f, No, Ld, 0x21) .coordInfo(0x181c), + create_owedge(player, 'Octoballoon WC', 0x3f, We, Wr, 0x25) .coordInfo(0x05e0), + create_owedge(player, 'Octoballoon WS', 0x3f, We, Ld, 0x26) .coordInfo(0x0860), + create_owedge(player, 'Skull Woods SW', 0x40, So, Ld, 0x21, 0x48).coordInfo(0x2000), + create_owedge(player, 'Skull Woods SC', 0x40, So, Ld, 0x22, 0x48).coordInfo(0x2020), + create_owedge(player, 'Skull Woods SE', 0x40, So, Ld, 0x23, 0x49).coordInfo(0x2060), + create_owedge(player, 'Skull Woods EN', 0x40, Ea, Ld, 0x26, 0x41).coordInfo(0x0180), + create_owedge(player, 'Dark Lumberjack SW', 0x42, So, Ld, 0x20) .coordInfo(0x100a), + create_owedge(player, 'Dark Lumberjack WN', 0x42, We, Ld, 0x27) .coordInfo(0x00e0), + create_owedge(player, 'West Dark Death Mountain EN', 0x43, Ea, Ld, 0x27, 0x44).coordInfo(0x0180), + create_owedge(player, 'West Dark Death Mountain ES', 0x43, Ea, Ld, 0x29, 0x4c).coordInfo(0x1780), + create_owedge(player, 'East Dark Death Mountain WN', 0x45, We, Ld, 0x28) .coordInfo(0x0060), + create_owedge(player, 'East Dark Death Mountain WS', 0x45, We, Ld, 0x2a, 0x4d).coordInfo(0x1660), + create_owedge(player, 'East Dark Death Mountain EN', 0x45, Ea, Ld, 0x28, 0x46).coordInfo(0x0180), + create_owedge(player, 'Turtle Rock WN', 0x47, We, Ld, 0x29) .coordInfo(0x00e0), + create_owedge(player, 'Bumper Cave NW', 0x4a, No, Ld, 0x22) .coordInfo(0x180a), + create_owedge(player, 'Bumper Cave SE', 0x4a, So, Ld, 0x24) .coordInfo(0x1012), + create_owedge(player, 'Catfish SE', 0x4f, So, Ld, 0x25) .coordInfo(0x1020), + create_owedge(player, 'Skull Woods Pass NW', 0x50, No, Ld, 0x23) .coordInfo(0x181e), + create_owedge(player, 'Skull Woods Pass NE', 0x50, No, Ld, 0x24) .coordInfo(0x1800), + create_owedge(player, 'Skull Woods Pass SW', 0x50, So, Ld, 0x26) .coordInfo(0x1002), + create_owedge(player, 'Skull Woods Pass SE', 0x50, So, Ld, 0x27) .coordInfo(0x101a), + create_owedge(player, 'Dark Fortune NE', 0x51, No, Ld, 0x25) .coordInfo(0x1820), + create_owedge(player, 'Dark Fortune SC', 0x51, So, Ld, 0x28) .coordInfo(0x1014), + create_owedge(player, 'Dark Fortune EN', 0x51, Ea, Ld, 0x2a) .coordInfo(0x00c0), + create_owedge(player, 'Dark Fortune ES', 0x51, Ea, Ld, 0x2b) .coordInfo(0x08c0), + create_owedge(player, 'Outcast Pond NE', 0x52, No, Ld, 0x26) .coordInfo(0x1812), + create_owedge(player, 'Outcast Pond SW', 0x52, So, Ld, 0x29) .coordInfo(0x1006), + create_owedge(player, 'Outcast Pond SE', 0x52, So, Ld, 0x2a) .coordInfo(0x1016), + create_owedge(player, 'Outcast Pond WN', 0x52, We, Ld, 0x2b) .coordInfo(0x00e0), + create_owedge(player, 'Outcast Pond WS', 0x52, We, Ld, 0x2c) .coordInfo(0x08e0), + create_owedge(player, 'Outcast Pond EN', 0x52, Ea, Ld, 0x2c) .coordInfo(0x0340), + create_owedge(player, 'Outcast Pond ES', 0x52, Ea, Ld, 0x2d) .coordInfo(0x08c0), + create_owedge(player, 'Dark Chapel WN', 0x53, We, Ld, 0x2d) .coordInfo(0x0360), + create_owedge(player, 'Dark Chapel WS', 0x53, We, Ld, 0x2e) .coordInfo(0x08e0), + create_owedge(player, 'Dark Chapel EC', 0x53, Ea, Ld, 0x2e) .coordInfo(0x04c0), + create_owedge(player, 'Dark Graveyard WC', 0x54, We, Ld, 0x2f) .coordInfo(0x04e0), + create_owedge(player, 'Dark Graveyard ES', 0x54, Ea, Ld, 0x2f) .coordInfo(0x04c0), + create_owedge(player, 'Qirn Jump SW', 0x55, So, Ld, 0x2b) .coordInfo(0x1004), + create_owedge(player, 'Qirn Jump SC', 0x55, So, Wr, 0x2c) .coordInfo(0x1018), + create_owedge(player, 'Qirn Jump SE', 0x55, So, Ld, 0x2d) .coordInfo(0x1020), + create_owedge(player, 'Qirn Jump WC', 0x55, We, Ld, 0x30) .coordInfo(0x04e0), + create_owedge(player, 'Qirn Jump EN', 0x55, Ea, Wr, 0x30) .coordInfo(0x01c0), + create_owedge(player, 'Qirn Jump EC', 0x55, Ea, Ld, 0x31) .coordInfo(0x04c0), + create_owedge(player, 'Qirn Jump ES', 0x55, Ea, Ld, 0x32) .coordInfo(0x08c0), + create_owedge(player, 'Dark Witch WN', 0x56, We, Wr, 0x31) .coordInfo(0x01e0), + create_owedge(player, 'Dark Witch WC', 0x56, We, Ld, 0x32) .coordInfo(0x04e0), + create_owedge(player, 'Dark Witch WS', 0x56, We, Ld, 0x33) .coordInfo(0x08e0), + create_owedge(player, 'Dark Witch EN', 0x56, Ea, Wr, 0x33) .coordInfo(0x00c0), + create_owedge(player, 'Dark Witch EC', 0x56, Ea, Ld, 0x34) .coordInfo(0x01c0), + create_owedge(player, 'Catfish Approach NE', 0x57, No, Ld, 0x27) .coordInfo(0x1820), + create_owedge(player, 'Catfish Approach WN', 0x57, We, Wr, 0x34) .coordInfo(0x00e0), + create_owedge(player, 'Catfish Approach WC', 0x57, We, Ld, 0x35) .coordInfo(0x01e0), + create_owedge(player, 'Village of Outcasts NW', 0x58, No, Ld, 0x28) .coordInfo(0x1802), + create_owedge(player, 'Village of Outcasts NC', 0x58, No, Ld, 0x29) .coordInfo(0x181a), + create_owedge(player, 'Village of Outcasts NE', 0x58, No, Ld, 0x2a, 0x59).coordInfo(0x1854), + create_owedge(player, 'Village of Outcasts SE', 0x58, So, Ld, 0x2f, 0x61).coordInfo(0x2060), + create_owedge(player, 'Village of Outcasts ES', 0x58, Ea, Ld, 0x35, 0x61).coordInfo(0x1680), + create_owedge(player, 'Shield Shop NW', 0x5a, No, Ld, 0x2b) .coordInfo(0x1806), + create_owedge(player, 'Shield Shop NE', 0x5a, No, Ld, 0x2c) .coordInfo(0x1816), + create_owedge(player, 'Pyramid SW', 0x5b, So, Ld, 0x30, 0x63).coordInfo(0x2002), + create_owedge(player, 'Pyramid SE', 0x5b, So, Ld, 0x31, 0x64).coordInfo(0x2054), + create_owedge(player, 'Pyramid ES', 0x5b, Ea, Ld, 0x36, 0x64).coordInfo(0x1280), + create_owedge(player, 'Broken Bridge NW', 0x5d, No, Ld, 0x2d) .coordInfo(0x1804), + create_owedge(player, 'Broken Bridge NC', 0x5d, No, Wr, 0x2e) .coordInfo(0x1818), + create_owedge(player, 'Broken Bridge NE', 0x5d, No, Ld, 0x2f) .coordInfo(0x1820), + create_owedge(player, 'Broken Bridge SW', 0x5d, So, Ld, 0x2e) .coordInfo(0x1006), + create_owedge(player, 'Palace of Darkness SW', 0x5e, So, Ld, 0x33, 0x66).coordInfo(0x2002), + create_owedge(player, 'Palace of Darkness SE', 0x5e, So, Ld, 0x34, 0x67).coordInfo(0x2060), + create_owedge(player, 'Hammer Pegs WS', 0x62, We, Ld, 0x36) .coordInfo(0x05e0), + create_owedge(player, 'Dark Dune NW', 0x65, No, Ld, 0x30) .coordInfo(0x1806), + create_owedge(player, 'Dark Dune SC', 0x65, So, Ld, 0x32) .coordInfo(0x100e), + create_owedge(player, 'Dark Dune WN', 0x65, We, Ld, 0x37) .coordInfo(0x01e0), + create_owedge(player, 'Dig Game EC', 0x68, Ea, Ld, 0x37) .coordInfo(0x08c0), + create_owedge(player, 'Dig Game ES', 0x68, Ea, Ld, 0x38) .coordInfo(0x0940), + create_owedge(player, 'Frog NE', 0x69, No, Ld, 0x31) .coordInfo(0x1820), + create_owedge(player, 'Frog WC', 0x69, We, Ld, 0x38) .coordInfo(0x08e0), + create_owedge(player, 'Frog WS', 0x69, We, Ld, 0x39) .coordInfo(0x0960), + create_owedge(player, 'Frog ES', 0x69, Ea, Ld, 0x39) .coordInfo(0x0940), + create_owedge(player, 'Stumpy SW', 0x6a, So, Ld, 0x35) .coordInfo(0x1000), + create_owedge(player, 'Stumpy SC', 0x6a, So, Ld, 0x36) .coordInfo(0x100c), + create_owedge(player, 'Stumpy WS', 0x6a, We, Ld, 0x3a) .coordInfo(0x0960), + create_owedge(player, 'Dark Bonk Rock NW', 0x6b, No, Ld, 0x32) .coordInfo(0x1802), + create_owedge(player, 'Dark Bonk Rock SW', 0x6b, So, Ld, 0x37) .coordInfo(0x1004), + create_owedge(player, 'Dark Bonk Rock EN', 0x6b, Ea, Ld, 0x3a) .coordInfo(0x0340), + create_owedge(player, 'Dark Bonk Rock EC', 0x6b, Ea, Ld, 0x3b) .coordInfo(0x05c0), + create_owedge(player, 'Dark Bonk Rock ES', 0x6b, Ea, Ld, 0x3c) .coordInfo(0x08c0), + create_owedge(player, 'Big Bomb Shop NE', 0x6c, No, Ld, 0x33) .coordInfo(0x1814), + create_owedge(player, 'Big Bomb Shop SC', 0x6c, So, Ld, 0x38) .coordInfo(0x100e), + create_owedge(player, 'Big Bomb Shop WN', 0x6c, We, Ld, 0x3b) .coordInfo(0x0360), + create_owedge(player, 'Big Bomb Shop WC', 0x6c, We, Ld, 0x3c) .coordInfo(0x05e0), + create_owedge(player, 'Big Bomb Shop WS', 0x6c, We, Ld, 0x3d) .coordInfo(0x08a0), + create_owedge(player, 'Big Bomb Shop ES', 0x6c, Ea, Ld, 0x3d) .coordInfo(0x08c0), + create_owedge(player, 'Hammer Bridge NC', 0x6d, No, Ld, 0x34) .coordInfo(0x180e), + create_owedge(player, 'Hammer Bridge SC', 0x6d, So, Ld, 0x39) .coordInfo(0x100c), + create_owedge(player, 'Hammer Bridge WS', 0x6d, We, Ld, 0x3e) .coordInfo(0x08e0), + create_owedge(player, 'Hammer Bridge EN', 0x6d, Ea, Ld, 0x3e) .coordInfo(0x01c0), + create_owedge(player, 'Hammer Bridge EC', 0x6d, Ea, Wr, 0x3f) .coordInfo(0x0640), + create_owedge(player, 'Dark Tree Line NW', 0x6e, No, Ld, 0x35) .coordInfo(0x1802), + create_owedge(player, 'Dark Tree Line SC', 0x6e, So, Wr, 0x3a) .coordInfo(0x101a), + create_owedge(player, 'Dark Tree Line SE', 0x6e, So, Ld, 0x3b) .coordInfo(0x1020), + create_owedge(player, 'Dark Tree Line WN', 0x6e, We, Ld, 0x3f) .coordInfo(0x01e0), + create_owedge(player, 'Dark Tree Line WC', 0x6e, We, Wr, 0x40) .coordInfo(0x0660), + create_owedge(player, 'Palace of Darkness Nook NE', 0x6f, No, Ld, 0x36) .coordInfo(0x1820), + create_owedge(player, 'Circle of Bushes NW', 0x72, No, Ld, 0x37) .coordInfo(0x1800), + create_owedge(player, 'Circle of Bushes NC', 0x72, No, Ld, 0x38) .coordInfo(0x180c), + create_owedge(player, 'Circle of Bushes EC', 0x72, Ea, Ld, 0x40) .coordInfo(0x05c0), + create_owedge(player, 'Dark C Whirlpool NW', 0x73, No, Ld, 0x39) .coordInfo(0x1804), + create_owedge(player, 'Dark C Whirlpool SC', 0x73, So, Ld, 0x3c) .coordInfo(0x1016), + create_owedge(player, 'Dark C Whirlpool WC', 0x73, We, Ld, 0x41) .coordInfo(0x05e0), + create_owedge(player, 'Dark C Whirlpool EN', 0x73, Ea, Ld, 0x41) .coordInfo(0x02c0), + create_owedge(player, 'Dark C Whirlpool EC', 0x73, Ea, Wr, 0x42) .coordInfo(0x05c0), + create_owedge(player, 'Dark C Whirlpool ES', 0x73, Ea, Ld, 0x43) .coordInfo(0x08c0), + create_owedge(player, 'Hype Cave NC', 0x74, No, Ld, 0x3a) .coordInfo(0x180e), + create_owedge(player, 'Hype Cave SC', 0x74, So, Ld, 0x3d) .coordInfo(0x1010), + create_owedge(player, 'Hype Cave WN', 0x74, We, Ld, 0x42) .coordInfo(0x02e0), + create_owedge(player, 'Hype Cave WC', 0x74, We, Wr, 0x43) .coordInfo(0x05e0), + create_owedge(player, 'Hype Cave WS', 0x74, We, Ld, 0x44) .coordInfo(0x08e0), + create_owedge(player, 'Dark Lake Hylia NW', 0x75, No, Ld, 0x3b) .coordInfo(0x180c), + create_owedge(player, 'Dark Lake Hylia NC', 0x75, No, Wr, 0x3c, 0x76).coordInfo(0x185a), + create_owedge(player, 'Dark Lake Hylia NE', 0x75, No, Ld, 0x3d, 0x76).coordInfo(0x1860), + create_owedge(player, 'Dark Lake Hylia WS', 0x75, We, Ld, 0x48, 0x7d).coordInfo(0x1860), + create_owedge(player, 'Dark Lake Hylia EC', 0x75, Ea, Wr, 0x48, 0x7e).coordInfo(0x1680), + create_owedge(player, 'Dark Lake Hylia ES', 0x75, Ea, Ld, 0x49, 0x7e).coordInfo(0x1880), + create_owedge(player, 'Dark Shopping Mall SW', 0x77, So, Wr, 0x3e) .coordInfo(0x1002), + create_owedge(player, 'Dark Shopping Mall SE', 0x77, So, Ld, 0x3f) .coordInfo(0x101c), + create_owedge(player, 'Dark Purple Chest EC', 0x7a, Ea, Ld, 0x44) .coordInfo(0x0640), + create_owedge(player, 'Dark Purple Chest ES', 0x7a, Ea, Ld, 0x45) .coordInfo(0x08c0), + create_owedge(player, 'Swamp Palace NC', 0x7b, No, Ld, 0x3e) .coordInfo(0x1816), + create_owedge(player, 'Swamp Palace WC', 0x7b, We, Ld, 0x45) .coordInfo(0x0660), + create_owedge(player, 'Swamp Palace WS', 0x7b, We, Ld, 0x46) .coordInfo(0x08e0), + create_owedge(player, 'Swamp Palace EC', 0x7b, Ea, Ld, 0x46) .coordInfo(0x04c0), + create_owedge(player, 'Dark South Pass NC', 0x7c, No, Ld, 0x3f) .coordInfo(0x1810), + create_owedge(player, 'Dark South Pass WC', 0x7c, We, Ld, 0x47) .coordInfo(0x04e0), + create_owedge(player, 'Dark South Pass ES', 0x7c, Ea, Ld, 0x47) .coordInfo(0x08c0), + create_owedge(player, 'Southeast DW NW', 0x7f, No, Wr, 0x40) .coordInfo(0x1802), + create_owedge(player, 'Southeast DW NE', 0x7f, No, Ld, 0x41) .coordInfo(0x181c), + create_owedge(player, 'Southeast DW WC', 0x7f, We, Wr, 0x49) .coordInfo(0x05e0), + create_owedge(player, 'Southeast DW WS', 0x7f, We, Ld, 0x4a) .coordInfo(0x0860), + create_owedge(player, 'Master Sword Meadow SC', 0x80, So, Ld, 0x40) .coordInfo(0x0000), + create_owedge(player, 'Hobo EC', 0x80, Ea, Wr, 0x4a) .coordInfo(0x0020), + create_owedge(player, 'Zoras Domain SW', 0x81, So, Ld, 0x41, 0x89).coordInfo(0x1782) ] world.owedges += edges diff --git a/Rom.py b/Rom.py index 4904774b..c8c1ccde 100644 --- a/Rom.py +++ b/Rom.py @@ -27,7 +27,7 @@ from EntranceShuffle import door_addresses, exit_ids JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'e0ea6c453588a8a35a59412ddf5ecdf2' +RANDOMIZERBASEHASH = '5ea3196d8db3ca0c757035f7fd51cf9b' class JsonRom(object): @@ -600,13 +600,8 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False): for edge in world.owedges: if edge.dest is not None and isinstance(edge.dest, OWEdge) and edge.player == player: - write_int16(rom, edge.getAddress() + 0x0a, edge.scrollPos) - write_int16(rom, edge.getAddress() + 0x0c, edge.camPos) - write_int16(rom, edge.getAddress() + 0x0e, edge.linkOpp) - write_int16(rom, edge.getAddress() + 0x10, edge.scrollOpp) - write_int16(rom, edge.getAddress() + 0x12, edge.camOpp) - write_int16(rom, edge.getAddress() + 0x14, edge.vramLoc) - rom.write_bytes(edge.getAddress() + 0x16, [edge.unknownY, edge.unknownX, edge.getTarget()]) + write_int16(rom, edge.getAddress() + 0x0a, edge.vramLoc) + write_int16(rom, edge.getAddress() + 0x0e, edge.getTarget()) # patch entrance/exits/holes for region in world.regions: diff --git a/asm/owrando.asm b/asm/owrando.asm index 334e622e..e1d663bd 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -81,8 +81,8 @@ OWShuffle: ;s1 = number of transitions left to check inx : lda.l OWEdgeOffsets,x ;record id of first transition in table - ;multiply ^ by 26, 26bytes per record - sta $4202 : lda #26 : sta $4203 ;wait 8 cycles + ;multiply ^ by 16, 16bytes per record + sta $4202 : lda #16 : sta $4203 ;wait 8 cycles pla ;a = number of trans rep #$20 and #$00ff @@ -91,7 +91,7 @@ OWShuffle: .nextTransition pha jsr OWSearchTransition : bcs .newDestination - txa : !add #$001a : tax + txa : !add #$0010 : tax pla : dec : bne .nextTransition : bra .noTransition .newDestination @@ -111,7 +111,7 @@ OWSearchTransition: cmp $22 : !bge .nomatch lda.l OWNorthEdges+2,x : cmp $22 : !blt .nomatch ;MATCH - lda.l OWNorthEdges+24,x : tay ;y = record id of dest + lda.l OWNorthEdges+14,x : tay ;y = record id of dest sep #$20 : lda #OWSouthEdges>>16 : phb : pha : plb ldx #OWSouthEdges : jsr OWNewDestination : plb ;x = address of table bra .matchfound @@ -120,7 +120,7 @@ OWSearchTransition: cmp $22 : !bge .exitloop lda.l OWSouthEdges+2,x : cmp $22 : !blt .exitloop ;MATCH - lda.l OWSouthEdges+24,x : tay ;y = record id of dest + lda.l OWSouthEdges+14,x : tay ;y = record id of dest sep #$20 : lda #OWNorthEdges>>16 : phb : pha : plb : phx ldx #OWNorthEdges : jsr OWNewDestination : plx : plb ;x = address of table bra .matchfound @@ -131,7 +131,7 @@ OWSearchTransition: cmp $20 : !bge .exitloop lda.l OWWestEdges+2,x : cmp $20 : !blt .exitloop ;MATCH - lda.l OWWestEdges+24,x : tay ;y = record id of dest + lda.l OWWestEdges+14,x : tay ;y = record id of dest sep #$20 : lda #OWEastEdges>>16 : phb : pha : plb ldx #OWEastEdges : jsr OWNewDestination : plb ;x = address of table bra .matchfound @@ -139,7 +139,7 @@ OWSearchTransition: cmp $20 : !bge .exitloop lda.l OWEastEdges+2,x : cmp $20 : !blt .exitloop ;MATCH - lda.l OWEastEdges+24,x : tay ;y = record id of dest + lda.l OWEastEdges+14,x : tay ;y = record id of dest sep #$20 : lda #OWWestEdges>>16 : phb : pha : plb ldx #OWWestEdges : jsr OWNewDestination : plb ;x = address of table @@ -152,15 +152,13 @@ OWSearchTransition: } OWNewDestination: { - tya : sta $4202 : lda #26 : sta $4203 ;wait 8 cycles + tya : sta $4202 : lda #16 : sta $4203 ;wait 8 cycles rep #$20 : txa : nop : !add $4216 : tax ;a = offset to dest record - lda.w $0006,x : sta $06 ; set coord + lda.w $0006,x : sta $06 ;set coord lda.w $0008,x : sta $04 ;save dest OW slot/ID - lda.w $0014,x : sta $84;VRAM + lda.w $000a,x : sta $84 ;VRAM LDA $84 : SEC : SBC #$0400 : AND #$0F00 : ASL : XBA : STA $88 LDA $84 : SEC : SBC #$0010 : AND #$003E : LSR : STA $86 - ;lda.w $0016,x : and #$00ff : sta $624 ;UnknownY - ;lda.w $0017,x : and #$00ff : sta $628 ;UnknownX ;;22 e0 e2 61c 61e - X ;;20 e6 e8 618 61a - Y @@ -169,7 +167,7 @@ OWNewDestination: ldy $20 : lda $418 : dec #2 : bpl + : ldy $22 + tya : and #$01ff : cmp 3,s : !blt .adjustMainAxis dec : cmp 1,s : !bge .adjustMainAxis - inc : pha : lda $06 : and #$fe00 : !add 1,s : sta $06 : pla + inc : pha : lda $06 : and #$fe00 : !add 1,s : sta $06 : pla .adjustMainAxis pla : pla : sep #$10 : ldy $418 @@ -375,289 +373,289 @@ dw $0000, $4101, $0000, $0000 org $aab800 ;PC 153800 OWNorthEdges: -;Min Coord, Max Coord, Width, Midpoint, Scroll, Cam, LinkOpp, ScrollOpp, CamOpp, VRAM, UnknownX/Y, OW Slot/OWID, Dest Index -dw $00a0, $00a0, $0000, $00a0, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0040 ;Lost Woods -dw $0458, $0540, $00e8, $04cc, $0a0a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000 -dw $0f70, $0f90, $0020, $0f80, $0f0f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0041 -dw $0058, $0058, $0000, $0058, $1010, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0001 -dw $0178, $0178, $0000, $0178, $1010, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0002 -dw $0388, $0388, $0000, $0388, $1111, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0003 -dw $0480, $05b0, $0130, $0518, $1212, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0004 -dw $0f70, $0f90, $0020, $0f80, $1717, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0005 -dw $0078, $0098, $0020, $0088, $1818, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0006 ;Kakariko -dw $0138, $0158, $0020, $0148, $1818, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0007 -dw $02e8, $0348, $0060, $0318, $1819, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0008 -dw $0478, $04d0, $0058, $04a4, $1a1a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0009 -dw $0510, $0538, $0028, $0524, $1a1a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000a -dw $0a48, $0af0, $00a8, $0a9c, $1d1d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000b -dw $0b28, $0b38, $0010, $0b30, $1d1d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000c -dw $0b70, $0ba0, $0030, $0b88, $1d1d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000d -dw $0a40, $0b10, $00d0, $0aa8, $2525, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000e -dw $0350, $0390, $0040, $0370, $2929, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000f -dw $0670, $06a8, $0038, $068c, $2b2b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0010 -dw $0898, $09b0, $0118, $0924, $2c2c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0011 ;Links House -dw $0a40, $0ba0, $0160, $0af0, $2d2d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0012 -dw $0c70, $0c90, $0020, $0c80, $2e2e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0013 -dw $0f70, $0f80, $0010, $0f78, $2f2f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0014 -dw $0430, $0468, $0038, $044c, $3232, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0015 -dw $04d8, $04f8, $0020, $04e8, $3232, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0016 -dw $0688, $06b0, $0028, $069c, $3333, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0017 -dw $08d0, $08f0, $0020, $08e0, $3434, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0018 -dw $0a80, $0b40, $00c0, $0ae0, $3535, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0019 -dw $0d38, $0d58, $0020, $0d48, $3536, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001a -dw $0d90, $0da0, $0010, $0d98, $3536, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001b -dw $06a0, $07b0, $0110, $0728, $3b3b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001c -dw $0830, $09b0, $0180, $08f0, $3c3c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001d -dw $0e78, $0e88, $0010, $0e80, $3f3f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001e -dw $0ee0, $0fc0, $00e0, $0f50, $3f3f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001f -dw $0458, $0540, $00e8, $04cc, $4a4a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0020 -dw $0058, $0058, $0000, $0058, $5050, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0021 -dw $0178, $0178, $0000, $0178, $5050, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0022 -dw $0388, $0388, $0000, $0388, $5151, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0023 -dw $0480, $05b0, $0130, $0518, $5252, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0024 -dw $0f70, $0f90, $0020, $0f80, $5757, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0025 -dw $0078, $0098, $0020, $0088, $5858, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0026 ;Village of Outcasts -dw $0138, $0158, $0020, $0148, $5858, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0027 -dw $02e8, $0348, $0060, $0318, $5859, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0028 -dw $0478, $04d0, $0058, $04a4, $5a5a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0029 -dw $0510, $0538, $0028, $0524, $5a5a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002a -dw $0a48, $0af0, $00a8, $0a9c, $5d5d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002b -dw $0b28, $0b38, $0010, $0b30, $5d5d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002c -dw $0b70, $0ba0, $0030, $0b88, $5d5d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002d -dw $0a40, $0b10, $00d0, $0aa8, $6565, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002e -dw $0350, $0390, $0040, $0370, $6969, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002f -dw $0670, $06a8, $0038, $068c, $6b6b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0030 -dw $0898, $09b0, $0118, $0924, $6c6c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0031 -dw $0a40, $0ba0, $0160, $0af0, $6d6d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0032 -dw $0c70, $0c90, $0020, $0c80, $6e6e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0033 -dw $0f70, $0f80, $0010, $0f78, $6f6f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0034 -dw $0430, $0468, $0038, $044c, $7272, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0035 -dw $04d8, $04f8, $0020, $04e8, $7272, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0036 -dw $0688, $06b0, $0028, $069c, $7373, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0037 -dw $08d0, $08f0, $0020, $08e0, $7474, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0038 -dw $0a80, $0b40, $00c0, $0ae0, $7575, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0039 -dw $0d38, $0d58, $0020, $0d48, $7576, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003a -dw $0d90, $0da0, $0010, $0d98, $7576, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003b -dw $06a0, $07b0, $0110, $0728, $7b7b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003c -dw $0830, $09b0, $0180, $08f0, $7c7c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003d -dw $0e78, $0e88, $0010, $0e80, $7f7f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003e -dw $0ee0, $0fc0, $00e0, $0f50, $7f7f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003f +; Min Max Width Mid OW Slot/OWID VRAM *FREE* Dest Index +dw $00a0, $00a0, $0000, $00a0, $0000, $0000, $0000, $0040 ;Lost Woods +dw $0458, $0540, $00e8, $04cc, $0a0a, $0000, $0000, $0000 +dw $0f70, $0f90, $0020, $0f80, $0f0f, $0000, $0000, $0041 +dw $0058, $0058, $0000, $0058, $1010, $0000, $0000, $0001 +dw $0178, $0178, $0000, $0178, $1010, $0000, $0000, $0002 +dw $0388, $0388, $0000, $0388, $1111, $0000, $0000, $0003 +dw $0480, $05b0, $0130, $0518, $1212, $0000, $0000, $0004 +dw $0f70, $0f90, $0020, $0f80, $1717, $0000, $0000, $0005 +dw $0078, $0098, $0020, $0088, $1818, $0000, $0000, $0006 ;Kakariko +dw $0138, $0158, $0020, $0148, $1818, $0000, $0000, $0007 +dw $02e8, $0348, $0060, $0318, $1819, $0000, $0000, $0008 +dw $0478, $04d0, $0058, $04a4, $1a1a, $0000, $0000, $0009 +dw $0510, $0538, $0028, $0524, $1a1a, $0000, $0000, $000a +dw $0a48, $0af0, $00a8, $0a9c, $1d1d, $0000, $0000, $000b +dw $0b28, $0b38, $0010, $0b30, $1d1d, $0000, $0000, $000c +dw $0b70, $0ba0, $0030, $0b88, $1d1d, $0000, $0000, $000d +dw $0a40, $0b10, $00d0, $0aa8, $2525, $0000, $0000, $000e +dw $0350, $0390, $0040, $0370, $2929, $0000, $0000, $000f +dw $0670, $06a8, $0038, $068c, $2b2b, $0000, $0000, $0010 +dw $0898, $09b0, $0118, $0924, $2c2c, $0000, $0000, $0011 ;Links House +dw $0a40, $0ba0, $0160, $0af0, $2d2d, $0000, $0000, $0012 +dw $0c70, $0c90, $0020, $0c80, $2e2e, $0000, $0000, $0013 +dw $0f70, $0f80, $0010, $0f78, $2f2f, $0000, $0000, $0014 +dw $0430, $0468, $0038, $044c, $3232, $0000, $0000, $0015 +dw $04d8, $04f8, $0020, $04e8, $3232, $0000, $0000, $0016 +dw $0688, $06b0, $0028, $069c, $3333, $0000, $0000, $0017 +dw $08d0, $08f0, $0020, $08e0, $3434, $0000, $0000, $0018 +dw $0a80, $0b40, $00c0, $0ae0, $3535, $0000, $0000, $0019 +dw $0d38, $0d58, $0020, $0d48, $3536, $0000, $0000, $001a +dw $0d90, $0da0, $0010, $0d98, $3536, $0000, $0000, $001b +dw $06a0, $07b0, $0110, $0728, $3b3b, $0000, $0000, $001c +dw $0830, $09b0, $0180, $08f0, $3c3c, $0000, $0000, $001d +dw $0e78, $0e88, $0010, $0e80, $3f3f, $0000, $0000, $001e +dw $0ee0, $0fc0, $00e0, $0f50, $3f3f, $0000, $0000, $001f +dw $0458, $0540, $00e8, $04cc, $4a4a, $0000, $0000, $0020 +dw $0058, $0058, $0000, $0058, $5050, $0000, $0000, $0021 +dw $0178, $0178, $0000, $0178, $5050, $0000, $0000, $0022 +dw $0388, $0388, $0000, $0388, $5151, $0000, $0000, $0023 +dw $0480, $05b0, $0130, $0518, $5252, $0000, $0000, $0024 +dw $0f70, $0f90, $0020, $0f80, $5757, $0000, $0000, $0025 +dw $0078, $0098, $0020, $0088, $5858, $0000, $0000, $0026 ;Village of Outcasts +dw $0138, $0158, $0020, $0148, $5858, $0000, $0000, $0027 +dw $02e8, $0348, $0060, $0318, $5859, $0000, $0000, $0028 +dw $0478, $04d0, $0058, $04a4, $5a5a, $0000, $0000, $0029 +dw $0510, $0538, $0028, $0524, $5a5a, $0000, $0000, $002a +dw $0a48, $0af0, $00a8, $0a9c, $5d5d, $0000, $0000, $002b +dw $0b28, $0b38, $0010, $0b30, $5d5d, $0000, $0000, $002c +dw $0b70, $0ba0, $0030, $0b88, $5d5d, $0000, $0000, $002d +dw $0a40, $0b10, $00d0, $0aa8, $6565, $0000, $0000, $002e +dw $0350, $0390, $0040, $0370, $6969, $0000, $0000, $002f +dw $0670, $06a8, $0038, $068c, $6b6b, $0000, $0000, $0030 +dw $0898, $09b0, $0118, $0924, $6c6c, $0000, $0000, $0031 +dw $0a40, $0ba0, $0160, $0af0, $6d6d, $0000, $0000, $0032 +dw $0c70, $0c90, $0020, $0c80, $6e6e, $0000, $0000, $0033 +dw $0f70, $0f80, $0010, $0f78, $6f6f, $0000, $0000, $0034 +dw $0430, $0468, $0038, $044c, $7272, $0000, $0000, $0035 +dw $04d8, $04f8, $0020, $04e8, $7272, $0000, $0000, $0036 +dw $0688, $06b0, $0028, $069c, $7373, $0000, $0000, $0037 +dw $08d0, $08f0, $0020, $08e0, $7474, $0000, $0000, $0038 +dw $0a80, $0b40, $00c0, $0ae0, $7575, $0000, $0000, $0039 +dw $0d38, $0d58, $0020, $0d48, $7576, $0000, $0000, $003a +dw $0d90, $0da0, $0010, $0d98, $7576, $0000, $0000, $003b +dw $06a0, $07b0, $0110, $0728, $7b7b, $0000, $0000, $003c +dw $0830, $09b0, $0180, $08f0, $7c7c, $0000, $0000, $003d +dw $0e78, $0e88, $0010, $0e80, $7f7f, $0000, $0000, $003e +dw $0ee0, $0fc0, $00e0, $0f50, $7f7f, $0000, $0000, $003f OWSouthEdges: -dw $0458, $0540, $00e8, $04cc, $0202, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0001 -dw $0058, $0058, $0000, $0058, $0008, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0003 -dw $0178, $0178, $0000, $0178, $0008, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0004 -dw $0388, $0388, $0000, $0388, $0009, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0005 -dw $0480, $05b0, $0130, $0518, $0a0a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0006 -dw $0f70, $0f90, $0020, $0f80, $0f0f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0007 -dw $0078, $0098, $0020, $0088, $1010, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0008 -dw $0138, $0158, $0020, $0148, $1010, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0009 -dw $02e8, $0348, $0060, $0318, $1111, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000a -dw $0478, $04d0, $0058, $04a4, $1212, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000b -dw $0510, $0538, $0028, $0524, $1212, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000c -dw $0a48, $0af0, $00a8, $0a9c, $1515, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000d -dw $0b28, $0b38, $0010, $0b30, $1515, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000e -dw $0b70, $0ba0, $0030, $0b88, $1515, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000f -dw $0a40, $0b10, $00d0, $0aa8, $1d1d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0010 -dw $0350, $0390, $0040, $0370, $1821, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0011 -dw $0670, $06a8, $0038, $068c, $1b23, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0012 -dw $0898, $09b0, $0118, $0924, $1b24, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0013 -dw $0a40, $0ba0, $0160, $0af0, $2525, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0014 -dw $0c70, $0c90, $0020, $0c80, $1e26, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0015 -dw $0f70, $0f80, $0010, $0f78, $1e27, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0016 -dw $0430, $0468, $0038, $044c, $2a2a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0017 -dw $04d8, $04f8, $0020, $04e8, $2a2a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0018 -dw $0688, $06b0, $0028, $069c, $2b2b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0019 -dw $08d0, $08f0, $0020, $08e0, $2c2c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001a -dw $0a80, $0b40, $00c0, $0ae0, $2d2d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001b -dw $0d38, $0d58, $0020, $0d48, $2e2e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001c -dw $0d90, $0da0, $0010, $0d98, $2e2e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001d -dw $06a0, $07b0, $0110, $0728, $3333, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001e -dw $0830, $09b0, $0180, $08f0, $3434, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001f -dw $0e78, $0e88, $0010, $0e80, $3737, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0020 -dw $0ee0, $0fc0, $00e0, $0f50, $3737, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0021 -dw $0458, $0540, $00e8, $04cc, $4242, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0022 -dw $0058, $0058, $0000, $0058, $4048, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0023 -dw $0178, $0178, $0000, $0178, $4048, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0024 -dw $0388, $0388, $0000, $0388, $4049, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0025 -dw $0480, $05b0, $0130, $0518, $4a4a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0026 -dw $0f70, $0f90, $0020, $0f80, $4f4f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0027 -dw $0078, $0098, $0020, $0088, $5050, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0028 -dw $0138, $0158, $0020, $0148, $5050, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0029 -dw $02e8, $0348, $0060, $0318, $5151, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002a -dw $0478, $04d0, $0058, $04a4, $5252, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002b -dw $0510, $0538, $0028, $0524, $5252, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002c -dw $0a48, $0af0, $00a8, $0a9c, $5555, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002d -dw $0b28, $0b38, $0010, $0b30, $5555, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002e -dw $0b70, $0ba0, $0030, $0b88, $5555, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002f -dw $0a40, $0b10, $00d0, $0aa8, $5d5d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0030 -dw $0350, $0390, $0040, $0370, $5861, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0031 -dw $0670, $06a8, $0038, $068c, $5b63, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0032 -dw $0898, $09b0, $0118, $0924, $5b64, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0033 -dw $0a40, $0ba0, $0160, $0af0, $6565, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0034 -dw $0c70, $0c90, $0020, $0c80, $5e66, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0035 -dw $0f70, $0f80, $0010, $0f78, $5e67, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0036 -dw $0430, $0468, $0038, $044c, $6a6a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0037 -dw $04d8, $04f8, $0020, $04e8, $6a6a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0038 -dw $0688, $06b0, $0028, $069c, $6b6b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0039 -dw $08d0, $08f0, $0020, $08e0, $6c6c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003a -dw $0a80, $0b40, $00c0, $0ae0, $6d6d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003b -dw $0d38, $0d58, $0020, $0d48, $6e6e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003c -dw $0d90, $0da0, $0010, $0d98, $6e6e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003d -dw $06a0, $07b0, $0110, $0728, $7373, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003e -dw $0830, $09b0, $0180, $08f0, $7474, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003f -dw $0e78, $0e88, $0010, $0e80, $7777, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0040 -dw $0ee0, $0fc0, $00e0, $0f50, $7777, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0041 -dw $0080, $0080, $0000, $0080, $8080, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000 ;Pedestal -dw $0288, $02c0, $0038, $02a4, $8189, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0002 ;Zora +dw $0458, $0540, $00e8, $04cc, $0202, $0000, $0000, $0001 +dw $0058, $0058, $0000, $0058, $0008, $0000, $0000, $0003 +dw $0178, $0178, $0000, $0178, $0008, $0000, $0000, $0004 +dw $0388, $0388, $0000, $0388, $0009, $0000, $0000, $0005 +dw $0480, $05b0, $0130, $0518, $0a0a, $0000, $0000, $0006 +dw $0f70, $0f90, $0020, $0f80, $0f0f, $0000, $0000, $0007 +dw $0078, $0098, $0020, $0088, $1010, $0000, $0000, $0008 +dw $0138, $0158, $0020, $0148, $1010, $0000, $0000, $0009 +dw $02e8, $0348, $0060, $0318, $1111, $0000, $0000, $000a +dw $0478, $04d0, $0058, $04a4, $1212, $0000, $0000, $000b +dw $0510, $0538, $0028, $0524, $1212, $0000, $0000, $000c +dw $0a48, $0af0, $00a8, $0a9c, $1515, $0000, $0000, $000d +dw $0b28, $0b38, $0010, $0b30, $1515, $0000, $0000, $000e +dw $0b70, $0ba0, $0030, $0b88, $1515, $0000, $0000, $000f +dw $0a40, $0b10, $00d0, $0aa8, $1d1d, $0000, $0000, $0010 +dw $0350, $0390, $0040, $0370, $1821, $0000, $0000, $0011 +dw $0670, $06a8, $0038, $068c, $1b23, $0000, $0000, $0012 +dw $0898, $09b0, $0118, $0924, $1b24, $0000, $0000, $0013 +dw $0a40, $0ba0, $0160, $0af0, $2525, $0000, $0000, $0014 +dw $0c70, $0c90, $0020, $0c80, $1e26, $0000, $0000, $0015 +dw $0f70, $0f80, $0010, $0f78, $1e27, $0000, $0000, $0016 +dw $0430, $0468, $0038, $044c, $2a2a, $0000, $0000, $0017 +dw $04d8, $04f8, $0020, $04e8, $2a2a, $0000, $0000, $0018 +dw $0688, $06b0, $0028, $069c, $2b2b, $0000, $0000, $0019 +dw $08d0, $08f0, $0020, $08e0, $2c2c, $0000, $0000, $001a +dw $0a80, $0b40, $00c0, $0ae0, $2d2d, $0000, $0000, $001b +dw $0d38, $0d58, $0020, $0d48, $2e2e, $0000, $0000, $001c +dw $0d90, $0da0, $0010, $0d98, $2e2e, $0000, $0000, $001d +dw $06a0, $07b0, $0110, $0728, $3333, $0000, $0000, $001e +dw $0830, $09b0, $0180, $08f0, $3434, $0000, $0000, $001f +dw $0e78, $0e88, $0010, $0e80, $3737, $0000, $0000, $0020 +dw $0ee0, $0fc0, $00e0, $0f50, $3737, $0000, $0000, $0021 +dw $0458, $0540, $00e8, $04cc, $4242, $0000, $0000, $0022 +dw $0058, $0058, $0000, $0058, $4048, $0000, $0000, $0023 +dw $0178, $0178, $0000, $0178, $4048, $0000, $0000, $0024 +dw $0388, $0388, $0000, $0388, $4049, $0000, $0000, $0025 +dw $0480, $05b0, $0130, $0518, $4a4a, $0000, $0000, $0026 +dw $0f70, $0f90, $0020, $0f80, $4f4f, $0000, $0000, $0027 +dw $0078, $0098, $0020, $0088, $5050, $0000, $0000, $0028 +dw $0138, $0158, $0020, $0148, $5050, $0000, $0000, $0029 +dw $02e8, $0348, $0060, $0318, $5151, $0000, $0000, $002a +dw $0478, $04d0, $0058, $04a4, $5252, $0000, $0000, $002b +dw $0510, $0538, $0028, $0524, $5252, $0000, $0000, $002c +dw $0a48, $0af0, $00a8, $0a9c, $5555, $0000, $0000, $002d +dw $0b28, $0b38, $0010, $0b30, $5555, $0000, $0000, $002e +dw $0b70, $0ba0, $0030, $0b88, $5555, $0000, $0000, $002f +dw $0a40, $0b10, $00d0, $0aa8, $5d5d, $0000, $0000, $0030 +dw $0350, $0390, $0040, $0370, $5861, $0000, $0000, $0031 +dw $0670, $06a8, $0038, $068c, $5b63, $0000, $0000, $0032 +dw $0898, $09b0, $0118, $0924, $5b64, $0000, $0000, $0033 +dw $0a40, $0ba0, $0160, $0af0, $6565, $0000, $0000, $0034 +dw $0c70, $0c90, $0020, $0c80, $5e66, $0000, $0000, $0035 +dw $0f70, $0f80, $0010, $0f78, $5e67, $0000, $0000, $0036 +dw $0430, $0468, $0038, $044c, $6a6a, $0000, $0000, $0037 +dw $04d8, $04f8, $0020, $04e8, $6a6a, $0000, $0000, $0038 +dw $0688, $06b0, $0028, $069c, $6b6b, $0000, $0000, $0039 +dw $08d0, $08f0, $0020, $08e0, $6c6c, $0000, $0000, $003a +dw $0a80, $0b40, $00c0, $0ae0, $6d6d, $0000, $0000, $003b +dw $0d38, $0d58, $0020, $0d48, $6e6e, $0000, $0000, $003c +dw $0d90, $0da0, $0010, $0d98, $6e6e, $0000, $0000, $003d +dw $06a0, $07b0, $0110, $0728, $7373, $0000, $0000, $003e +dw $0830, $09b0, $0180, $08f0, $7474, $0000, $0000, $003f +dw $0e78, $0e88, $0010, $0e80, $7777, $0000, $0000, $0040 +dw $0ee0, $0fc0, $00e0, $0f50, $7777, $0000, $0000, $0041 +dw $0080, $0080, $0000, $0080, $8080, $0000, $0000, $0000 ;Pedestal +dw $0288, $02c0, $0038, $02a4, $8189, $0000, $0000, $0002 ;Zora OWWestEdges: -dw $0070, $00a0, $0030, $0088, $0202, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000 -dw $0068, $0078, $0010, $0070, $0505, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0001 -dw $0068, $0088, $0020, $0078, $0707, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0002 -dw $0318, $0368, $0050, $0340, $050d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0003 -dw $0450, $0488, $0038, $046c, $1212, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0004 -dw $0560, $05a0, $0040, $0580, $1212, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0005 -dw $0488, $0500, $0078, $04c4, $1313, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0006 -dw $0538, $05a8, $0070, $0570, $1313, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0007 -dw $0470, $05a8, $0138, $050c, $1414, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0008 -dw $0470, $0598, $0128, $0504, $1515, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0009 -dw $0480, $0488, $0008, $0484, $1616, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000a -dw $04b0, $0510, $0060, $04e0, $1616, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000b -dw $0560, $0588, $0028, $0574, $1616, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000c -dw $0450, $0458, $0008, $0454, $1717, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000d -dw $0480, $04a8, $0028, $0494, $1717, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000e -dw $0718, $0738, $0020, $0728, $1b1b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000f -dw $0908, $0948, $0040, $0928, $2222, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0010 -dw $0878, $08a8, $0030, $0890, $2525, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0011 -dw $0bb8, $0bc8, $0010, $0bc0, $2929, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0012 -dw $0b60, $0ba0, $0040, $0b80, $2a2a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0013 -dw $0ab0, $0ad0, $0020, $0ac0, $2c2c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0014 -dw $0af0, $0b40, $0050, $0b18, $2c2c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0015 -dw $0b78, $0ba0, $0028, $0b8c, $2c2c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0016 -dw $0b10, $0b28, $0018, $0b1c, $2d2d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $004a -dw $0b68, $0b98, $0030, $0b80, $2d2d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0017 -dw $0a68, $0ab8, $0050, $0a90, $2e2e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0018 -dw $0b00, $0b78, $0078, $0b3c, $2e2e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0019 -dw $0c50, $0db8, $0168, $0d04, $3333, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001a -dw $0c78, $0ce3, $006b, $0cad, $3434, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001b -dw $0ce4, $0d33, $004f, $0d0b, $3434, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001c -dw $0d34, $0db8, $0084, $0d76, $3434, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001d -dw $0ea8, $0f20, $0078, $0ee4, $3a3a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001e -dw $0f70, $0fa8, $0038, $0f8c, $3a3a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001f -dw $0f18, $0f18, $0000, $0f18, $3b3b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0020 -dw $0fc8, $0fc8, $0000, $0fc8, $3b3b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0021 -dw $0e28, $0fb8, $0190, $0ef0, $3c3c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0022 -dw $0f78, $0fb8, $0040, $0f98, $353d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0023 -dw $0f20, $0f40, $0020, $0f30, $3f3f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0024 -dw $0f70, $0fb8, $0048, $0f94, $3f3f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0025 -dw $0070, $00a0, $0030, $0088, $4242, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0026 -dw $0068, $0078, $0010, $0070, $4545, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0027 -dw $0068, $0088, $0020, $0078, $4747, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0028 -dw $0318, $0368, $0050, $0340, $454d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0029 -dw $0450, $0488, $0038, $046c, $5252, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002a -dw $0560, $05a0, $0040, $0580, $5252, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002b -dw $0488, $0500, $0078, $04c4, $5353, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002c -dw $0538, $05a8, $0070, $0570, $5353, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002d -dw $0470, $05a8, $0138, $050c, $5454, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002e -dw $0470, $0598, $0128, $0504, $5555, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002f -dw $0480, $0488, $0008, $0484, $5656, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0030 -dw $04b0, $0510, $0060, $04e0, $5656, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0031 -dw $0560, $0588, $0028, $0574, $5656, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0032 -dw $0450, $0458, $0008, $0454, $5757, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0033 -dw $0480, $04a8, $0028, $0494, $5757, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0034 -dw $0908, $0948, $0040, $0928, $6262, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0035 -dw $0878, $08a8, $0030, $0890, $6565, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0036 -dw $0b60, $0b68, $0008, $0b64, $6969, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0037 -dw $0bb8, $0bc8, $0010, $0bc0, $6969, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0038 -dw $0b60, $0ba0, $0040, $0b80, $6a6a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0039 -dw $0ab0, $0ad0, $0020, $0ac0, $6c6c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003a -dw $0af0, $0b40, $0050, $0b18, $6c6c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003b -dw $0b78, $0ba0, $0028, $0b8c, $6c6c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003c -dw $0b68, $0b98, $0030, $0b80, $6d6d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003d -dw $0a68, $0ab8, $0050, $0a90, $6e6e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003e -dw $0b00, $0b78, $0078, $0b3c, $6e6e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003f -dw $0c50, $0db8, $0168, $0d04, $7373, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0040 -dw $0c78, $0ce3, $006b, $0cad, $7474, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0041 -dw $0ce4, $0d33, $004f, $0d0b, $7474, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0042 -dw $0d34, $0db8, $0084, $0d76, $7474, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0043 -dw $0f18, $0f18, $0000, $0f18, $7b7b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0044 -dw $0fc8, $0fc8, $0000, $0fc8, $7b7b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0045 -dw $0e28, $0fb8, $0190, $0ef0, $7c7c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0046 -dw $0f78, $0fb8, $0040, $0f98, $757d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0047 -dw $0f20, $0f40, $0020, $0f30, $7f7f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0048 -dw $0f70, $0fb8, $0048, $0f94, $7f7f, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0049 +dw $0070, $00a0, $0030, $0088, $0202, $0000, $0000, $0000 +dw $0068, $0078, $0010, $0070, $0505, $0000, $0000, $0001 +dw $0068, $0088, $0020, $0078, $0707, $0000, $0000, $0002 +dw $0318, $0368, $0050, $0340, $050d, $0000, $0000, $0003 +dw $0450, $0488, $0038, $046c, $1212, $0000, $0000, $0004 +dw $0560, $05a0, $0040, $0580, $1212, $0000, $0000, $0005 +dw $0488, $0500, $0078, $04c4, $1313, $0000, $0000, $0006 +dw $0538, $05a8, $0070, $0570, $1313, $0000, $0000, $0007 +dw $0470, $05a8, $0138, $050c, $1414, $0000, $0000, $0008 +dw $0470, $0598, $0128, $0504, $1515, $0000, $0000, $0009 +dw $0480, $0488, $0008, $0484, $1616, $0000, $0000, $000a +dw $04b0, $0510, $0060, $04e0, $1616, $0000, $0000, $000b +dw $0560, $0588, $0028, $0574, $1616, $0000, $0000, $000c +dw $0450, $0458, $0008, $0454, $1717, $0000, $0000, $000d +dw $0480, $04a8, $0028, $0494, $1717, $0000, $0000, $000e +dw $0718, $0738, $0020, $0728, $1b1b, $0000, $0000, $000f +dw $0908, $0948, $0040, $0928, $2222, $0000, $0000, $0010 +dw $0878, $08a8, $0030, $0890, $2525, $0000, $0000, $0011 +dw $0bb8, $0bc8, $0010, $0bc0, $2929, $0000, $0000, $0012 +dw $0b60, $0ba0, $0040, $0b80, $2a2a, $0000, $0000, $0013 +dw $0ab0, $0ad0, $0020, $0ac0, $2c2c, $0000, $0000, $0014 +dw $0af0, $0b40, $0050, $0b18, $2c2c, $0000, $0000, $0015 +dw $0b78, $0ba0, $0028, $0b8c, $2c2c, $0000, $0000, $0016 +dw $0b10, $0b28, $0018, $0b1c, $2d2d, $0000, $0000, $004a +dw $0b68, $0b98, $0030, $0b80, $2d2d, $0000, $0000, $0017 +dw $0a68, $0ab8, $0050, $0a90, $2e2e, $0000, $0000, $0018 +dw $0b00, $0b78, $0078, $0b3c, $2e2e, $0000, $0000, $0019 +dw $0c50, $0db8, $0168, $0d04, $3333, $0000, $0000, $001a +dw $0c78, $0ce3, $006b, $0cad, $3434, $0000, $0000, $001b +dw $0ce4, $0d33, $004f, $0d0b, $3434, $0000, $0000, $001c +dw $0d34, $0db8, $0084, $0d76, $3434, $0000, $0000, $001d +dw $0ea8, $0f20, $0078, $0ee4, $3a3a, $0000, $0000, $001e +dw $0f70, $0fa8, $0038, $0f8c, $3a3a, $0000, $0000, $001f +dw $0f18, $0f18, $0000, $0f18, $3b3b, $0000, $0000, $0020 +dw $0fc8, $0fc8, $0000, $0fc8, $3b3b, $0000, $0000, $0021 +dw $0e28, $0fb8, $0190, $0ef0, $3c3c, $0000, $0000, $0022 +dw $0f78, $0fb8, $0040, $0f98, $353d, $0000, $0000, $0023 +dw $0f20, $0f40, $0020, $0f30, $3f3f, $0000, $0000, $0024 +dw $0f70, $0fb8, $0048, $0f94, $3f3f, $0000, $0000, $0025 +dw $0070, $00a0, $0030, $0088, $4242, $0000, $0000, $0026 +dw $0068, $0078, $0010, $0070, $4545, $0000, $0000, $0027 +dw $0068, $0088, $0020, $0078, $4747, $0000, $0000, $0028 +dw $0318, $0368, $0050, $0340, $454d, $0000, $0000, $0029 +dw $0450, $0488, $0038, $046c, $5252, $0000, $0000, $002a +dw $0560, $05a0, $0040, $0580, $5252, $0000, $0000, $002b +dw $0488, $0500, $0078, $04c4, $5353, $0000, $0000, $002c +dw $0538, $05a8, $0070, $0570, $5353, $0000, $0000, $002d +dw $0470, $05a8, $0138, $050c, $5454, $0000, $0000, $002e +dw $0470, $0598, $0128, $0504, $5555, $0000, $0000, $002f +dw $0480, $0488, $0008, $0484, $5656, $0000, $0000, $0030 +dw $04b0, $0510, $0060, $04e0, $5656, $0000, $0000, $0031 +dw $0560, $0588, $0028, $0574, $5656, $0000, $0000, $0032 +dw $0450, $0458, $0008, $0454, $5757, $0000, $0000, $0033 +dw $0480, $04a8, $0028, $0494, $5757, $0000, $0000, $0034 +dw $0908, $0948, $0040, $0928, $6262, $0000, $0000, $0035 +dw $0878, $08a8, $0030, $0890, $6565, $0000, $0000, $0036 +dw $0b60, $0b68, $0008, $0b64, $6969, $0000, $0000, $0037 +dw $0bb8, $0bc8, $0010, $0bc0, $6969, $0000, $0000, $0038 +dw $0b60, $0ba0, $0040, $0b80, $6a6a, $0000, $0000, $0039 +dw $0ab0, $0ad0, $0020, $0ac0, $6c6c, $0000, $0000, $003a +dw $0af0, $0b40, $0050, $0b18, $6c6c, $0000, $0000, $003b +dw $0b78, $0ba0, $0028, $0b8c, $6c6c, $0000, $0000, $003c +dw $0b68, $0b98, $0030, $0b80, $6d6d, $0000, $0000, $003d +dw $0a68, $0ab8, $0050, $0a90, $6e6e, $0000, $0000, $003e +dw $0b00, $0b78, $0078, $0b3c, $6e6e, $0000, $0000, $003f +dw $0c50, $0db8, $0168, $0d04, $7373, $0000, $0000, $0040 +dw $0c78, $0ce3, $006b, $0cad, $7474, $0000, $0000, $0041 +dw $0ce4, $0d33, $004f, $0d0b, $7474, $0000, $0000, $0042 +dw $0d34, $0db8, $0084, $0d76, $7474, $0000, $0000, $0043 +dw $0f18, $0f18, $0000, $0f18, $7b7b, $0000, $0000, $0044 +dw $0fc8, $0fc8, $0000, $0fc8, $7b7b, $0000, $0000, $0045 +dw $0e28, $0fb8, $0190, $0ef0, $7c7c, $0000, $0000, $0046 +dw $0f78, $0fb8, $0040, $0f98, $757d, $0000, $0000, $0047 +dw $0f20, $0f40, $0020, $0f30, $7f7f, $0000, $0000, $0048 +dw $0f70, $0fb8, $0048, $0f94, $7f7f, $0000, $0000, $0049 OWEastEdges: -dw $0070, $00a0, $0030, $0088, $0001, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000 -dw $0068, $0078, $0010, $0070, $0304, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0001 -dw $0068, $0088, $0020, $0078, $0506, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0002 -dw $0318, $0368, $0050, $0340, $030c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0003 -dw $0450, $0488, $0038, $046c, $1111, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0004 -dw $0560, $05a0, $0040, $0580, $1111, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0005 -dw $0488, $0500, $0078, $04c4, $1212, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0006 -dw $0538, $05a8, $0070, $0570, $1212, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0007 -dw $0470, $05a8, $0138, $050c, $1313, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0008 -dw $0470, $0598, $0128, $0504, $1414, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0009 -dw $0480, $0488, $0008, $0484, $1515, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000a -dw $04b0, $0510, $0060, $04e0, $1515, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000b -dw $0560, $0588, $0028, $0574, $1515, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000c -dw $0450, $0458, $0008, $0454, $1616, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000d -dw $0480, $04a8, $0028, $0494, $1616, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000e -dw $0718, $0738, $0020, $0728, $1a1a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $000f -dw $0908, $0948, $0040, $0928, $1821, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0010 -dw $0878, $08a8, $0030, $0890, $1b24, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0011 -dw $0bb8, $0bc8, $0010, $0bc0, $2828, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0012 ;Race Game -dw $0b60, $0ba0, $0040, $0b80, $2929, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0013 -dw $0ab0, $0ad0, $0020, $0ac0, $2b2b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0014 -dw $0af0, $0b40, $0050, $0b18, $2b2b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0015 -dw $0b78, $0ba0, $0028, $0b8c, $2b2b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0016 -dw $0b68, $0b98, $0030, $0b80, $2c2c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0018 -dw $0a68, $0ab8, $0050, $0a90, $2d2d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0019 -dw $0b00, $0b78, $0078, $0b3c, $2d2d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001a -dw $0c50, $0db8, $0168, $0d04, $3232, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001b -dw $0c78, $0ce3, $006b, $0cad, $3333, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001c -dw $0ce4, $0d33, $004f, $0d0b, $3333, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001d -dw $0d34, $0db8, $0084, $0d76, $3333, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001e -dw $0ea8, $0f20, $0078, $0ee4, $3039, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $001f -dw $0f70, $0fa8, $0038, $0f8c, $3039, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0020 -dw $0f18, $0f18, $0000, $0f18, $3a3a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0021 -dw $0fc8, $0fc8, $0000, $0fc8, $3a3a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0022 -dw $0e28, $0fb8, $0190, $0ef0, $3b3b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0023 -dw $0f78, $0fb8, $0040, $0f98, $3c3c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0024 -dw $0f20, $0f40, $0020, $0f30, $353e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0025 -dw $0f70, $0fb8, $0048, $0f94, $353e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0026 -dw $0070, $00a0, $0030, $0088, $4041, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0027 ;Skull Woods -dw $0068, $0078, $0010, $0070, $4344, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0028 -dw $0068, $0088, $0020, $0078, $4546, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0029 -dw $0318, $0368, $0050, $0340, $434c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002a -dw $0450, $0488, $0038, $046c, $5151, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002b -dw $0560, $05a0, $0040, $0580, $5151, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002c -dw $0488, $0500, $0078, $04c4, $5252, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002d -dw $0538, $05a8, $0070, $0570, $5252, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002e -dw $0470, $05a8, $0138, $050c, $5353, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $002f -dw $0470, $0598, $0128, $0504, $5454, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0030 -dw $0480, $0488, $0008, $0484, $5555, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0031 -dw $04b0, $0510, $0060, $04e0, $5555, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0032 -dw $0560, $0588, $0028, $0574, $5555, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0033 -dw $0450, $0458, $0008, $0454, $5656, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0034 -dw $0480, $04a8, $0028, $0494, $5656, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0035 -dw $0908, $0948, $0040, $0928, $5861, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0036 -dw $0878, $08a8, $0030, $0890, $5b64, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0037 -dw $0b60, $0b68, $0008, $0b64, $6868, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0038 ;Dig Game -dw $0bb8, $0bc8, $0010, $0bc0, $6868, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0039 -dw $0b60, $0ba0, $0040, $0b80, $6969, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003a -dw $0ab0, $0ad0, $0020, $0ac0, $6b6b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003b -dw $0af0, $0b40, $0050, $0b18, $6b6b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003c -dw $0b78, $0ba0, $0028, $0b8c, $6b6b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003d -dw $0b68, $0b98, $0030, $0b80, $6c6c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003e -dw $0a68, $0ab8, $0050, $0a90, $6d6d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $003f -dw $0b00, $0b78, $0078, $0b3c, $6d6d, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0040 -dw $0c50, $0db8, $0168, $0d04, $7272, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0041 -dw $0c78, $0ce3, $006b, $0cad, $7373, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0042 -dw $0ce4, $0d33, $004f, $0d0b, $7373, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0043 -dw $0d34, $0db8, $0084, $0d76, $7373, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0044 -dw $0f18, $0f18, $0000, $0f18, $7a7a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0045 -dw $0fc8, $0fc8, $0000, $0fc8, $7a7a, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0046 -dw $0e28, $0fb8, $0190, $0ef0, $7b7b, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0047 -dw $0f78, $0fb8, $0040, $0f98, $7c7c, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0048 -dw $0f20, $0f40, $0020, $0f30, $757e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0049 -dw $0f70, $0fb8, $0048, $0f94, $757e, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $004a -dw $0058, $00c0, $0068, $008c, $8080, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0017 ;Hobo +dw $0070, $00a0, $0030, $0088, $0001, $0000, $0000, $0000 +dw $0068, $0078, $0010, $0070, $0304, $0000, $0000, $0001 +dw $0068, $0088, $0020, $0078, $0506, $0000, $0000, $0002 +dw $0318, $0368, $0050, $0340, $030c, $0000, $0000, $0003 +dw $0450, $0488, $0038, $046c, $1111, $0000, $0000, $0004 +dw $0560, $05a0, $0040, $0580, $1111, $0000, $0000, $0005 +dw $0488, $0500, $0078, $04c4, $1212, $0000, $0000, $0006 +dw $0538, $05a8, $0070, $0570, $1212, $0000, $0000, $0007 +dw $0470, $05a8, $0138, $050c, $1313, $0000, $0000, $0008 +dw $0470, $0598, $0128, $0504, $1414, $0000, $0000, $0009 +dw $0480, $0488, $0008, $0484, $1515, $0000, $0000, $000a +dw $04b0, $0510, $0060, $04e0, $1515, $0000, $0000, $000b +dw $0560, $0588, $0028, $0574, $1515, $0000, $0000, $000c +dw $0450, $0458, $0008, $0454, $1616, $0000, $0000, $000d +dw $0480, $04a8, $0028, $0494, $1616, $0000, $0000, $000e +dw $0718, $0738, $0020, $0728, $1a1a, $0000, $0000, $000f +dw $0908, $0948, $0040, $0928, $1821, $0000, $0000, $0010 +dw $0878, $08a8, $0030, $0890, $1b24, $0000, $0000, $0011 +dw $0bb8, $0bc8, $0010, $0bc0, $2828, $0000, $0000, $0012 ;Race Game +dw $0b60, $0ba0, $0040, $0b80, $2929, $0000, $0000, $0013 +dw $0ab0, $0ad0, $0020, $0ac0, $2b2b, $0000, $0000, $0014 +dw $0af0, $0b40, $0050, $0b18, $2b2b, $0000, $0000, $0015 +dw $0b78, $0ba0, $0028, $0b8c, $2b2b, $0000, $0000, $0016 +dw $0b68, $0b98, $0030, $0b80, $2c2c, $0000, $0000, $0018 +dw $0a68, $0ab8, $0050, $0a90, $2d2d, $0000, $0000, $0019 +dw $0b00, $0b78, $0078, $0b3c, $2d2d, $0000, $0000, $001a +dw $0c50, $0db8, $0168, $0d04, $3232, $0000, $0000, $001b +dw $0c78, $0ce3, $006b, $0cad, $3333, $0000, $0000, $001c +dw $0ce4, $0d33, $004f, $0d0b, $3333, $0000, $0000, $001d +dw $0d34, $0db8, $0084, $0d76, $3333, $0000, $0000, $001e +dw $0ea8, $0f20, $0078, $0ee4, $3039, $0000, $0000, $001f +dw $0f70, $0fa8, $0038, $0f8c, $3039, $0000, $0000, $0020 +dw $0f18, $0f18, $0000, $0f18, $3a3a, $0000, $0000, $0021 +dw $0fc8, $0fc8, $0000, $0fc8, $3a3a, $0000, $0000, $0022 +dw $0e28, $0fb8, $0190, $0ef0, $3b3b, $0000, $0000, $0023 +dw $0f78, $0fb8, $0040, $0f98, $3c3c, $0000, $0000, $0024 +dw $0f20, $0f40, $0020, $0f30, $353e, $0000, $0000, $0025 +dw $0f70, $0fb8, $0048, $0f94, $353e, $0000, $0000, $0026 +dw $0070, $00a0, $0030, $0088, $4041, $0000, $0000, $0027 ;Skull Woods +dw $0068, $0078, $0010, $0070, $4344, $0000, $0000, $0028 +dw $0068, $0088, $0020, $0078, $4546, $0000, $0000, $0029 +dw $0318, $0368, $0050, $0340, $434c, $0000, $0000, $002a +dw $0450, $0488, $0038, $046c, $5151, $0000, $0000, $002b +dw $0560, $05a0, $0040, $0580, $5151, $0000, $0000, $002c +dw $0488, $0500, $0078, $04c4, $5252, $0000, $0000, $002d +dw $0538, $05a8, $0070, $0570, $5252, $0000, $0000, $002e +dw $0470, $05a8, $0138, $050c, $5353, $0000, $0000, $002f +dw $0470, $0598, $0128, $0504, $5454, $0000, $0000, $0030 +dw $0480, $0488, $0008, $0484, $5555, $0000, $0000, $0031 +dw $04b0, $0510, $0060, $04e0, $5555, $0000, $0000, $0032 +dw $0560, $0588, $0028, $0574, $5555, $0000, $0000, $0033 +dw $0450, $0458, $0008, $0454, $5656, $0000, $0000, $0034 +dw $0480, $04a8, $0028, $0494, $5656, $0000, $0000, $0035 +dw $0908, $0948, $0040, $0928, $5861, $0000, $0000, $0036 +dw $0878, $08a8, $0030, $0890, $5b64, $0000, $0000, $0037 +dw $0b60, $0b68, $0008, $0b64, $6868, $0000, $0000, $0038 ;Dig Game +dw $0bb8, $0bc8, $0010, $0bc0, $6868, $0000, $0000, $0039 +dw $0b60, $0ba0, $0040, $0b80, $6969, $0000, $0000, $003a +dw $0ab0, $0ad0, $0020, $0ac0, $6b6b, $0000, $0000, $003b +dw $0af0, $0b40, $0050, $0b18, $6b6b, $0000, $0000, $003c +dw $0b78, $0ba0, $0028, $0b8c, $6b6b, $0000, $0000, $003d +dw $0b68, $0b98, $0030, $0b80, $6c6c, $0000, $0000, $003e +dw $0a68, $0ab8, $0050, $0a90, $6d6d, $0000, $0000, $003f +dw $0b00, $0b78, $0078, $0b3c, $6d6d, $0000, $0000, $0040 +dw $0c50, $0db8, $0168, $0d04, $7272, $0000, $0000, $0041 +dw $0c78, $0ce3, $006b, $0cad, $7373, $0000, $0000, $0042 +dw $0ce4, $0d33, $004f, $0d0b, $7373, $0000, $0000, $0043 +dw $0d34, $0db8, $0084, $0d76, $7373, $0000, $0000, $0044 +dw $0f18, $0f18, $0000, $0f18, $7a7a, $0000, $0000, $0045 +dw $0fc8, $0fc8, $0000, $0fc8, $7a7a, $0000, $0000, $0046 +dw $0e28, $0fb8, $0190, $0ef0, $7b7b, $0000, $0000, $0047 +dw $0f78, $0fb8, $0040, $0f98, $7c7c, $0000, $0000, $0048 +dw $0f20, $0f40, $0020, $0f30, $757e, $0000, $0000, $0049 +dw $0f70, $0fb8, $0048, $0f94, $757e, $0000, $0000, $004a +dw $0058, $00c0, $0068, $008c, $8080, $0000, $0000, $0017 ;Hobo diff --git a/data/base2current.bps b/data/base2current.bps index fded3b17a1c2fa5c9ead792eedcbfa3b383c9799..9c23f37a2c177ded4023b6b403bedcaa8c8639a6 100644 GIT binary patch delta 3946 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 delta 4171 zcmX|CdsI_by5Bn|33-z6i1L*16i{9w8bJg^In&W2*(%_strTQVazR?mO46PUDq{Z@64JzcP*#bmYH#;&TVJitGzS1`vCX;k^SxS z`+ocTzWrtI-~Q#Otox44n+2)6@70d4f;0cMHs?LXA?OJPLB_B27H!OrcVoiyGu5f>%ScGsyZW%MgdRX%2yfYh)K`LS9-U{Qa(ET@s$3uW0Y>q zf0B+rp7P}1Pw<|_zA4ZBgx-_*iz!Ze$fBlyHw-2T?e!>KP1ol?Nx{bZgsJyd;A8ha z_w~Icn7;4oYnMLmyWE|GiJ9w8#Ina%I=Z9rvd6Auy4`sH%4PR!;|~!0&d~SUS1~Yr z{O_-5NM$F}w=JXeRM_Ri3HN6@=pf$ryD?Yp#_jouY z>Qme*`_Ku237Q}vBhG*4Tek>wP#qK?V~BrU*fQEl0b1;pWWxvv(@J?hDzEKgYx2KF zONUcZF}tI{+HV3@pa&hi?#&;swbs#t1~Y7gdQcAW=_noT4gzzca_Rtxpd$S@+%jMi zKM^;ATjD5BW&e#v2|cKl7$m76NrE4`6`)-4QZWJs6tVY;MA)eWsY-)V3$m5?p+f~) zltapF&@pq(tp>#kt?~&NQ6&2{gYIBZL-kU{poK~s-uH(2Pi$d>-O(Z)ks3gkbcKJ- zZo69xtTL}W0w&2<{V3Hhqn6Fq`ayhA(Bd&?I^|tQ@&xfho8nSPSUj zqVb1!05C5D&w{5l&p?d^8}p`79A~zmO8e#`7LT@;wyB$^QO!*!mzVP!_He{=TxCHC z+*V6_Z7rWyGm8?rd@|PElPM8O;)c;KTe#*EHuBsoO6JnZ*mxr^8gpf}vnYjYsGSv- zFDJ{#6gNEOKw@qf$ElXlNW$rf!4ia| zvzJg1Cq=lHMl!CB##L4%=eAk}pF+TiRSK5iDuN>&d%oGi9XxJf|0rO=0+(2gU?-54 z^C5G*zZszr?j%Bq_li$mLZM_MN&f9t6ef^JqHvN3rTF&`Asu&c2rUjNYPLjZ>@b8Z&Xfk(@7@^=4q2OxIcA1+2 zWSIb^E;cJ|F?af6vsQ5Cg>I3BNv^;msaBIz?M?ge3*vZNaFC;8MaS-ihK>p+M+j&TsH8*dNFcK? z$zNU;j8gU0vu;Vk$HymPcKr$pL1~k!A3Fr_5i3xlz4)aBIUD;vlmyAeSK#K%# z9CrqR7V(J009BIPZ2+PhuwaCT-(KhfurV7Vh`WKd0oymK;sW^q}3H+#oMf|s{b2dzYFx^3D?K-zr234Yjr<9+V3*<<5-(3#x@Vj z23_(&d}6|Nd}0xuXAl|7`Zdn}^*m=G=t8)>exk_7gg8Wn7i^?pV{Jr*m)S@pL{xY} z@W(9Tu>^lmYh%qdHnh&4Rs9W-;Z@b&;GF|V&+Ql>dKb_6gs+5!uSD`SK?K)_Hu%Ra zbM^_rmqL7~#J{wW=qPan?AFw#@k02~_1z7$7GmZU9T{z}p^T6w$Z7DQi~rviA`p#Wn#gO{XU!&yfB#e+q$MDSa(XbQ zWOvGrMy78+9klEN<`+?LJ=Lb`<7LtC^UxJ_6*~Gim7A}Z(wmE4FTbQ(^J8C2{Cj;_ zD{|<*%=8?(Jp|a#CD{AY6YR_n8L&#{T7JlOCoDHNI|OP0%+1x>lMdLJU70W`)c^Jx z`?v82JKJk>M&FEcT?^`Ax-+3c>xw*S>q{%u(YNc$?${4!Gr!M-o2X{vpP9rg*e!FN zJ~hQ@3_AW_vf$M)xg^?yHa$3e*2_1P!p|u=ze{ z0j9GCT1ABsOj0c@pn}hP`Gd7^B^0xpsWIkS9n7Gl+A-$SI=GUmI)V7_>Y!Sd!xx+z z`-@hq7lS*X0$cz~!4-hOW6%<43C!YO1}?Le)nolvKsR_3EY9em~+a8CyHR_r)q z>41^cS=l)6>VT6fMZ?kA_lv3=t6uJ6L35ITou_yEilr?-~U%v=BtQBCSQ z*E>ZU^Ze)E^||W<5TpYSfZ#3@+~#Ws&>p$)Dn+tD}4W Date: Sun, 2 May 2021 20:32:51 -0500 Subject: [PATCH 9/9] Version update --- OverworldShuffle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OverworldShuffle.py b/OverworldShuffle.py index e702260d..1a0d4b05 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -2,7 +2,7 @@ import random from BaseClasses import OWEdge, WorldType, Direction, Terrain from OWEdges import OWEdgeGroups -__version__ = '0.1.1.1-u' +__version__ = '0.1.1.2-u' def link_overworld(world, player): # setup mandatory connections