LADX: Pass in seed_name and auth separately (#1575)
This commit is contained in:
@@ -60,7 +60,7 @@ from ..Options import TrendyGame, Palette
|
||||
|
||||
|
||||
# Function to generate a final rom, this patches the rom with all required patches
|
||||
def generateRom(args, settings, ap_settings, seed, logic, rnd=None, multiworld=None, player_name=None, player_names=[], player_id = 0):
|
||||
def generateRom(args, settings, ap_settings, auth, seed_name, logic, rnd=None, multiworld=None, player_name=None, player_names=[], player_id = 0):
|
||||
rom = ROMWithTables(args.input_filename)
|
||||
rom.player_names = player_names
|
||||
pymods = []
|
||||
@@ -119,7 +119,7 @@ def generateRom(args, settings, ap_settings, seed, logic, rnd=None, multiworld=N
|
||||
patches.core.easyColorDungeonAccess(rom)
|
||||
patches.owl.removeOwlEvents(rom)
|
||||
patches.enemies.fixArmosKnightAsMiniboss(rom)
|
||||
patches.bank3e.addBank3E(rom, seed, player_id, player_names)
|
||||
patches.bank3e.addBank3E(rom, auth, player_id, player_names)
|
||||
patches.bank3f.addBank3F(rom)
|
||||
patches.bank34.addBank34(rom, item_list)
|
||||
patches.core.removeGhost(rom)
|
||||
@@ -269,7 +269,7 @@ def generateRom(args, settings, ap_settings, seed, logic, rnd=None, multiworld=N
|
||||
patches.core.addFrameCounter(rom, len(item_list))
|
||||
|
||||
patches.core.warpHome(rom) # Needs to be done after setting the start location.
|
||||
patches.titleScreen.setRomInfo(rom, binascii.hexlify(seed).decode("ascii").upper(), settings, player_name, player_id)
|
||||
patches.titleScreen.setRomInfo(rom, auth, seed_name, settings, player_name, player_id)
|
||||
patches.endscreen.updateEndScreen(rom)
|
||||
patches.aesthetics.updateSpriteData(rom)
|
||||
if args.doubletrouble:
|
||||
@@ -411,13 +411,9 @@ def generateRom(args, settings, ap_settings, seed, logic, rnd=None, multiworld=N
|
||||
rom.banks[bank][address + 1] = packed >> 8
|
||||
|
||||
SEED_LOCATION = 0x0134
|
||||
SEED_SIZE = 10
|
||||
|
||||
# TODO: pass this in
|
||||
# Patch over the title
|
||||
assert(len(seed) == SEED_SIZE)
|
||||
gameid = seed + player_id.to_bytes(2, 'big')
|
||||
rom.patch(0x00, SEED_LOCATION, None, binascii.hexlify(gameid))
|
||||
assert(len(auth) == 12)
|
||||
rom.patch(0x00, SEED_LOCATION, None, binascii.hexlify(auth))
|
||||
|
||||
|
||||
for pymod in pymods:
|
||||
|
||||
@@ -20,27 +20,22 @@ def _encode(s):
|
||||
return result
|
||||
|
||||
|
||||
def setRomInfo(rom, seed, settings, player_name, player_id):
|
||||
#try:
|
||||
# version = subprocess.run(['git', 'describe', '--tags', '--dirty=-D'], stdout=subprocess.PIPE).stdout.strip().decode("ascii", "replace")
|
||||
#except:
|
||||
# version = ""
|
||||
|
||||
def setRomInfo(rom, seed, seed_name, settings, player_name, player_id):
|
||||
try:
|
||||
seednr = int(seed, 16)
|
||||
except:
|
||||
import hashlib
|
||||
seednr = int(hashlib.md5(seed.encode('ascii', 'replace')).hexdigest(), 16)
|
||||
seednr = int(hashlib.md5(seed).hexdigest(), 16)
|
||||
|
||||
if settings.race:
|
||||
seed = "Race"
|
||||
seed_name = "Race"
|
||||
if isinstance(settings.race, str):
|
||||
seed += " " + settings.race
|
||||
seed_name += " " + settings.race
|
||||
rom.patch(0x00, 0x07, "00", "01")
|
||||
else:
|
||||
rom.patch(0x00, 0x07, "00", "52")
|
||||
|
||||
line_1_hex = _encode(seed)
|
||||
line_1_hex = _encode(seed_name[:20])
|
||||
#line_2_hex = _encode(seed[16:])
|
||||
BASE_DRAWING_AREA = 0x98a0
|
||||
LINE_WIDTH = 0x20
|
||||
|
||||
Reference in New Issue
Block a user