From 5418dbfb88400e369eb61c7903bd39dcd08b87f0 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Sun, 4 Jan 2026 07:17:24 -0600 Subject: [PATCH] Update baserom, set item loot levels for crystals, pendants, and bomb bag --- CLI.py | 2 +- ItemList.py | 7 ++++++- Rom.py | 23 +++++++++++++++++++++-- data/base2current.bps | Bin 145846 -> 145872 bytes 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/CLI.py b/CLI.py index 5db1fc78..f5b7bb89 100644 --- a/CLI.py +++ b/CLI.py @@ -106,7 +106,7 @@ def parse_cli(argv, no_defaults=False): ret = parser.parse_args(argv) if ret.keysanity: - ret.mapshuffle, ret.compassshuffle, ret.keyshuffle, ret.bigkeyshuffle = 'wild' * 4 + ret.mapshuffle, ret.compassshuffle, ret.keyshuffle, ret.bigkeyshuffle = ['wild'] * 4 if ret.keydropshuffle: ret.dropshuffle = 'keys' if ret.dropshuffle == 'none' else ret.dropshuffle diff --git a/ItemList.py b/ItemList.py index 44d1dde9..36a2990b 100644 --- a/ItemList.py +++ b/ItemList.py @@ -1107,7 +1107,7 @@ def get_pool_core(world, player, progressive, shuffle, difficulty, treasure_hunt precollected_items.append('Pegasus Boots') pool.remove('Pegasus Boots') pool.extend(['Rupees (20)']) - + if want_progressives(): pool.extend(progressivegloves) else: @@ -1124,6 +1124,11 @@ def get_pool_core(world, player, progressive, shuffle, difficulty, treasure_hunt diff = difficulties[difficulty] pool.extend(diff.baseitems) + if world.compassshuffle[player] == 'wild': + pool.extend(['Compass (Escape)']) + if world.keyshuffle[player] == 'wild': + pool.extend(['Compass (Agahnims Tower)']) + if bombbag: pool = [item.replace('Bomb Upgrade (+5)','Rupees (5)') for item in pool] pool = [item.replace('Bomb Upgrade (+10)','Rupees (5)') for item in pool] diff --git a/Rom.py b/Rom.py index 6666c8cd..20cb11c6 100644 --- a/Rom.py +++ b/Rom.py @@ -44,7 +44,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '8e29777cf6d1ff6fceb72bbf7aacb62c' +RANDOMIZERBASEHASH = '3e385a852b789c31079aa6a14ff2498d' class JsonRom(object): @@ -1447,9 +1447,28 @@ def patch_rom(world, rom, player, team, is_mystery=False, rom_header=None): loot_show |= 0x02 if world.dropshuffle[player] != 'none': loot_show |= 0x04 - rom.write_byte(0x1CFF10, loot_show) + loot_icons = 0x1CF900 + if world.bombbag[player]: + rom.write_byte(loot_icons + 0x52, 0x0B) # bomb bag is major + + crystal_ids = [0x20, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6] + if world.goal[player] in ['ganon', 'dungeons', 'crystals', 'trinity']: + crystal_category = 0x0D + else: + crystal_category = 0x06 + for crystal_id in crystal_ids: + rom.write_byte(loot_icons + crystal_id, crystal_category) + + pendant_ids = [0x37, 0x38, 0x39] + if world.goal[player] in ['pedestal', 'dungeons']: + pendant_category = 0x0C + else: + pendant_category = 0x06 + for pendant_id in pendant_ids: + rom.write_byte(loot_icons + pendant_id, pendant_category) + # compasses showing dungeon count compass_mode = 0x80 if world.compassshuffle[player] not in ['none', 'nearby'] else 0x00 if world.clock_mode != 'none' or world.dungeon_counters[player] == 'off': diff --git a/data/base2current.bps b/data/base2current.bps index deb687f7113065f7786f5212976816ecf9751ed0..b803f6b3526f0bbc1b8d35f22c93169dbe0a83f0 100644 GIT binary patch delta 531 zcmV+u0_^>^^9a!M2(VfM1PM6y$Aex2hh75#w_XDR?hzT&z>^Dgg(ZZCM+5)?Cjf)n z0z()8E&!6$mt7SCn+IG+>Kk>D54Zmn0(TV?!1}om156x;DgO_}4$$u6Aiu$vi7NtL z5t{nBk2=MEuble1k37YGub#K~D*_t=7J&G)L5Wj|(DJ}x` z0s#7#Auj?SNdo%0mj+S&)xem5yCekA#=ivmxrGJ41Nymz1g8X>Dp1gYu$D!3tcAaz zpPGg8o0p88yNLh@(B;3Plbn+`7F~dWyPGx@U4WN~F9PEN0Qt9WFaoy*0YR50Hv%#e z4}k}fn`J!KS%5MxGH)`kGVhmaHv%Ak4l538J}W+JI;%SCIx9M(R2Dmc-32QJYZWUN zD+wzKD>*AUYY!_AYdGZ!WBtHfS+AfR~Gp z@RvJpF@Ti|1qBNN0+)}84-O8>Cso+Kcv;`RH5k;k03X$pT5-XJ4Gp(BcD8eXW_2cj zHG!8hI08=ufd?nWmxVY2SP>%y2!Nk%QHWuHP$hXKP$hVm?l=N74{%*XfCHU<24Yvmt0(TV?VEVZb156x;DgO_}4$$u6AirUkkt+gT5jy(0k2=ME zuRQv>k37YGuRgXc0viGrK=`?t1`xkO__>(~5WhtDxtSgizeblaE&}!f!1U_YZogRD+?pCksqkKV7 zfZYWv1#1;67ApxW3M)A)IcpCq4{JXwKWm@RodRzHD+22Rub<(a3@Z$4JS#kFpV5;y zI5B{M1)fx#qAHrBEzVn+3