Bug fix for vanilla BK at Ball n Chain guard

Bug fix for camera unlock
Bug fix for bad pseudo layer at PoD Map Balcony
Minor fix for non-retro key hud info
This commit is contained in:
aerinon
2020-10-26 11:46:52 -06:00
parent a1782e3edc
commit 8c73947ad7
8 changed files with 52 additions and 20 deletions

View File

@@ -24,7 +24,7 @@ from Fill import distribute_items_cutoff, distribute_items_staleness, distribute
from ItemList import generate_itempool, difficulties, fill_prizes
from Utils import output_path, parse_player_names
__version__ = '0.2.0.2-u'
__version__ = '0.2.0.3-u'
class EnemizerError(RuntimeError):
pass

View File

@@ -1,12 +1,22 @@
# New Features
* Lobby shuffle added as Intensity level 3
* Can now be found in the spoiler
* Known issues:
* Palettes aren't perfect - may add Sanctuary and Sewer palette back. May add a way to turn off palette "fixing"
* Certain hints in ER due to lobby changes
* Animated tiles aren't loaded correctly in lobbies
* If a wallmaster grabs you and the lobby is dark, the lamp doesn't turn on
* --keydropshuffle added (coming to the GUI soon). This add 33 new locations to the game where keys are found under pots
and where enemies drop keys. This includes 32 small key location and the ball and chain guard who normally drop the HC
Big Key.
* Multiworld untested - May need changes to MultiClient/MultiServer to recognize new locations
### Experimental features
* Redesign of Keysanity Menu for Crossed Dungeon
* Redesign of Keysanity Menu for Crossed Dungeon - soon to move out of experimental
#### Temporary debug features:
#### Temporary debug features
* Removed the red square in the upper right corner of the hud if the castle gate is closed
@@ -14,3 +24,13 @@
* Fixed a situation where logic did not account properly for Big Key doors in standard Hyrule Castle
* Fixed a problem ER shuffle generation that did not account for lobbies moving around
* Fixed a problem with camera unlock (GT Mimics and Mire Minibridge)
* Fixed a problem with bad-pseudo layer at PoD map Balcony (unable to hit switch with Bomb)
# Known Issues
(I'm planning to fix theese in this Unstable iteration hopefully)
* Hammerjump (et al) rails
* Backward TR Crystal Maze locking Somaria
* Ganon hint when hints are turned off not correct

10
Rom.py
View File

@@ -22,7 +22,7 @@ from EntranceShuffle import door_addresses, exit_ids
JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '890bac9433ffda07aeeb858cfdb41e4a'
RANDOMIZERBASEHASH = '796d527e1a2ebbcac4023f6b8b9444bf'
class JsonRom(object):
@@ -1328,7 +1328,13 @@ def patch_rom(world, rom, player, team, enemized):
# set correct flag for hera basement item
hera_basement = world.get_location('Tower of Hera - Basement Cage', player)
if hera_basement.item is not None and hera_basement.item.name == 'Small Key (Tower of Hera)' and hera_basement.item.player == player:
is_small_key_this_dungeon = False
if hera_basement.item is not None and hera_basement.item.smallkey:
item_dungeon = hera_basement.item.name.split('(')[1][:-1]
if item_dungeon == 'Escape':
item_dungeon = 'Hyrule Castle'
is_small_key_this_dungeon = hera_basement.dungeon.name == item_dungeon
if is_small_key_this_dungeon:
rom.write_byte(0x4E3BB, 0xE4)
else:
rom.write_byte(0x4E3BB, 0xEB)

View File

@@ -32,7 +32,7 @@ HudAdditions:
lda $7ef368 : and.l $0098c0, x : beq .restore
txa : lsr : tax
lda.l GenericKeys : bne +
lda.l GenericKeys : and #$00ff : bne +
lda $7ef4e0, x : jsr ConvertToDisplay : sta $7ec7a2
lda #$2830 : sta $7ec7a4
+

View File

@@ -5,7 +5,7 @@ org $06d049 ; <- 35049 sprite_absorbable : 31-32 (JSL Sprite_DrawRippleIfInWater
jsl SpriteKeyDrawGFX : bra + : nop : +
org $06d180
jsl BigKeyGet : bcs $07
jsl BigKeyGet : bcs $07 : nop #5
org $06d18d ; <- 3518D - sprite_absorbable.asm : 274 (LDA $7EF36F : INC A : STA $7EF36F)
jsl KeyGet
@@ -80,8 +80,9 @@ SpriteKeyPrep:
inx : lda.l LootTable, x : sta !MULTIWORLD_SPRITEITEM_PLAYER_ID
inx : lda.l LootTable, x
plx : sta $0e80, x
cmp #$24 : beq +
jsl PrepDynamicTile : bra +
cmp #$24 : bne +++
lda $a0 : cmp #$80 : bne + : lda #$24
+++ jsl PrepDynamicTile : bra +
++ plx : lda #$24 : sta $0e80, x
+ pla
rtl
@@ -99,8 +100,9 @@ SpriteKeyDrawGFX:
.jslrtsreturn
rtl
+ lda $0e80, x
cmp #$24 : beq -
jsl DrawDynamicTile ; see DrawHeartPieceGFX if problems
cmp #$24 : bne +
lda $a0 : cmp #$80 : bne - : lda #$24
+ jsl DrawDynamicTile ; see DrawHeartPieceGFX if problems
cmp #$03 : bne +
pha : lda $0e60, x : ora.b #$20 : sta $0E60, x : pla
+
@@ -138,7 +140,8 @@ KeyGet:
BigKeyGet:
{
lda.l ShuffleKeyDrops : bne +
- stz $02e9 : ldy.b #$32 : phx ; what we wrote over
- stz $02e9 : ldy.b #$32 ; what we wrote over
phx : jsl Link_ReceiveItem : plx ; what we wrote over
clc : rtl
+
ldy $0e80, x

View File

@@ -190,8 +190,9 @@ PrepScrollToEdge:
+ sta $05
lda $01 : and #$10 : beq +
lda #01
+ sta $ee
rts
+ sta $ee : bne +
stz $0476
+ rts
}
; Normal Flags should be in $01
@@ -199,7 +200,9 @@ PrepScrollToEdge:
PrepScrollToNormal:
{
lda $01 : sta $fe : and #$04 : lsr #2 : sta $ee ; trap door and layer
stz $05 : lda #$78 : sta $04
bne +
stz $0476
+ stz $05 : lda #$78 : sta $04
lda $01 : and #$03 : beq .end
cmp #$02 : !bge +
lda #$f8 : sta $04 : bra .end

View File

@@ -188,9 +188,9 @@ CheckRoomLayoutX:
jsr LoadRoomLayout ;switches to 8-bit
cmp #$04 : !blt .lock
cmp #$05 : bne +
lda $06 : cmp #$ff : beq .lock
lda $04 : cmp #$f8 : beq .lock
+ cmp #$06 : bne .free
lda $06 : cmp #$ff : bne .lock
lda $04 : cmp #$f8 : bne .lock
.free rep #$30 : clc : rts
.lock rep #$30 : sec : rts

File diff suppressed because one or more lines are too long