diff --git a/darkworldspawn.asm b/darkworldspawn.asm index 0a7ccf4..aefa8ba 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -18,6 +18,14 @@ DoWorldFix: LDA #$00 .noMirror STA $7EF3CA ; set flag to light world + LDA.l SmithDeleteOnSave : BEQ .transform + LDA $7EF3CC + CMP #$07 : BEQ .clear ; clear frog + CMP #$08 : BEQ .clear ; clear dwarf - consider flute implications + BRA .done + .clear + LDA.b #$00 : STA $7EF3CC : BRA .done ; clear follower + .transform LDA $7EF3CC : CMP #$07 : BNE .done : INC : STA $7EF3CC ; convert frog to dwarf .done RTL @@ -52,12 +60,15 @@ DoWorldFix_Inverted: .noMirror .aga1Alive LDA #$40 : STA $7EF3CA ; set flag to dark world - LDA $7EF3CC - CMP #$07 : BEQ .clear ; clear frog - CMP #$08 : BEQ .clear ; clear dwarf - consider flute implications - BRA .done - .clear - LDA.b #$00 : STA $7EF3CC ; clear follower + LDA.l SmithDeleteOnSave : BEQ .transform + LDA $7EF3CC + CMP #$07 : BEQ .clear ; clear frog + CMP #$08 : BEQ .clear ; clear dwarf - consider flute implications + BRA .done + .clear + LDA.b #$00 : STA $7EF3CC : BRA .done ; clear follower + .transform + LDA $7EF3CC : CMP #$07 : BNE .done : INC : STA $7EF3CC ; convert frog to dwarf .done RTL ;-------------------------------------------------------------------------------- diff --git a/tables.asm b/tables.asm index 6766a58..73d2801 100644 --- a/tables.asm +++ b/tables.asm @@ -259,6 +259,10 @@ CrystalPendantFlags_2: ;Pendant: $00 ;Crystal: $40 ;-------------------------------------------------------------------------------- +org $30805D ; PC 0x18005D +SmithDeleteOnSave: +db #$00 ; #$00 = Off (default) - #$01 = On (frog/smith gets deleted on S+Q) +;-------------------------------------------------------------------------------- org $30805E ; PC 0x18005E - Number of crystals required to enter GT NumberOfCrystalsRequiredForTower: db #$07 ; #$07 = 7 Crystals