Encrypt most of the remaining items, and all player IDs
This commit is contained in:
parent
83db79815a
commit
7cf4ad35a9
17
Regions.py
17
Regions.py
|
@ -397,6 +397,23 @@ shop_table = {
|
||||||
'Capacity Upgrade': (0x0115, ShopType.UpgradeShop, 0x04, True, True, [('Bomb Upgrade (+5)', 100, 7), ('Arrow Upgrade (+5)', 100, 7)])
|
'Capacity Upgrade': (0x0115, ShopType.UpgradeShop, 0x04, True, True, [('Bomb Upgrade (+5)', 100, 7), ('Arrow Upgrade (+5)', 100, 7)])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
old_location_address_to_new_location_address = {
|
||||||
|
0x2eb18: 0x18001b, # Bottle Merchant
|
||||||
|
0x33d68: 0x18001a, # Purple Chest
|
||||||
|
0x2df45: 0x18001d, # Link's Uncle
|
||||||
|
0x2f1fc: 0x180008, # Sahasrahla
|
||||||
|
0x18002a: 0x18001c, # Black Smith
|
||||||
|
0x339cf: 0x180009, # Sick Kid
|
||||||
|
0x33e7d: 0x180019, # Hobo
|
||||||
|
0x180160: 0x18000b, # Desert Palace - Desert Torch
|
||||||
|
0x289b0: 0x180018, # Master Sword Pedestal
|
||||||
|
0xf69fa: 0x180007, # Old Man
|
||||||
|
0x180162: 0x18000d, # Tower of Hera - Basement Cage
|
||||||
|
0x330c7: 0x18000a, # Stumpy
|
||||||
|
0x180161: 0x18000c # Ganons Tower - Bob's Torch
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
key_drop_data = {
|
key_drop_data = {
|
||||||
'Hyrule Castle - Map Guard Key Drop': [0x140036, 0x140037],
|
'Hyrule Castle - Map Guard Key Drop': [0x140036, 0x140037],
|
||||||
'Hyrule Castle - Boomerang Guard Key Drop': [0x140033, 0x140034],
|
'Hyrule Castle - Boomerang Guard Key Drop': [0x140033, 0x140034],
|
||||||
|
|
11
Rom.py
11
Rom.py
|
@ -1,7 +1,7 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = '0fc63d72970ab96ffb18699f4d12a594'
|
RANDOMIZERBASEHASH = '8021a943f940a0bb5800c013138c02e8'
|
||||||
|
|
||||||
import io
|
import io
|
||||||
import json
|
import json
|
||||||
|
@ -19,7 +19,7 @@ from typing import Optional
|
||||||
|
|
||||||
from BaseClasses import CollectionState, ShopType, Region, Location
|
from BaseClasses import CollectionState, ShopType, Region, Location
|
||||||
from Dungeons import dungeon_music_addresses
|
from Dungeons import dungeon_music_addresses
|
||||||
from Regions import location_table
|
from Regions import location_table, old_location_address_to_new_location_address
|
||||||
from Text import MultiByteTextMapper, CompressedTextMapper, text_addresses, Credits, TextTable
|
from Text import MultiByteTextMapper, CompressedTextMapper, text_addresses, Credits, TextTable
|
||||||
from Text import Uncle_texts, Ganon1_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, \
|
from Text import Uncle_texts, Ganon1_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, \
|
||||||
BombShop2_texts, junk_texts
|
BombShop2_texts, junk_texts
|
||||||
|
@ -93,8 +93,10 @@ class LocalRom(object):
|
||||||
self.write_bytes(0x186140, [0] * 0x150)
|
self.write_bytes(0x186140, [0] * 0x150)
|
||||||
self.write_bytes(0x186140 + 0x150, itemplayertable)
|
self.write_bytes(0x186140 + 0x150, itemplayertable)
|
||||||
self.encrypt_range(0x186140 + 0x150, 168, key)
|
self.encrypt_range(0x186140 + 0x150, 168, key)
|
||||||
|
self.encrypt_range(0x186338, 56, key)
|
||||||
self.encrypt_range(0x180000, 32, key)
|
self.encrypt_range(0x180000, 32, key)
|
||||||
self.encrypt_range(0x180140, 32, key)
|
self.encrypt_range(0x180140, 32, key)
|
||||||
|
self.encrypt_range(0xEDA1, 8, key)
|
||||||
|
|
||||||
def write_to_file(self, file, hide_enemizer=False):
|
def write_to_file(self, file, hide_enemizer=False):
|
||||||
with open(file, 'wb') as outfile:
|
with open(file, 'wb') as outfile:
|
||||||
|
@ -661,7 +663,8 @@ def patch_rom(world, rom, player, team, enemized):
|
||||||
rom.write_byte(location.player_address, location.item.player)
|
rom.write_byte(location.player_address, location.item.player)
|
||||||
else:
|
else:
|
||||||
itemid = 0x5A
|
itemid = 0x5A
|
||||||
rom.write_byte(location.address, itemid)
|
location_address = old_location_address_to_new_location_address.get(location.address, location.address)
|
||||||
|
rom.write_byte(location_address, itemid)
|
||||||
else:
|
else:
|
||||||
# crystals
|
# crystals
|
||||||
for address, value in zip(location.address, itemid):
|
for address, value in zip(location.address, itemid):
|
||||||
|
@ -1476,7 +1479,7 @@ def patch_rom(world, rom, player, team, enemized):
|
||||||
|
|
||||||
write_strings(rom, world, player, team)
|
write_strings(rom, world, player, team)
|
||||||
|
|
||||||
rom.write_byte(0x18636C, 1 if world.remote_items[player] else 0)
|
rom.write_byte(0x18637C, 1 if world.remote_items[player] else 0)
|
||||||
|
|
||||||
# set rom name
|
# set rom name
|
||||||
# 21 bytes
|
# 21 bytes
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue