fix: started using the map_hud_mode flag (somewhat against my better judgement, there's some crufty asm lying about)

This commit is contained in:
aerinon
2026-01-16 15:46:37 -07:00
parent 3fab26f423
commit a2b23110c4
5 changed files with 32 additions and 19 deletions

View File

@@ -10,6 +10,8 @@
# Patch Notes # Patch Notes
Changelog archive Changelog archive
* 1.5.1
* Bugfix: Fixed an issue with keys not counting correctly
* 1.5.0 * 1.5.0
* Logic: Fixed vanilla key logic for GT basement * Logic: Fixed vanilla key logic for GT basement
* Logic (Playthrough): Fixed an issue where enemy kill rules were not applied during playthrough calculation. (Thanks Catobat for the catch) * Logic (Playthrough): Fixed an issue where enemy kill rules were not applied during playthrough calculation. (Thanks Catobat for the catch)

View File

@@ -1,4 +1,5 @@
# Patch Notes # Patch Notes
* 1.5.1 * Logic: Key logic fix for part of a dungeon located at Skull 3 (or other similar restricted entrancs). Appropriate key logic was not being applied, causing progression issues. This mostly affect crosskey style seeds.
* Bugfix: Fixed an issue with keys not counting correctly * Standard: Rupee balancing algorithm can no longer switch out the weapon on uncle for money.
* Dungeon Counters: Some fixes for inconsistent tracking and display of dungeon counters on the keysanity menu.

14
Rom.py
View File

@@ -42,7 +42,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '3f033ac891acfcedce26c00d5cd880ed' RANDOMIZERBASEHASH = '794b7cd02f429873c3ad6dc74490279c'
class JsonRom(object): class JsonRom(object):
@@ -1201,8 +1201,18 @@ def patch_rom(world, rom, player, team, is_mystery=False):
| (0x02 if world.compassshuffle[player] else 0x00) | (0x02 if world.compassshuffle[player] else 0x00)
| (0x04 if world.mapshuffle[player] else 0x00) | (0x04 if world.mapshuffle[player] else 0x00)
| (0x08 if world.bigkeyshuffle[player] else 0x00))) # free roaming item text boxes | (0x08 if world.bigkeyshuffle[player] else 0x00))) # free roaming item text boxes
rom.write_byte(0x18003B, 0x01 if world.mapshuffle[player] else 0x00) # maps showing crystals on overworld
map_hud_mode = 0x00
if world.dungeon_counters[player] == 'on':
map_hud_mode = 0x02 # always on
elif world.dungeon_counters[player] == 'off':
pass
elif world.keyshuffle[player] != 'universal' and (world.mapshuffle[player] != 'none' or world.doorShuffle[player] != 'vanilla'
or world.dropshuffle[player] != 'none' or world.pottery[player] not in ['none', 'cave'] or world.dungeon_counters[player] == 'pickup'):
map_hud_mode = 0x01 # show on pickup
rom.write_byte(0x18003A, map_hud_mode)
rom.write_byte(0x18003B, 0x01 if world.mapshuffle[player] else 0x00) # maps showing crystals on overworld
# compasses showing dungeon count # compasses showing dungeon count
compass_mode = 0x00 compass_mode = 0x00
if world.clock_mode != 'none' or world.dungeon_counters[player] == 'off': if world.clock_mode != 'none' or world.dungeon_counters[player] == 'off':

Binary file not shown.

View File

@@ -92,11 +92,11 @@
"randomizer.dungeon.experimental": "Enable Experimental Features", "randomizer.dungeon.experimental": "Enable Experimental Features",
"randomizer.dungeon.dungeon_counters": "Dungeon Chest Counters", "randomizer.dungeon.dungeon_counters": "Dungeon Counters",
"randomizer.dungeon.dungeon_counters.default": "Auto", "randomizer.dungeon.dungeon_counters.default": "Auto",
"randomizer.dungeon.dungeon_counters.off": "Off", "randomizer.dungeon.dungeon_counters.off": "Off",
"randomizer.dungeon.dungeon_counters.on": "On", "randomizer.dungeon.dungeon_counters.on": "On",
"randomizer.dungeon.dungeon_counters.pickup": "On Compass Pickup", "randomizer.dungeon.dungeon_counters.pickup": "On Item Pickup",
"randomizer.dungeon.mixed_travel": "Mixed Dungeon Travel ", "randomizer.dungeon.mixed_travel": "Mixed Dungeon Travel ",
"randomizer.dungeon.mixed_travel.prevent": "Prevent Mixed Dungeon Travel", "randomizer.dungeon.mixed_travel.prevent": "Prevent Mixed Dungeon Travel",