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:
2
Main.py
2
Main.py
@@ -24,7 +24,7 @@ from Fill import distribute_items_cutoff, distribute_items_staleness, distribute
|
|||||||
from ItemList import generate_itempool, difficulties, fill_prizes
|
from ItemList import generate_itempool, difficulties, fill_prizes
|
||||||
from Utils import output_path, parse_player_names
|
from Utils import output_path, parse_player_names
|
||||||
|
|
||||||
__version__ = '0.2.0.2-u'
|
__version__ = '0.2.0.3-u'
|
||||||
|
|
||||||
class EnemizerError(RuntimeError):
|
class EnemizerError(RuntimeError):
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -1,16 +1,36 @@
|
|||||||
# New Features
|
# New Features
|
||||||
|
|
||||||
* Lobby shuffle added as Intensity level 3
|
* 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
|
### 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
|
* Removed the red square in the upper right corner of the hud if the castle gate is closed
|
||||||
|
|
||||||
# Bug Fixes
|
# Bug Fixes
|
||||||
|
|
||||||
* Fixed a situation where logic did not account properly for Big Key doors in standard Hyrule Castle
|
* 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 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
10
Rom.py
@@ -22,7 +22,7 @@ from EntranceShuffle import door_addresses, exit_ids
|
|||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = '890bac9433ffda07aeeb858cfdb41e4a'
|
RANDOMIZERBASEHASH = '796d527e1a2ebbcac4023f6b8b9444bf'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
@@ -1328,7 +1328,13 @@ def patch_rom(world, rom, player, team, enemized):
|
|||||||
|
|
||||||
# set correct flag for hera basement item
|
# set correct flag for hera basement item
|
||||||
hera_basement = world.get_location('Tower of Hera - Basement Cage', player)
|
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)
|
rom.write_byte(0x4E3BB, 0xE4)
|
||||||
else:
|
else:
|
||||||
rom.write_byte(0x4E3BB, 0xEB)
|
rom.write_byte(0x4E3BB, 0xEB)
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ HudAdditions:
|
|||||||
lda $7ef368 : and.l $0098c0, x : beq .restore
|
lda $7ef368 : and.l $0098c0, x : beq .restore
|
||||||
txa : lsr : tax
|
txa : lsr : tax
|
||||||
|
|
||||||
lda.l GenericKeys : bne +
|
lda.l GenericKeys : and #$00ff : bne +
|
||||||
lda $7ef4e0, x : jsr ConvertToDisplay : sta $7ec7a2
|
lda $7ef4e0, x : jsr ConvertToDisplay : sta $7ec7a2
|
||||||
lda #$2830 : sta $7ec7a4
|
lda #$2830 : sta $7ec7a4
|
||||||
+
|
+
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ org $06d049 ; <- 35049 sprite_absorbable : 31-32 (JSL Sprite_DrawRippleIfInWater
|
|||||||
jsl SpriteKeyDrawGFX : bra + : nop : +
|
jsl SpriteKeyDrawGFX : bra + : nop : +
|
||||||
|
|
||||||
org $06d180
|
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)
|
org $06d18d ; <- 3518D - sprite_absorbable.asm : 274 (LDA $7EF36F : INC A : STA $7EF36F)
|
||||||
jsl KeyGet
|
jsl KeyGet
|
||||||
@@ -80,8 +80,9 @@ SpriteKeyPrep:
|
|||||||
inx : lda.l LootTable, x : sta !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
inx : lda.l LootTable, x : sta !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
inx : lda.l LootTable, x
|
inx : lda.l LootTable, x
|
||||||
plx : sta $0e80, x
|
plx : sta $0e80, x
|
||||||
cmp #$24 : beq +
|
cmp #$24 : bne +++
|
||||||
jsl PrepDynamicTile : bra +
|
lda $a0 : cmp #$80 : bne + : lda #$24
|
||||||
|
+++ jsl PrepDynamicTile : bra +
|
||||||
++ plx : lda #$24 : sta $0e80, x
|
++ plx : lda #$24 : sta $0e80, x
|
||||||
+ pla
|
+ pla
|
||||||
rtl
|
rtl
|
||||||
@@ -99,8 +100,9 @@ SpriteKeyDrawGFX:
|
|||||||
.jslrtsreturn
|
.jslrtsreturn
|
||||||
rtl
|
rtl
|
||||||
+ lda $0e80, x
|
+ lda $0e80, x
|
||||||
cmp #$24 : beq -
|
cmp #$24 : bne +
|
||||||
jsl DrawDynamicTile ; see DrawHeartPieceGFX if problems
|
lda $a0 : cmp #$80 : bne - : lda #$24
|
||||||
|
+ jsl DrawDynamicTile ; see DrawHeartPieceGFX if problems
|
||||||
cmp #$03 : bne +
|
cmp #$03 : bne +
|
||||||
pha : lda $0e60, x : ora.b #$20 : sta $0E60, x : pla
|
pha : lda $0e60, x : ora.b #$20 : sta $0E60, x : pla
|
||||||
+
|
+
|
||||||
@@ -138,7 +140,8 @@ KeyGet:
|
|||||||
BigKeyGet:
|
BigKeyGet:
|
||||||
{
|
{
|
||||||
lda.l ShuffleKeyDrops : bne +
|
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
|
clc : rtl
|
||||||
+
|
+
|
||||||
ldy $0e80, x
|
ldy $0e80, x
|
||||||
|
|||||||
@@ -190,8 +190,9 @@ PrepScrollToEdge:
|
|||||||
+ sta $05
|
+ sta $05
|
||||||
lda $01 : and #$10 : beq +
|
lda $01 : and #$10 : beq +
|
||||||
lda #01
|
lda #01
|
||||||
+ sta $ee
|
+ sta $ee : bne +
|
||||||
rts
|
stz $0476
|
||||||
|
+ rts
|
||||||
}
|
}
|
||||||
|
|
||||||
; Normal Flags should be in $01
|
; Normal Flags should be in $01
|
||||||
@@ -199,7 +200,9 @@ PrepScrollToEdge:
|
|||||||
PrepScrollToNormal:
|
PrepScrollToNormal:
|
||||||
{
|
{
|
||||||
lda $01 : sta $fe : and #$04 : lsr #2 : sta $ee ; trap door and layer
|
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
|
lda $01 : and #$03 : beq .end
|
||||||
cmp #$02 : !bge +
|
cmp #$02 : !bge +
|
||||||
lda #$f8 : sta $04 : bra .end
|
lda #$f8 : sta $04 : bra .end
|
||||||
|
|||||||
@@ -188,9 +188,9 @@ CheckRoomLayoutX:
|
|||||||
jsr LoadRoomLayout ;switches to 8-bit
|
jsr LoadRoomLayout ;switches to 8-bit
|
||||||
cmp #$04 : !blt .lock
|
cmp #$04 : !blt .lock
|
||||||
cmp #$05 : bne +
|
cmp #$05 : bne +
|
||||||
lda $06 : cmp #$ff : beq .lock
|
lda $04 : cmp #$f8 : beq .lock
|
||||||
+ cmp #$06 : bne .free
|
+ cmp #$06 : bne .free
|
||||||
lda $06 : cmp #$ff : bne .lock
|
lda $04 : cmp #$f8 : bne .lock
|
||||||
.free rep #$30 : clc : rts
|
.free rep #$30 : clc : rts
|
||||||
.lock rep #$30 : sec : rts
|
.lock rep #$30 : sec : rts
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user