mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
LADX: generate without rom (#4278)
This commit is contained in:
@@ -541,7 +541,7 @@ OAMData:
|
||||
rom.banks[0x38][0x1400+n*0x20:0x1410+n*0x20] = utils.createTileData(gfx_high)
|
||||
rom.banks[0x38][0x1410+n*0x20:0x1420+n*0x20] = utils.createTileData(gfx_low)
|
||||
|
||||
def addBootsControls(rom, boots_controls: BootsControls):
|
||||
def addBootsControls(rom, boots_controls: int):
|
||||
if boots_controls == BootsControls.option_vanilla:
|
||||
return
|
||||
consts = {
|
||||
@@ -578,7 +578,7 @@ def addBootsControls(rom, boots_controls: BootsControls):
|
||||
jr z, .yesBoots
|
||||
ld a, [hl]
|
||||
"""
|
||||
}[boots_controls.value]
|
||||
}[boots_controls]
|
||||
|
||||
# The new code fits exactly within Nintendo's poorly space optimzied code while having more features
|
||||
boots_code = assembler.ASM("""
|
||||
|
||||
@@ -42,7 +42,7 @@ MINIBOSS_ENTITIES = {
|
||||
"ARMOS_KNIGHT": [(4, 3, 0x88)],
|
||||
}
|
||||
MINIBOSS_ROOMS = {
|
||||
0: 0x111, 1: 0x128, 2: 0x145, 3: 0x164, 4: 0x193, 5: 0x1C5, 6: 0x228, 7: 0x23F,
|
||||
"0": 0x111, "1": 0x128, "2": 0x145, "3": 0x164, "4": 0x193, "5": 0x1C5, "6": 0x228, "7": 0x23F,
|
||||
"c1": 0x30C, "c2": 0x303,
|
||||
"moblin_cave": 0x2E1,
|
||||
"armos_temple": 0x27F,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
from ..backgroundEditor import BackgroundEditor
|
||||
from .aesthetics import rgb_to_bin, bin_to_rgb, prepatch
|
||||
import copy
|
||||
import pkgutil
|
||||
CHAR_MAP = {'z': 0x3E, '-': 0x3F, '.': 0x39, ':': 0x42, '?': 0x3C, '!': 0x3D}
|
||||
|
||||
def _encode(s):
|
||||
@@ -18,17 +17,18 @@ def _encode(s):
|
||||
return result
|
||||
|
||||
|
||||
def setRomInfo(rom, seed, seed_name, settings, player_name, player_id):
|
||||
def setRomInfo(rom, patch_data):
|
||||
seed_name = patch_data["seed_name"]
|
||||
try:
|
||||
seednr = int(seed, 16)
|
||||
seednr = int(patch_data["seed"], 16)
|
||||
except:
|
||||
import hashlib
|
||||
seednr = int(hashlib.md5(seed).hexdigest(), 16)
|
||||
seednr = int(hashlib.md5(str(patch_data["seed"]).encode()).hexdigest(), 16)
|
||||
|
||||
if settings.race:
|
||||
if patch_data["is_race"]:
|
||||
seed_name = "Race"
|
||||
if isinstance(settings.race, str):
|
||||
seed_name += " " + settings.race
|
||||
if isinstance(patch_data["is_race"], str):
|
||||
seed_name += " " + patch_data["is_race"]
|
||||
rom.patch(0x00, 0x07, "00", "01")
|
||||
else:
|
||||
rom.patch(0x00, 0x07, "00", "52")
|
||||
@@ -37,7 +37,7 @@ def setRomInfo(rom, seed, seed_name, settings, player_name, player_id):
|
||||
#line_2_hex = _encode(seed[16:])
|
||||
BASE_DRAWING_AREA = 0x98a0
|
||||
LINE_WIDTH = 0x20
|
||||
player_id_text = f"Player {player_id}:"
|
||||
player_id_text = f"Player {patch_data['player']}:"
|
||||
for n in (3, 4):
|
||||
be = BackgroundEditor(rom, n)
|
||||
ba = BackgroundEditor(rom, n, attributes=True)
|
||||
@@ -45,9 +45,9 @@ def setRomInfo(rom, seed, seed_name, settings, player_name, player_id):
|
||||
for n, v in enumerate(_encode(player_id_text)):
|
||||
be.tiles[BASE_DRAWING_AREA + LINE_WIDTH * 5 + 2 + n] = v
|
||||
ba.tiles[BASE_DRAWING_AREA + LINE_WIDTH * 5 + 2 + n] = 0x00
|
||||
for n, v in enumerate(_encode(player_name)):
|
||||
be.tiles[BASE_DRAWING_AREA + LINE_WIDTH * 6 + 0x13 - len(player_name) + n] = v
|
||||
ba.tiles[BASE_DRAWING_AREA + LINE_WIDTH * 6 + 0x13 - len(player_name) + n] = 0x00
|
||||
for n, v in enumerate(_encode(patch_data['player_name'])):
|
||||
be.tiles[BASE_DRAWING_AREA + LINE_WIDTH * 6 + 0x13 - len(patch_data['player_name']) + n] = v
|
||||
ba.tiles[BASE_DRAWING_AREA + LINE_WIDTH * 6 + 0x13 - len(patch_data['player_name']) + n] = 0x00
|
||||
for n, v in enumerate(line_1_hex):
|
||||
be.tiles[0x9a20 + n] = v
|
||||
ba.tiles[0x9a20 + n] = 0x00
|
||||
|
||||
@@ -387,7 +387,7 @@ def patchVarious(rom, settings):
|
||||
|
||||
# Boomerang trade guy
|
||||
# if settings.boomerang not in {'trade', 'gift'} or settings.overworld in {'normal', 'nodungeons'}:
|
||||
if settings.tradequest:
|
||||
if settings["tradequest"]:
|
||||
# Update magnifier checks
|
||||
rom.patch(0x19, 0x05EC, ASM("ld a, [wTradeSequenceItem]\ncp $0E\njp nz, $7E61"), ASM("ld a, [wTradeSequenceItem2]\nand $20\njp z, $7E61")) # show the guy
|
||||
rom.patch(0x00, 0x3199, ASM("ld a, [wTradeSequenceItem]\ncp $0E\njr nz, $06"), ASM("ld a, [wTradeSequenceItem2]\nand $20\njr z, $06")) # load the proper room layout
|
||||
|
||||
Reference in New Issue
Block a user