From 2d6b80e74f469f50a61d3ec8cc427a285041457c Mon Sep 17 00:00:00 2001 From: codemann8 Date: Mon, 7 Jul 2025 02:23:55 -0500 Subject: [PATCH 1/8] Fix HUD to show prize, key count, and compass count if seen by player --- Rom.py | 12 ++++++++---- data/base2current.bps | Bin 136438 -> 136460 bytes 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Rom.py b/Rom.py index 32f07e22..a497cd50 100644 --- a/Rom.py +++ b/Rom.py @@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'b0a70c07792884cbe3d87e99c8325e41' +RANDOMIZERBASEHASH = 'b0f449244740c00c8d0c801e24df891f' class JsonRom(object): @@ -1292,6 +1292,9 @@ def patch_rom(world, rom, player, team, is_mystery=False): | (0x04 if world.mapshuffle[player] != 'none' else 0x00) | (0x08 if world.bigkeyshuffle[player] != 'none' else 0x00))) # free roaming item text boxes rom.write_byte(0x18003B, 0x01 if world.mapshuffle[player] not in ['none', 'nearby'] else 0x00) # maps showing crystals on overworld + if (world.mapshuffle[player] not in ['none', 'nearby'] or world.doorShuffle[player] != 'vanilla' or world.dropshuffle[player] != 'none' + or world.pottery[player] not in ['none', 'cave']): + rom.write_byte(0x18003A, 0x01) # show key counts on map pickup # compasses showing dungeon count compass_mode = 0x80 if world.compassshuffle[player] not in ['none', 'nearby'] else 0x00 @@ -1447,9 +1450,10 @@ def patch_rom(world, rom, player, team, is_mystery=False): | (0x10 if world.logic[player] == 'nologic' else 0))) # boss icon def get_reveal_bytes(itemName): - for dungeon in world.dungeons: - if dungeon.player == player and dungeon.prize and dungeon.prize.name == itemName: - return reveal_bytes.get(dungeon.name, 0x0000) + if world.prizeshuffle[player] != 'wild': + for dungeon in world.dungeons: + if dungeon.player == player and dungeon.prize and dungeon.prize.name == itemName: + return reveal_bytes.get(dungeon.name, 0x0000) return 0x0000 write_int16(rom, 0x18017A, get_reveal_bytes('Green Pendant')) # Sahasrahla reveal diff --git a/data/base2current.bps b/data/base2current.bps index 834435ae96e8a07882b66dd8e261ac3e3b2f0d00..156d1f0f38e70f41fe726c9af26c64c764e317ce 100644 GIT binary patch delta 2299 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 Mb@ZqYgltXxFZeCi=>Px# delta 2217 zcmW-hdr(t%7RPgP^MXJK2+FhE+yDk2fZFwekNUtiB8q^lin@U9x?ohSkFJ8o8zexK z81QHO1tGiT0sKEFTCW4@=N zRr1a*sr)zORo(ms8kpU11_VEpEGj~A#B|{WOEcAl@`?G-hFXa%30K{$I&7u_86SZe zARF0)cO+piYy&6is3oXKlmdI18zLFN7tDPz2w)BKK-xh-5`+E9ydfGzhBolIm(1nR zg&>~!(l*d#C_&Qj1JI02;V}a9c`or7)y+TfQ#rtYH`}Z8H`_It%Si1)cj7R(nEZGfKnn7iLh?snFmY38!c({7W35!6qsw*7 z)cKeQY<_C1l%|wFCO_@d3=9k;>8dCZdblVY!jXH?K9Hf^N%3GsElFAkW5zG;1Yv`O zTJwS#`cywvnDNR+?P9chGypU+Q24zcBr**Ly@X?w{kBtT(R00z$yt(1(+&yM!E~6A z48obT<4y?_GXBj3-}5`jUgYDML)E!d02|ZueK6mn+~=<*df25uZg~_kzIzXgn9@Jf z1hFBPLLul6-R6HC%{%H>x+S|BgR(Z9EntaRFn}Bzwmm5wMx=jxo z=wH=#o~dBPel#2XG8_R<(YxW#pb*U)QNTKsGop~@_I0Xu#_YE!bI0qxtR1iQjvZ*)*_#v2>NRSlY1hxlLt5s6(s6%C>ykTu z8PZzki?!4t~89fjwxBVByj&%1T+to}v)%lp^%@9x+4JJN@=p(amoYaG!y zE3QlzZIyMPY_ePzjf!>Aref3919(MPxh@8O(xHp7Zs26vMMY6%4>aEn6D~33v1H1)!Ee_RvCu_$GQ8|VT|!fs zi%1E?p&}r~!GpFJrG`+vKm=hBjMs}GHhRmZr-nGt)b2ccH6Aqf-NvaR`=D`}$Zj)! zEILLC>3gL81U@B#$soWFM4*g{Pwd87v$~B3xDOm2muWE^;GDHHGcDKys;+QOuIy9} zCdKf%EO)kuu6A%%&cU&@Q*o6T7KtJxcDz@NyTzb{0(Mjk{Q)q*J`aWQp5uV!;gANg zctbc)o;LO2FcB8Ar^CTY2qv{#6WEm`nD{}Fz9sElQrn#)^-ttv-ywR6qXNgU?{@){j_oG;EtJOpPc#rDDA^V5tNSv433)OZc#btzQqmUcwpiG|pqsY=j@g{N2%b z+g8YjHEj1*U;q-?!`q-(0!r+^2PQxqJ7*7MN(0>3XuEDtP#I5LcgkIDq#NVL5_k{y z@Yi~n4nFv<9+vIjhwTdXWZl~+<8Nb)QR5m*l=KmUh^#P`GAC-*1eM;QT`}EG`O5t> zxwau~Zvv^ZTux|eJg;vO<0^yOW7HD;jT_cvoplRsExG;rn5xjN>2{iNb1Qijd(wl+ zNLGvr(%#;eZFq1mCTg52SQVlQRfVa-RS_!uO)2<8gV2L!ercFv- zscxG?-oq!$Kqb3Z-L}m-FMBMl|1r>-iT_gup$RGZV`*~g2a+EL<+F&29bBgzkq5lq>RFUCk~9-jr=Y(b!%N+r$$Mn~P|?h9wQq zF7WbAs?yW`8O0mfUL(BW`zyjq^`2v$R%|pWhqSdk0sFKPZWHo!zk`RWb#has;o|ug zYe4|Md=y$d>(`j!a|jsQYwONZjUQz;eDY zZ~MF2H1 Date: Fri, 11 Jul 2025 04:55:17 -0500 Subject: [PATCH 2/8] Fix crash when Old Man exits out of his House entrance --- Rom.py | 2 +- data/base2current.bps | Bin 136460 -> 136484 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index a497cd50..c2018751 100644 --- a/Rom.py +++ b/Rom.py @@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'b0f449244740c00c8d0c801e24df891f' +RANDOMIZERBASEHASH = 'e0e73d0121f907e72b9beff43ea883bb' class JsonRom(object): diff --git a/data/base2current.bps b/data/base2current.bps index 156d1f0f38e70f41fe726c9af26c64c764e317ce..310792d4ddcdfcf4a56b5174ea578fa2e2e84ebf 100644 GIT binary patch delta 1893 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 Date: Fri, 11 Jul 2025 05:01:00 -0500 Subject: [PATCH 3/8] Allow Old Man to exit from his destination entrance --- source/overworld/EntranceShuffle2.py | 1 - 1 file changed, 1 deletion(-) diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index 5135c920..c190c428 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -403,7 +403,6 @@ def do_old_man_cave_exit(entrances, exits, avail, cross_world): else: region_name = 'West Dark Death Mountain (Top)' om_cave_options = list(get_accessible_entrances(region_name, avail, [], cross_world, True, True, True, True)) - om_cave_options = [e for e in om_cave_options if e in entrances and e != 'Old Man House (Bottom)'] if avail.swapped: om_cave_options = [e for e in om_cave_options if e not in Forbidden_Swap_Entrances] assert len(om_cave_options), 'No available entrances left to place Old Man Cave' From 7e42fa2927c3d085de8363ba98da2955125c31bb Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sun, 13 Jul 2025 00:27:52 -0500 Subject: [PATCH 4/8] Restore Kodongo AI when in vanilla rooms --- Rom.py | 2 +- data/base2current.bps | Bin 136484 -> 136510 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index c2018751..c1b4810e 100644 --- a/Rom.py +++ b/Rom.py @@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'e0e73d0121f907e72b9beff43ea883bb' +RANDOMIZERBASEHASH = '94672b7a306b32c8a1d9e64f0e6a9be0' class JsonRom(object): diff --git a/data/base2current.bps b/data/base2current.bps index 310792d4ddcdfcf4a56b5174ea578fa2e2e84ebf..1d85576143dae4b7ee0071b301a1a4f8949374fc 100644 GIT binary patch delta 1627 zcmX9;dr(tn7XR*Now=O;-?rd3a_t4XTde#4AhYI8yc=wcOOWYV@~H6np>l;9yV?D(HQwH<(|3?0Efn7Ob}8)^QD0g5Bf!%loD$?-=_hWM@2?=?tSX7;rka z38ph9NgFerK1oiR1?;S&Bl9jII!J{Q&$ulTPID&xw(I4iSbp_Gp(YxQSK`Z8zmcqU zI$E}VhpTAL3*REU ztkg0^`IciRz(l$Cap-g?h3KpO!&YkLeyYeX6v8yP`u)QAchZpdfb~L1anUVP_qk<3 zLAQ`MbnS@o)QJiDlsh;lBnf7O1i`mMz<4(2&5>(DbN+--`*^h9cu_+Kr_NKx$$ECq z(q2+2hHqvpdLv}_QhW8 z2yo5+{v5P|M(`3S0c$`7&;hQ~0xr8`Sr9pkK_SQloZ>cC#2r2zyYjwwRWU#$DT;h7 zf$^}Ql8i~9p02DIb6CCY40r}k%Ogmk6y}I4=_tg`JxEMa*h1;ZT`62d?IMX0@L2YO zvPT0of+NnUihGs!DhCaMBUqk(jhM2p*-Cg8T&EKtPzn}$=ItRrM8LyT1JOsq-$7Y6 z`7{!0mHND^T#}A)2=}*{mw0}QTp5jIG7=W$rl$Y7znpS%uTai_JXeWEyL;BxJB~|u zQ4#>SHT8~x$k;YEaiJ2eK&|ApD7ZwiE+H1NYnwhB?euGmpLy1kz9{&I1a;kHzf|=u zUS&!_?d@ODh6qGTxBYjZ1MepLWpHlt4$}tYGy@J?1zd+?dyCUv3f=)CQqi&jxhORm zl0hw1PrjAGEUJu%Xjn(>B_!vN0-ngg=6UgbV36(AO)-d zvuu>$5KRp?Y`WM;+`die0YCx6L(Mge{scLT|X{@K#$*+JGRU|vMY{OinYQ0Nn9 zlTHOZ)LK{+iw1W#pLNvgSmpru)wlJ_!3G_R#fBj!00KU3^$_Riq2^n$9NC`n9631O zY60gxT{fOC80>Ua6<%kX60i5F%lZeR%ldm|r4~Z9d5c#we1{qM=Q2cH#W-l)CxPna zG#cJgMI&y7@I#!iQHw}-G%SR48u>aJY7*p4k%&aZ@~0s)Nb;}82DUdjyN7M)gU~}yp4ooU>r=&B=JhP z->A=xL0o4b;qxxV>A`MXyD1K_v-3x7@gM;VzrHQNHl;+Nz6anD_y@QHhIjE5N#7oc zdeZU&&Zl4>_~l{Gve`FWDjsvi&EXk-4~_#dUWWRW`jcI$Z4Rp^rC>Eblt7*-`O9f0 z^J8Iw&Qw2SZpDr0?7sH~j(O@{&H2BHM7xN5aug>;t58>JfRr6JKN&Ar+3wdBwOarf j&aR^o$=^z&{*>B7y_-YL4djDZxKnba{xG>=GHm`IUMZTa delta 1534 zcmWMmYfw{H5I*OSkO0Z`3ITZuA%NHbDrix}7o)9EMXW;+Q51_xGzuzML{ZKKg(Nis zImUye5IOQ$veLjV%^IrFHt6>G-NvaCAr&Yqi?j{Mq?-XLslOc4zmzU3$_k z{Y>p6+FR3D@0{kNjD#0RZgezco#oM$5LP+wD);&Nwd&43XogzV=g!iESN_O)n`}w_ z3*FO^H8YctM@JfGW=Mb5ot5Dh)eyNn^9~xn<@|KkoQ3EgopYq(7rzOesv_OlMBz6pwaMl5}ZKBBwpR z>`nR|3x-j+_RM1x@2h=HsI}iwT1qzE?_B8k{>i}sk!N;Wne0z;;L_`o<*OcW^DQaP zuP$9jFo_s1r@~b7&E+&^ZA*KgN_4NotA#`!C89xftR+`m_uVk7(WpMX+tDl&L|pB z7^MyR@hPM9Bq!o;w#W8jW&nC3n|yJLTlvwH`<7NB8~Q|C!{Wh%q<84LbdT9oz2$e3 z;cUIKbS<+(edGiL!&*lp=8L*qkEX(ke3<6iSPMmd@`4sqUNF^n45Yc%ZJ@h#a4uU> z+}a6-a~&@{r#vxKTI@QfgKyNp2p1Bgcr?Q{KeRp=_jbs`+dJd~qGqvox^G|5I>cPs zuvqn?->U6ZG6Q3uLG9>vUW|UDl@hcupk&db76qgjNcG&*CW!D;dSBf?4y9J-e=UG#F67Ez2C5QowLGHzhJ@hJrn%JquFF))SA_XK&8e_-k zWV&Mlib~m*5Q2Mw00f612p-|#llDKt@AC;&!I+C~o4snpq4L7RfqIO(r3~tU6pQda|w-MQ8Emqxh#r=iF7-QQvLT$y`~QZ^PHJ# zdYVP`s`utAu)VV4V^e7suRj3(b#6IlFU#UdW@)#+2lP1Ct*1E?kuqb_ylZ??+~ij>x-VS3! z38$dvA7249Nr6IOGF_}dv$NFOySZ9Yjz8Z2L079SHZK_)|MM=Is#53|$4CJijGN+m zX!arQ<>0O*1{YdjI1E7FW(|Ys&dm(A#+25#t@qTHQ?~+DO26G(JnwpY*_8hQHQaHS From 8e34dfa627abbf5a5fe880bf04928209b801b66c Mon Sep 17 00:00:00 2001 From: codemann8 Date: Fri, 18 Jul 2025 01:19:55 -0500 Subject: [PATCH 5/8] Fix incorrect sphere count in CLI output --- Main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main.py b/Main.py index 259e2673..df672380 100644 --- a/Main.py +++ b/Main.py @@ -1056,7 +1056,7 @@ def create_playthrough(world): collection_spheres.append(sphere) - logging.getLogger('').debug(world.fish.translate("cli","cli","building.final.spheres"), len(collection_spheres), len(sphere), len(required_locations)) + logging.getLogger('').debug(world.fish.translate("cli","cli","building.final.spheres"), len(collection_spheres), len(sphere), len(sphere) + len(required_locations)) if not sphere: if world.has_beaten_game(state): required_locations.clear() From 76f429ac59deb378216d0c9c6982910eb7521061 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Fri, 18 Jul 2025 01:25:45 -0500 Subject: [PATCH 6/8] Version bump 0.6.0.4 --- CHANGELOG.md | 6 ++++++ OverworldShuffle.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2b52d0b..705f41ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.6.0.4 +- Fixed pause menu to show compass count and prizes to also show if you've seen them +- Fixed crash when Old Man follower exits with you at his destination entrance +- Old Man fetch cave is no longer restricted from exiting at his destination cave in ER +- Kodongo AI is returned to its vanilla behavior in their vanilla rooms + ## 0.6.0.3 - Arrghus' Room has water floor restored in boss shuffle - Fixed no music in Links House when S+Q from Kakariko diff --git a/OverworldShuffle.py b/OverworldShuffle.py index e54790bd..e312ba34 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -8,7 +8,7 @@ from OWEdges import OWTileRegions, OWEdgeGroups, OWEdgeGroupsTerrain, OWExitType from OverworldGlitchRules import create_owg_connections from Utils import bidict -version_number = '0.6.0.3' +version_number = '0.6.0.4' # branch indicator is intentionally different across branches version_branch = '-u' From dd5f0618fd898c495c1ec0eca65593306e5801b8 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Fri, 18 Jul 2025 10:46:39 -0500 Subject: [PATCH 7/8] Fixed map key totals on map pickup in non-DR --- Rom.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index c1b4810e..7401ce94 100644 --- a/Rom.py +++ b/Rom.py @@ -794,6 +794,12 @@ def patch_rom(world, rom, player, team, is_mystery=False): for room in world.rooms: if room.player == player and room.palette is not None: rom.write_byte(0x13f200+room.index, room.palette) + else: + if world.keyshuffle[player] != 'universal': + for name, layout in world.key_layout[player].items(): + offset = compass_data[name][4]//2 + rom.write_byte(0x13f020+offset, layout.max_chests + layout.max_drops) # not currently used + rom.write_byte(0x187010+offset, layout.max_chests) if world.doorShuffle[player] == 'basic': rom.write_byte(0x138002, 1) for door in world.doors: @@ -1292,8 +1298,8 @@ def patch_rom(world, rom, player, team, is_mystery=False): | (0x04 if world.mapshuffle[player] != 'none' else 0x00) | (0x08 if world.bigkeyshuffle[player] != 'none' else 0x00))) # free roaming item text boxes rom.write_byte(0x18003B, 0x01 if world.mapshuffle[player] not in ['none', 'nearby'] else 0x00) # maps showing crystals on overworld - if (world.mapshuffle[player] not in ['none', 'nearby'] or world.doorShuffle[player] != 'vanilla' or world.dropshuffle[player] != 'none' - or world.pottery[player] not in ['none', 'cave']): + if world.keyshuffle[player] != 'universal' and (world.mapshuffle[player] not in ['none', 'nearby'] or world.doorShuffle[player] != 'vanilla' + or world.dropshuffle[player] != 'none' or world.pottery[player] not in ['none', 'cave']): rom.write_byte(0x18003A, 0x01) # show key counts on map pickup # compasses showing dungeon count From e4d7d4012784ed8eb7fdbf75d5a2c4ed1f6c43ec Mon Sep 17 00:00:00 2001 From: codemann8 Date: Fri, 18 Jul 2025 10:49:46 -0500 Subject: [PATCH 8/8] Version bump 0.6.0.5 --- CHANGELOG.md | 3 +++ OverworldShuffle.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 705f41ee..39dc836e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 0.6.0.5 +- Emergency fix for map/key totals in non-DR + ## 0.6.0.4 - Fixed pause menu to show compass count and prizes to also show if you've seen them - Fixed crash when Old Man follower exits with you at his destination entrance diff --git a/OverworldShuffle.py b/OverworldShuffle.py index e312ba34..8144fc4a 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -8,7 +8,7 @@ from OWEdges import OWTileRegions, OWEdgeGroups, OWEdgeGroupsTerrain, OWExitType from OverworldGlitchRules import create_owg_connections from Utils import bidict -version_number = '0.6.0.4' +version_number = '0.6.0.5' # branch indicator is intentionally different across branches version_branch = '-u'