Challenge modes: OHKO and Gloom
This commit is contained in:
BIN
data/c2e3e.bin
BIN
data/c2e3e.bin
Binary file not shown.
BIN
data/c2e3e.gfx
BIN
data/c2e3e.gfx
Binary file not shown.
26
events.asm
26
events.asm
@@ -208,18 +208,37 @@ OnInitFileSelect:
|
|||||||
JSL EnableForceBlank
|
JSL EnableForceBlank
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
OnGloomDamage:
|
||||||
|
LDA.b #$01
|
||||||
|
STA.l UpdateHUDFlag
|
||||||
|
LDA.l MaximumHealth
|
||||||
|
SEC : SBC.b #$08
|
||||||
|
STA.l CurrentHealth
|
||||||
|
BEQ +
|
||||||
|
STA.l MaximumHealth
|
||||||
|
+ RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
OnLinkDamaged:
|
OnLinkDamaged:
|
||||||
JSL IncrementDamageTakenCounter_Arb
|
JSL IncrementDamageTakenCounter_Arb
|
||||||
|
LDA.l ChallengeModes : AND.b #$03 : CMP.b #$02 : BEQ .gloom
|
||||||
JML OHKOTimer
|
JML OHKOTimer
|
||||||
|
.gloom
|
||||||
|
STZ.b $00
|
||||||
|
JML OnGloomDamage
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;OnEnterWater:
|
;OnEnterWater:
|
||||||
; JSL UnequipCapeQuiet ; what we wrote over
|
; JSL UnequipCapeQuiet ; what we wrote over
|
||||||
;RTL
|
;RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OnLinkDamagedFromPit:
|
OnLinkDamagedFromPit:
|
||||||
|
LDA.l ChallengeModes : AND.b #$03 : CMP.b #$02 : BEQ .gloom
|
||||||
JSL OHKOTimer
|
JSL OHKOTimer
|
||||||
|
BRA +
|
||||||
|
.gloom
|
||||||
|
JSL OnGloomDamage
|
||||||
|
CLC : ADC.b #$08 : STA.l CurrentHealth
|
||||||
|
|
||||||
LDA.l AllowAccidentalMajorGlitch
|
+ LDA.l AllowAccidentalMajorGlitch
|
||||||
BEQ ++
|
BEQ ++
|
||||||
-- LDA.b #$14 : STA.b GameSubMode ; thing we wrote over
|
-- LDA.b #$14 : STA.b GameSubMode ; thing we wrote over
|
||||||
|
|
||||||
@@ -231,7 +250,12 @@ OnLinkDamagedFromPit:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OnLinkDamagedFromPitOutdoors:
|
OnLinkDamagedFromPitOutdoors:
|
||||||
|
LDA.l ChallengeModes : AND.b #$03 : CMP.b #$02 : BEQ .gloom
|
||||||
JML OHKOTimer ; make sure this is last
|
JML OHKOTimer ; make sure this is last
|
||||||
|
.gloom
|
||||||
|
JSL OnGloomDamage
|
||||||
|
CLC : ADC.b #$08
|
||||||
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OnOWTransition:
|
OnOWTransition:
|
||||||
JSL FloodGateReset
|
JSL FloodGateReset
|
||||||
|
|||||||
33
newhud.asm
33
newhud.asm
@@ -451,6 +451,15 @@ HUDHex4Digit_Long:
|
|||||||
REP #$20
|
REP #$20
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
ClearHearts:
|
||||||
|
LDA.w #!BlankTile
|
||||||
|
LDX.b #$14
|
||||||
|
- STA.l HUDTileMapBuffer+$066, X
|
||||||
|
STA.l HUDTileMapBuffer+$0A6, X
|
||||||
|
DEX #2
|
||||||
|
BPL -
|
||||||
|
RTS
|
||||||
;================================================================================
|
;================================================================================
|
||||||
UpdateHearts:
|
UpdateHearts:
|
||||||
PHB
|
PHB
|
||||||
@@ -461,6 +470,22 @@ UpdateHearts:
|
|||||||
PHX
|
PHX
|
||||||
PLB
|
PLB
|
||||||
|
|
||||||
|
; OHKO mode
|
||||||
|
LDA.l ChallengeModes : AND.w #$0003 : CMP.w #$0001 : BNE +
|
||||||
|
LDA.w #$240A
|
||||||
|
STA.l HUDTileMapBuffer+$068
|
||||||
|
INC
|
||||||
|
STA.l HUDTileMapBuffer+$06A
|
||||||
|
INC
|
||||||
|
STA.l HUDTileMapBuffer+$06C
|
||||||
|
JMP .skip_partial
|
||||||
|
+
|
||||||
|
|
||||||
|
; Gloom mode
|
||||||
|
LDA.l ChallengeModes : AND.w #$0003 : CMP.w #$0002 : BNE +
|
||||||
|
JSR ClearHearts
|
||||||
|
+
|
||||||
|
|
||||||
LDA.w MaximumHealth
|
LDA.w MaximumHealth
|
||||||
LSR
|
LSR
|
||||||
LSR
|
LSR
|
||||||
@@ -484,7 +509,7 @@ UpdateHearts:
|
|||||||
LDA.l HUDHeartColors_index : ASL : TAX
|
LDA.l HUDHeartColors_index : ASL : TAX
|
||||||
LDA.l HUDHeartColors_masks_game_hud,X
|
LDA.l HUDHeartColors_masks_game_hud,X
|
||||||
PLX
|
PLX
|
||||||
ORA.w #$20A0
|
ORA.l HeartIcon
|
||||||
|
|
||||||
CPY.b #$01
|
CPY.b #$01
|
||||||
BPL .add_heart
|
BPL .add_heart
|
||||||
@@ -528,14 +553,14 @@ UpdateHearts:
|
|||||||
|
|
||||||
LDA.l HUDHeartColors_index : ASL : TAX
|
LDA.l HUDHeartColors_index : ASL : TAX
|
||||||
LDA.l HUDHeartColors_masks_game_hud,X
|
LDA.l HUDHeartColors_masks_game_hud,X
|
||||||
ORA.w #$20A1
|
ORA.l HalfHeartIcon
|
||||||
STA.b (Scrap09)
|
STA.b (Scrap09)
|
||||||
BRA .skip_partial
|
BRA .skip_partial
|
||||||
|
|
||||||
.more_than_half
|
.more_than_half
|
||||||
LDA.l HUDHeartColors_index : ASL : TAX
|
LDA.l HUDHeartColors_index : ASL : TAX
|
||||||
LDA.l HUDHeartColors_masks_game_hud,X
|
LDA.l HUDHeartColors_masks_game_hud,X
|
||||||
ORA.w #$20A0
|
ORA.l HeartIcon
|
||||||
STA.b (Scrap09)
|
STA.b (Scrap09)
|
||||||
|
|
||||||
.skip_partial
|
.skip_partial
|
||||||
@@ -555,7 +580,7 @@ CheckHeartPalette:
|
|||||||
PHX
|
PHX
|
||||||
LDA.l HUDHeartColors_index : ASL : TAX
|
LDA.l HUDHeartColors_index : ASL : TAX
|
||||||
LDA.l HUDHeartColors_masks_game_hud,X
|
LDA.l HUDHeartColors_masks_game_hud,X
|
||||||
ORA.w #$20A0
|
ORA.l HeartIcon
|
||||||
PLX
|
PLX
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|||||||
26
tables.asm
26
tables.asm
@@ -91,7 +91,23 @@ SmithSword:
|
|||||||
db $02 ; #$02 = Tempered Sword (default)
|
db $02 ; #$02 = Tempered Sword (default)
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x18002B- 0x180030 (Unused)
|
; 0x18002B (Unused)
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; 0x18002C (Reserved for Allowed Item on B)
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
org $B0802D
|
||||||
|
ChallengeModes:
|
||||||
|
; p--- mmdd
|
||||||
|
; p - permadeath
|
||||||
|
; m - movement modes (0 - normal, 1 - permanent ice physics)
|
||||||
|
; d - damage modes (0 - normal, 1 - ohko, 2 - gloom)
|
||||||
|
db $00
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; 0x18002E (Reserved for Ganon Vulnerability Item)
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; 0x18002F (Reserved for Special Weapons)
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; 0x180030 (Unused)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $B08031 ; PC 0x180031
|
org $B08031 ; PC 0x180031
|
||||||
EnableEasterEggs:
|
EnableEasterEggs:
|
||||||
@@ -2628,8 +2644,14 @@ org $B0F032 ; PC 0x187032
|
|||||||
RomSpeed:
|
RomSpeed:
|
||||||
db $01 ; $01 = FastROM (default) | $00 = SlowROM
|
db $01 ; $01 = FastROM (default) | $00 = SlowROM
|
||||||
|
|
||||||
|
org $B0F033 ; PC 0x187033
|
||||||
|
HeartIcon:
|
||||||
|
dw $20A0
|
||||||
|
HalfHeartIcon:
|
||||||
|
dw $20A1
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x187033 - 18703F (unused)
|
; 0x187037 - 18703F (unused)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
org $B0F040 ; PC 0x187040
|
org $B0F040 ; PC 0x187040
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ RTL
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OHKOTimer:
|
OHKOTimer:
|
||||||
LDA.l OHKOFlag : BNE .kill
|
LDA.l OHKOFlag : BNE .kill
|
||||||
|
LDA.l ChallengeModes : AND.b #$03 : CMP.b #$01 : BEQ .kill
|
||||||
LDA.l TimeoutBehavior : CMP.b #$02 : BNE +
|
LDA.l TimeoutBehavior : CMP.b #$02 : BNE +
|
||||||
LDA.l ClockStatus : AND.b #$02 : BEQ +
|
LDA.l ClockStatus : AND.b #$02 : BEQ +
|
||||||
.kill
|
.kill
|
||||||
|
|||||||
Reference in New Issue
Block a user