LADX: Pass in seed_name and auth separately (#1575)

This commit is contained in:
zig-for
2023-03-23 13:23:58 -07:00
committed by GitHub
parent 5bb6ff0ce0
commit e1f46d623c
3 changed files with 17 additions and 23 deletions

View File

@@ -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:

View File

@@ -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