Merge remote-tracking branch 'origin' into OverworldShuffle

version includes update of base rom
This commit is contained in:
2021-07-10 23:58:27 -07:00
9 changed files with 21 additions and 10 deletions

View File

@@ -1,5 +1,8 @@
# Changelog # Changelog
### 0.1.6.6
- ~~Merged DR v0.4.0.9 - P/C Indicator / Credits fix / CLI Hints Fix~~
### 0.1.6.5 ### 0.1.6.5
- Reduced chance of diagonal flute spot in Balanced - Reduced chance of diagonal flute spot in Balanced
- ~~Merged DR v0.4.0.8 - Boss Indicator / Fake Boots / Quickswap Update / Credits Updates~~ - ~~Merged DR v0.4.0.8 - Boss Indicator / Fake Boots / Quickswap Update / Credits Updates~~

View File

@@ -20,6 +20,7 @@ from KeyDoorShuffle import analyze_dungeon, validate_vanilla_key_logic, build_ke
def link_doors(world, player): def link_doors(world, player):
orig_swamp_patch = world.swamp_patch_required[player]
attempt, valid = 1, False attempt, valid = 1, False
while not valid: while not valid:
try: try:
@@ -43,6 +44,7 @@ def link_doors(world, player):
reset_portals(world, player) reset_portals(world, player)
reset_rooms(world, player) reset_rooms(world, player)
world.get_door("Skull Pinball WS", player).no_exit() world.get_door("Skull Pinball WS", player).no_exit()
world.swamp_patch_required[player] = orig_swamp_patch
def link_doors_main(world, player): def link_doors_main(world, player):
@@ -467,8 +469,8 @@ def choose_portals(world, player):
world.get_room(0xd5, player).change(0, DoorKind.DungeonEntrance) world.get_room(0xd5, player).change(0, DoorKind.DungeonEntrance)
if not world.swamp_patch_required[player]: if not world.swamp_patch_required[player]:
swamp_region = world.get_entrance('Swamp Palace', player).connected_region swamp_portal = world.get_portal('Swamp', player)
if swamp_region.name != 'Swamp Lobby': if swamp_portal.door.name != 'Swamp Lobby S':
world.swamp_patch_required[player] = True world.swamp_patch_required[player] = True

View File

@@ -29,7 +29,7 @@ from Fill import sell_potions, sell_keys, balance_multiworld_progression, balanc
from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops
from Utils import output_path, parse_player_names from Utils import output_path, parse_player_names
__version__ = '0.4.0.8-u' __version__ = '0.4.0.9-u'
class EnemizerError(RuntimeError): class EnemizerError(RuntimeError):

View File

@@ -7,7 +7,7 @@ try:
except ImportError: except ImportError:
raise Exception('Could not load sortedcontainers module') raise Exception('Could not load sortedcontainers module')
__version__ = '0.1.6.5-u' __version__ = '0.1.6.6-u'
def link_overworld(world, player): def link_overworld(world, player):
# setup mandatory connections # setup mandatory connections
@@ -21,14 +21,14 @@ def link_overworld(world, player):
if world.owSwap[player] != 'vanilla': if world.owSwap[player] != 'vanilla':
tile_groups = {} tile_groups = {}
for (name, groupType) in OWTileGroups.keys(): for (name, groupType) in OWTileGroups.keys():
if world.mode[player] != 'standard' or name not in ['Castle', 'Links']: if world.mode[player] != 'standard' or name not in ['Castle', 'Links', 'Central Bonk Rocks']:
if world.shuffle[player] in ['vanilla', 'simple', 'dungeonssimple']: if world.shuffle[player] in ['vanilla', 'simple', 'dungeonssimple']:
tile_groups[(name,)] = ([], [], []) tile_groups[(name,)] = ([], [], [])
else: else:
tile_groups[(name, groupType)] = ([], [], []) tile_groups[(name, groupType)] = ([], [], [])
for (name, groupType) in OWTileGroups.keys(): for (name, groupType) in OWTileGroups.keys():
if world.mode[player] != 'standard' or name not in ['Castle', 'Links']: if world.mode[player] != 'standard' or name not in ['Castle', 'Links', 'Central Bonk Rocks']:
(owids, lw_regions, dw_regions) = OWTileGroups[(name, groupType,)] (owids, lw_regions, dw_regions) = OWTileGroups[(name, groupType,)]
if world.shuffle[player] in ['vanilla', 'simple', 'dungeonssimple']: if world.shuffle[player] in ['vanilla', 'simple', 'dungeonssimple']:
(exist_owids, exist_lw_regions, exist_dw_regions) = tile_groups[(name,)] (exist_owids, exist_lw_regions, exist_dw_regions) = tile_groups[(name,)]

View File

@@ -14,6 +14,10 @@ Thanks to qadan, cheuer, & compiling
# Bug Fixes and Notes. # Bug Fixes and Notes.
* 0.4.0.9
* Fixes for stats and P/C indicator (thanks Kara)
* Swamp lobby fixes (thanks Catobat)
* Fix for --hints flag on CLI
* 0.4.0.8 * 0.4.0.8
* Ganon jokes added for when silvers aren't available * Ganon jokes added for when silvers aren't available
* Some text updated (Blind jokes, uncle text) * Some text updated (Blind jokes, uncle text)

4
Rom.py
View File

@@ -31,7 +31,7 @@ from OverworldShuffle import default_flute_connections, flute_data
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = 'efb10737d732625792a9af7fdda2c4e9' RANDOMIZERBASEHASH = 'b6c98e872be23f268ff6678aa3eeaee4'
class JsonRom(object): class JsonRom(object):
@@ -1178,8 +1178,6 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
rom.write_byte(0x18002F, 0x03) # special bombs rom.write_byte(0x18002F, 0x03) # special bombs
rom.write_byte(0x180040, 0x01) # open curtains rom.write_byte(0x180040, 0x01) # open curtains
rom.write_byte(0x180041, 0x02) # swordless medallions (always) rom.write_byte(0x180041, 0x02) # swordless medallions (always)
rom.write_byte(0x180043, 0xFF) # starting sword for link
rom.write_byte(0x180044, 0x01) # hammer activates tablets
# since we have infinite bombs, let's get rid of bomb drops # since we have infinite bombs, let's get rid of bomb drops
rom.write_byte(0x030051, 0xDB) # fish bottle merchant rom.write_byte(0x030051, 0xDB) # fish bottle merchant
rom.write_byte(0x0301F8, 0xD9) # replace Pot bombs with green rupees rom.write_byte(0x0301F8, 0xD9) # replace Pot bombs with green rupees

View File

@@ -33,6 +33,10 @@ db #$b0 ; BCS to replace BEQ
org $06907f ; < 3107f - sprite_prep.asm:2170 (LDA $7EF3CA) org $06907f ; < 3107f - sprite_prep.asm:2170 (LDA $7EF3CA)
lda $8a : and.b #$40 lda $8a : and.b #$40
; Dark Bonk Rocks Rain Sequence Guards (allowing Tile Swap on Dark Bonk Rocks)
;org $09c957 ; <- 4c957
;dw #$cb5f ; matches value on Central Bonk Rocks screen
;(replacing -> LDA $8A : AND.b #$40) ;(replacing -> LDA $8A : AND.b #$40)
org $00d8c4 ; < ? - Bank00.asm:4068 () org $00d8c4 ; < ? - Bank00.asm:4068 ()
jsl.l OWWorldCheck jsl.l OWWorldCheck

Binary file not shown.

View File

@@ -312,7 +312,7 @@
] ]
}, },
"hints": { "hints": {
"action": "store_false", "action": "store_true",
"type": "bool" "type": "bool"
}, },
"no_hints": { "no_hints": {