DungeonGen bug

Animated tiles fix
This commit is contained in:
aerinon
2020-04-23 16:18:56 -06:00
parent 946c7bbcef
commit 810942cf69
8 changed files with 57 additions and 32 deletions

View File

@@ -2139,7 +2139,7 @@ def find_forced_groupings(sector_pool, dungeon_map):
if len(found_list) == 1: if len(found_list) == 1:
forced_sectors = [] forced_sectors = []
for sec in other_sectors: for sec in other_sectors:
cats = categorize_groupings(sec) cats = categorize_groupings([sec])
if opp in cats.keys() and (len(cats[opp][0]) > 0 or len(cats[opp][1]) > 0): if opp in cats.keys() and (len(cats[opp][0]) > 0 or len(cats[opp][1]) > 0):
forced_sectors.append(sec) forced_sectors.append(sec)
if len(forced_sectors) > 0: if len(forced_sectors) > 0:

View File

@@ -1,31 +1,8 @@
# New Features # New Features
* Mirror Scroll no longer erases blocks, the real mirror still will. (Sorry!) * None yet
* Standard+Crossed Dungeon now gives you a little magic, a few bombs, and a few arrows if you die or S&Q after meeting your uncle (also works with mirror/scroll)
* Dungeon reminder added to hud for Crossed dungeons
* Blinking red square added to hud and it indicates a boss room is close by. Only appears if you have the compass. (Basic & Crossed)
* Agahnims dungeon items can be started with now
* GUI updates courtesy of Mike T
## Map Features (Crossed only + Experimental)
* Key counters added to hud. Indicates number of keys in chests (found/total). In small key shuffle, this count indicates how many smalls for that dungeon could be outside it.
* Total key indicator added to hud if you have found the map. Counts down from the total number of keys in dungeon to 0 as you collect them.
* Big Key indicator added to hud. Indicates if BK is not in the dungeon, or if BnC guard has it (Probably will move away from hud if kept)
Note: Only one of the key indicator will probably become core at most.
## Experimental changes
* Mirror scroll is now core for non-vanilla Door Shuffle (no longer experimental)
* GT Bosses stay dead in non-vanilla Door Shuffle (no longer experimental)
* Map features listed above are now experimental
# Bug Fixes # Bug Fixes
* Splashing at hobo no longer prevents you from buying bomb capacity upgrades * Crossed Dungeon generation improvements
* Small vitreous eyeballs will not drop items (DR basic and crossed only) * Fix for Animated Tiles in crossed dungeon
* In Vanilla doors the HC back hallway area was broken - should be better now - also Trap Doors
* Firebar speed should now be consistent. Ice palace rooms have slow firebars even if shuffled to other dungeons. Others should have normal speed firebars.
* Red/Blue pendant swap fixed (originally ER bug)
* Compass shuffle vs map shuffle item menu fix (originally ER bug)

2
Rom.py
View File

@@ -22,7 +22,7 @@ from EntranceShuffle import door_addresses, exit_ids
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '9ed3ae2d129faa1cd3858e2f72b11b62' RANDOMIZERBASEHASH = '6042de1d3a63417efe4397b69c626b88'
class JsonRom(object): class JsonRom(object):

View File

@@ -1,3 +1,23 @@
org $279500
TilesetTable:
; 0 1 2 3 4 5 6 7 8 9 a b c d e f --Offset Ruler
db $13,$04,$04,$06,$0d,$ff,$08,$05,$06,$07,$07,$07,$0e,$0e,$0b,$ff
db $13,$04,$04,$0d,$0d,$0d,$08,$05,$06,$07,$07,$07,$0e,$0e,$0b,$0b
db $04,$04,$04,$0d,$0d,$ff,$08,$05,$08,$09,$07,$07,$06,$ff,$0b,$06
db $04,$05,$04,$12,$08,$08,$08,$08,$08,$09,$07,$07,$06,$0e,$0b,$0b
db $04,$04,$04,$12,$0a,$0a,$08,$ff,$ff,$09,$07,$07,$0e,$0e,$0b,$0b
db $04,$04,$04,$12,$08,$01,$09,$09,$09,$09,$07,$0e,$0e,$0e,$0b,$0b
db $04,$04,$04,$12,$0a,$0a,$08,$09,$09,$ff,$07,$0e,$0e,$0e,$0b,$ff
db $04,$04,$04,$12,$12,$12,$08,$05,$ff,$ff,$ff,$0e,$0e,$0e,$0b,$0b
db $04,$04,$04,$12,$12,$12,$ff,$05,$ff,$05,$ff,$0e,$0e,$0e,$0b,$ff
db $0c,$0c,$0c,$0c,$ff,$0e,$0e,$0c,$0c,$05,$ff,$0e,$0e,$0e,$0b,$0b
db $0c,$0c,$0c,$0c,$0d,$0e,$0e,$05,$05,$05,$05,$0a,$0a,$ff,$0b,$0b
db $04,$0c,$0c,$0c,$0d,$0d,$0d,$0d,$05,$05,$05,$0a,$0a,$ff,$0b,$0b
db $04,$0c,$0c,$0c,$0d,$0d,$0d,$0d,$05,$05,$ff,$0a,$0a,$ff,$0b,$ff
db $04,$0c,$0c,$ff,$ff,$0d,$0d,$ff,$05,$05,$05,$0a,$0a,$ff,$0b,$06
db $04,$06,$06,$06,$06,$06,$06,$06,$06,$ff,$06,$06,$ff,$06,$06,$06
db $06,$06,$03,$03,$03,$03,$ff,$ff,$06,$06,$06,$06,$ff,$06,$06,$06
org $279700 org $279700
KeyDoorOffset: KeyDoorOffset:
; 0 1 2 3 4 5 6 7 8 9 a b c d e f --Offset Ruler ; 0 1 2 3 4 5 6 7 8 9 a b c d e f --Offset Ruler

View File

@@ -31,7 +31,7 @@ jsl SpiralWarp
; Graphics fix ; Graphics fix
org $02895d org $02895d ; Bank 02 line 1812 (JSL Dungeon_LoadRoom : JSL Dungeon_InitStarTileChr : JSL $00D6F9 : INC $B0)
Splicer: Splicer:
jsl GfxFixer jsl GfxFixer
lda $b1 : beq .done lda $b1 : beq .done
@@ -39,10 +39,14 @@ rts
nop #5 nop #5
.done .done
org $00fda4 org $00d377 ;Bank 00 line 3185
DecompDungAnimatedTiles:
org $00fda4 ;Bank 00 line 8882
Dungeon_InitStarTileCh: Dungeon_InitStarTileCh:
org $00d6ae ;(PC: 56ae) org $00d6ae ;(PC: 56ae)
LoadTransAuxGfx: LoadTransAuxGfx:
org $00d739 ;
LoadTransAuxGfx_Alt:
org $00df5a ;(PC: 5f5a) org $00df5a ;(PC: 5f5a)
PrepTransAuxGfx: PrepTransAuxGfx:
org $0ffd65 ;(PC: 07fd65) org $0ffd65 ;(PC: 07fd65)

View File

@@ -1,11 +1,24 @@
GfxFixer: GfxFixer:
{ {
lda $b1 : bne .stage2 lda DRMode : bne +
jsl LoadRoomHook ;this is the code we overwrote
jsl Dungeon_InitStarTileCh
jsl LoadTransAuxGfx_Alt
inc $b0
rtl
+ lda $b1 : bne .stage2
jsl LoadRoomHook ; this is the rando version - let's only call this guy once - may fix star tiles and slower loads jsl LoadRoomHook ; this is the rando version - let's only call this guy once - may fix star tiles and slower loads
jsl Dungeon_InitStarTileCh jsl Dungeon_InitStarTileCh
jsl LoadTransAuxGfx jsl LoadTransAuxGfx
jsl Dungeon_LoadCustomTileAttr jsl Dungeon_LoadCustomTileAttr
jsl PrepTransAuxGfx jsl PrepTransAuxGfx
lda DRMode : cmp #$02 : bne + ; only do this in crossed mode
ldx $a0 : lda TilesetTable, x
cmp $0aa1 : beq + ; already eq no need to decomp
sta $0aa1
tax : lda $02802e, x : tay
jsl DecompDungAnimatedTiles
+
lda #$09 : sta $17 : sta $0710 lda #$09 : sta $17 : sta $0710
jsl Palette_SpriteAux3 jsl Palette_SpriteAux3
jsl Palette_SpriteAux2 jsl Palette_SpriteAux2

View File

@@ -6,6 +6,7 @@ RecordStairType: {
} }
SpiralWarp: { SpiralWarp: {
lda DRMode : beq .abort ; abort if not DR
lda $040c : cmp.b #$ff : beq .abort ; abort if not in dungeon lda $040c : cmp.b #$ff : beq .abort ; abort if not in dungeon
lda $045e : cmp #$5e : beq .gtg ; abort if not spiral - intended room is in A! lda $045e : cmp #$5e : beq .gtg ; abort if not spiral - intended room is in A!
cmp #$5f : beq .gtg cmp #$5f : beq .gtg
@@ -65,6 +66,16 @@ SpiralWarp: {
ldy #$01 : jsr SetCamera ldy #$01 : jsr SetCamera
stz $045e ; clear the staircase flag stz $045e ; clear the staircase flag
; animated tiles fix
lda DRMode : cmp #$02 : bne + ; only do this in crossed mode
ldx $a0 : lda TilesetTable, x
cmp $0aa1 : beq + ; already eq no need to decomp
sta $0aa1
tax : lda $02802e, x : tay
jsl DecompDungAnimatedTiles
+
ply : plx : plb ; pull the stuff we pushed ply : plx : plb ; pull the stuff we pushed
lda $a2 : and #$0f ; this is the code we are hijacking lda $a2 : and #$0f ; this is the code we are hijacking
rtl rtl

File diff suppressed because one or more lines are too long