let's dev 6/20/17

(probably) fixed glitched pyramid spawn issue
fixed sanctuary purple chest spawn
added switch to allow tablets to be opened with hammer (graphics not ready but looks ok)
This commit is contained in:
Karkat
2017-06-20 21:55:41 -04:00
parent 9035a9a15d
commit 5feaf1b122
7 changed files with 28 additions and 12 deletions

View File

@@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF
db #$00 ; expand file to 2mb db #$00 ; expand file to 2mb
org $1FFFF8 ; timestamp rom org $1FFFF8 ; timestamp rom
dl #$20170617 dl #$20170620
;================================================================================ ;================================================================================

View File

@@ -20,6 +20,9 @@ DarkWorldFlagSet:
LDA Bugfix_PreAgaDWDungeonDeathToFakeDW : BEQ + LDA Bugfix_PreAgaDWDungeonDeathToFakeDW : BEQ +
LDA $10 : CMP #$12 : BEQ .done ; don't do anything in death mode LDA $10 : CMP #$12 : BEQ .done ; don't do anything in death mode
+ +
LDA $1B : BEQ + ; skip this unless indoors - THIS PART FIXES THE OTHER FUCKUP WITH THE PYRAMID SPAWN IN GLITCHED
LDA $A0 : CMP.b #$00 : BEQ .done ; skip if we died in ganon's room
+
LDA.l Bugfix_MirrorlessSQToLW : BEQ + LDA.l Bugfix_MirrorlessSQToLW : BEQ +
LDA $7EF353 : BEQ .noMirror ; check if we have the mirror LDA $7EF353 : BEQ .noMirror ; check if we have the mirror
+ +
@@ -29,7 +32,6 @@ DarkWorldFlagSet:
.aga1Alive .aga1Alive
LDA #$00 : STA $7EF3CA ; set flag to light world LDA #$00 : STA $7EF3CA ; set flag to light world
LDA $7EF3CC : CMP #$07 : BNE + : LDA.b #$08 : STA $7EF3CC : + ; convert frog to dwarf LDA $7EF3CC : CMP #$07 : BNE + : LDA.b #$08 : STA $7EF3CC : + ; convert frog to dwarf
;LDA $7EF3CC : CMP #$07 : BNE + : LDA.b #$00 : STA $7EF3CC : + ; clear frog
.done .done
PLA PLA
RTL RTL
@@ -43,7 +45,6 @@ SetDeathWorldChecked:
LDA $A0 : CMP.b #$00 : BEQ .done ; skip if we died in ganon's room LDA $A0 : CMP.b #$00 : BEQ .done ; skip if we died in ganon's room
LDA.b #$00 : STA $7EF3CA : STA $7E0FFF ; set the world to the light world if he's still alive LDA.b #$00 : STA $7EF3CA : STA $7E0FFF ; set the world to the light world if he's still alive
LDA $7EF3CC : CMP #$07 : BNE .done : LDA.b #$08 : STA $7EF3CC ; convert frog to dwarf LDA $7EF3CC : CMP #$07 : BNE .done : LDA.b #$08 : STA $7EF3CC ; convert frog to dwarf
;LDA $7EF3CC : CMP #$07 : BNE .done : LDA.b #$00 : STA $7EF3CC ; clear frog
.done .done
PLA PLA
RTL RTL

View File

@@ -17,10 +17,11 @@ OnDungeonEntrance:
PHA : PHP PHA : PHP
SEP #$20 ; set 8-bit accumulator SEP #$20 ; set 8-bit accumulator
LDA $040C : CMP #$FF : BEQ + ; don't do this unless it's a real dungeon LDA $040C : CMP #$FF : BEQ + ; don't do this unless it's a real dungeon
REP #$20 : LDA $A0 : CMP.w #18 : BEQ + : SEP #$20 ; skip if we're in the sanctuary
LDA $7EF3CC ; load follower LDA $7EF3CC ; load follower
CMP #$0C : BNE + ; skip if not the purple chest CMP #$0C : BNE + ; skip if not the purple chest
LDA #$00 : STA $7EF3CC LDA #$00 : STA $7EF3CC
+ + ; this might get hit from above in either accumulator mode
PLP : PLA PLP : PLA
STA $7EC172 ; thing we wrote over STA $7EC172 ; thing we wrote over
RTL RTL
@@ -77,11 +78,6 @@ PreItemGet:
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
PostItemGet: PostItemGet:
;LDA $02D8
;CMP #$70 : !BLT +
;CMP #$B0 : !BGE +
; JSL.l FreeDungeonItemNotice
;+
JSL.l MaybeWriteSRAMTrace JSL.l MaybeWriteSRAMTrace
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -687,6 +687,12 @@ JSL.l CheckMedallionSword
org $07A656 ; <- 3A656 - Bank07.asm:6133 (LDA $7EF359 : INC A : AND.b #$FE : BEQ BRANCH_BETA) - Quake org $07A656 ; <- 3A656 - Bank07.asm:6133 (LDA $7EF359 : INC A : AND.b #$FE : BEQ BRANCH_BETA) - Quake
JSL.l CheckMedallionSword JSL.l CheckMedallionSword
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $05F3A0 ; <- 2F3A0 - sprite_medallion_tablet.asm:240 (LDA $7EF359 : BMI .zeta)
JSL.l CheckTabletSword
;--------------------------------------------------------------------------------
org $05F40A ; <- 2F40A - sprite_medallion_tablet.asm:303 (LDA $7EF359 : BMI .show_hylian_script)
JSL.l CheckTabletSword
;--------------------------------------------------------------------------------
;================================================================================ ;================================================================================
; Medallion Tablets ; Medallion Tablets
@@ -811,12 +817,12 @@ JSL.l RNG_Kholdstare
org $1E97D5 ; <- F17D5 - sprite_kholdstare.asm : 605 (JSL GetRandomInt : AND.b #$04 : STA $0D) org $1E97D5 ; <- F17D5 - sprite_kholdstare.asm : 605 (JSL GetRandomInt : AND.b #$04 : STA $0D)
JSL.l RNG_Kholdstare JSL.l RNG_Kholdstare
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $1DE5E4 ; <- EE5E4 - sprite_vitreous.asm : 207 (JSL GetRandomInt : AND.b #$0F : TAY) org $1DE5B4 ; <- EE5E4 - sprite_vitreous.asm : 207 (JSL GetRandomInt : AND.b #$0F : TAY)
JSL.l RNG_Vitreous JSL.l RNG_Vitreous
org $1DE626 ; <- EE626 - sprite_vitreous.asm : 255 (JSL GetRandomInt : AND.b #$07 : STA $0D90, Y) org $1DE626 ; <- EE626 - sprite_vitreous.asm : 255 (JSL GetRandomInt : AND.b #$07 : STA $0D90, Y)
JSL.l RNG_Vitreous JSL.l RNG_Vitreous
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $1DB16C ; <- EB16C - sprite_trinexx.asm : 530 (JSL GetRandomInt : AND.b #$07 : TAY) org $1DB61C ; <- EB16C - sprite_trinexx.asm : 530 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Trinexx JSL.l RNG_Trinexx
org $1DB186 ; <- EB186 - sprite_trinexx.asm : 535 (JSL GetRandomInt : AND.b #$07 : TAY) org $1DB186 ; <- EB186 - sprite_trinexx.asm : 535 (JSL GetRandomInt : AND.b #$07 : TAY)
JSL.l RNG_Trinexx JSL.l RNG_Trinexx

View File

@@ -30,6 +30,14 @@ LoadSwordForDamage:
.done .done
RTL RTL
;================================================================================ ;================================================================================
CheckTabletSword:
LDA.l AllowHammerTablets : BEQ +
LDA $7EF34B : BEQ + ; check for hammer
LDA.b #$02 : RTL
+
LDA $7EF359 ; get actual sword value
RTL
;================================================================================
CheckGanonHammerDamage: CheckGanonHammerDamage:
LDA.l HammerableGanon : BEQ + LDA.l HammerableGanon : BEQ +
LDA $0E20, X : CMP.b #$D8 ; original behavior except ganon LDA $0E20, X : CMP.b #$D8 ; original behavior except ganon

View File

@@ -161,6 +161,10 @@ org $308043 ; PC 0x180043
StartingSword: StartingSword:
db #$00 ; #$00 = No Sword (default) - #$FF = Non-Sword db #$00 ; #$00 = No Sword (default) - #$FF = Non-Sword
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $308044 ; PC 0x180044
AllowHammerTablets:
db #$00 ; #$00 = Off (default) - #$01 = On
;--------------------------------------------------------------------------------
org $308080 ; PC 0x180080 org $308080 ; PC 0x180080
Upgrade5BombsRefill: Upgrade5BombsRefill:
db #$00 db #$00

View File

@@ -2,7 +2,8 @@
; Spawn Zelda (or not) ; Spawn Zelda (or not)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
SpawnZelda: SpawnZelda:
LDA.l $7EF3CC : CMP #$08 : BEQ + LDA.l $7EF3CC : CMP #$08 : BEQ + ; don't spawn if dwarf is present
CMP #$0C : BEQ + ; don't spawn if purple chest is present
CLC : RTL CLC : RTL
+ +
SEC SEC