arrows for hard mode?

This commit is contained in:
Karkat
2018-03-12 23:17:41 -04:00
parent fb0f87c19b
commit d2576c9433
6 changed files with 42 additions and 13 deletions

View File

@@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF
db #$00 ; expand file to 2mb db #$00 ; expand file to 2mb
org $1FFFF8 ; <- FFFF8 timestamp rom org $1FFFF8 ; <- FFFF8 timestamp rom
db #$20, #$18, #$03, #$11 ; year/month/day db #$20, #$18, #$03, #$12 ; year/month/day
;================================================================================ ;================================================================================
@@ -124,10 +124,6 @@ incsrc accessability.asm
incsrc heartbeep.asm incsrc heartbeep.asm
incsrc capacityupgrades.asm incsrc capacityupgrades.asm
incsrc timer.asm incsrc timer.asm
incsrc glitched.asm
incsrc hardmode.asm
incsrc goalitem.asm
incsrc compasses.asm
incsrc doorframefixes.asm incsrc doorframefixes.asm
incsrc music.asm incsrc music.asm
incsrc hashalphabet.asm incsrc hashalphabet.asm
@@ -155,6 +151,10 @@ org $A1FF00 ; static mapping area
incsrc init.asm incsrc init.asm
org $A48000 ; code bank - PUT NEW CODE HERE org $A48000 ; code bank - PUT NEW CODE HERE
incsrc glitched.asm
incsrc hardmode.asm
incsrc goalitem.asm
incsrc compasses.asm
incsrc openmode.asm incsrc openmode.asm
incsrc quickswap.asm incsrc quickswap.asm
incsrc endingsequence.asm incsrc endingsequence.asm

View File

@@ -14,7 +14,6 @@ OnDrawHud:
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;OnDungeonEntrance: ;OnDungeonEntrance:
;
; STA $7EC172 ; thing we wrote over ; STA $7EC172 ; thing we wrote over
;RTL ;RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -60,7 +59,11 @@ OnFileLoad:
LDA $7EF38B : STA $7EF36F ; copy generic keys to key counter LDA $7EF38B : STA $7EF36F ; copy generic keys to key counter
+ +
STA $FFFFFF LDA SilverArrowsUseRestriction : BEQ + ; fix bow type for restricted arrow mode
LDA $7EF340 : CMP.b #$3 : !BLT +
!SUB.b #$02 : STA $7EF340
+
LDA $7EF3C5 : CMP.b #$01 : BNE .notrain ; check if we're in rain state LDA $7EF3C5 : CMP.b #$01 : BNE .notrain ; check if we're in rain state
.rain .rain
LDA.l EscapeAssist LDA.l EscapeAssist

View File

@@ -66,20 +66,28 @@ RTL
PHX : LDX.b #$00 ; scan ancilla table for arrows PHX : LDX.b #$00 ; scan ancilla table for arrows
-- : CPX.b #$0A : !BGE ++ -- : CPX.b #$0A : !BGE ++
LDA $0C4A, X : CMP.b #$09 : BNE +++ LDA $0C4A, X : CMP.b #$09 : BNE +++
PLX : BRA .errorJump ; found an arrow, don't allow the swap PLX : BRA .errorJump2 ; found an arrow, don't allow the swap
+++ +++
INX : BRA -- : ++ INX : BRA -- : ++
PLX PLX
LDA.l SilverArrowsUseRestriction : BEQ ++
LDA $A0 : ORA $A1 : BEQ ++ ; not in ganon's room in restricted mode
LDA $7EF340 : CMP.b #$03 : !BLT .errorJump : !SUB #$02 : STA $7EF340
BRA .errorJump2
++
LDA $7EF340 : !SUB #$01 : EOR #$02 : !ADD #$01 : STA $7EF340 ; swap bows LDA $7EF340 : !SUB #$01 : EOR #$02 : !ADD #$01 : STA $7EF340 ; swap bows
LDA.b #$20 : STA $012F ; menu select sound LDA.b #$20 : STA $012F ; menu select sound
BRL .captured BRL .captured
+ BRA +
.errorJump
BRA .errorJump2
+ CMP #$05 : BNE + ; powder + CMP #$05 : BNE + ; powder
LDA !INVENTORY_SWAP : AND #$30 : CMP #$30 : BNE .errorJump ; make sure we have mushroom & magic powder LDA !INVENTORY_SWAP : AND #$30 : CMP #$30 : BNE .errorJump ; make sure we have mushroom & magic powder
LDA $7EF344 : EOR #$03 : STA $7EF344 ; swap mushroom & magic powder LDA $7EF344 : EOR #$03 : STA $7EF344 ; swap mushroom & magic powder
LDA.b #$20 : STA $012F ; menu select sound LDA.b #$20 : STA $012F ; menu select sound
BRL .captured BRL .captured
;+ BRA + + BRA +
.errorJump .errorJump2
BRA .error BRA .error
+ CMP #$0D : BNE + ; flute + CMP #$0D : BNE + ; flute
LDA $037A : CMP #$01 : BEQ .midShovel ; inside a shovel animation, force the shovel & make error sound LDA $037A : CMP #$01 : BEQ .midShovel ; inside a shovel animation, force the shovel & make error sound

View File

@@ -231,9 +231,12 @@ AddReceivedItemExpandedGetItem:
%ProgrammableItemLogic(3) %ProgrammableItemLogic(3)
BRL .done BRL .done
+ CMP.b #$58 : BNE + ; Upgrade-Only Sivler Arrows + CMP.b #$58 : BNE + ; Upgrade-Only Sivler Arrows
LDA $7EF340 : BEQ ++ : CMP.b #$03 : !BGE ++ LDA.l SilverArrowsUseRestriction : BNE +++
!ADD.b #$02 : STA $7EF340 ; switch to silver bow LDA.l SilverArrowsAutoEquip : AND.b #$01 : BEQ +++
++ LDA $7EF340 : BEQ ++ : CMP.b #$03 : !BGE ++
!ADD.b #$02 : STA $7EF340 ; switch to silver bow
++
+++
LDA.l ArrowMode : BEQ ++ LDA.l ArrowMode : BEQ ++
LDA.b #$01 : STA $7EF376 LDA.b #$01 : STA $7EF376
++ ++

View File

@@ -184,6 +184,13 @@ DungeonHoleWarpTransition:
BRA StatTransitionCounter BRA StatTransitionCounter
DungeonHoleEntranceTransition: DungeonHoleEntranceTransition:
JSL EnableForceBlank JSL EnableForceBlank
LDA.l SilverArrowsAutoEquip : AND.b #$02 : BEQ +
LDA $7EF340 : BEQ +
CMP.b #$03 : !BGE +
!ADD #$02 : STA $7EF340
+
BRA StatTransitionCounter BRA StatTransitionCounter
DungeonStairsTransition: DungeonStairsTransition:
JSL Dungeon_SaveRoomQuadrantData JSL Dungeon_SaveRoomQuadrantData

View File

@@ -797,6 +797,14 @@ org $308180 ; PC 0x180180
StunItemAction: StunItemAction:
db #$03 ; #$03 = Hookshot and Boomerang (Default) db #$03 ; #$03 = Hookshot and Boomerang (Default)
;================================================================================ ;================================================================================
org $308181 ; PC 0x180181
SilverArrowsUseRestriction:
db #$00 ; #$00 = Off (Default) - #$01 = Only At Ganon
;================================================================================
org $308182 ; PC 0x180182
SilverArrowsAutoEquip:
db #$01 ; #$00 = Off - #$01 = Collection Time (Default) - #$02 = Entering Ganon - #$03 = Collection Time & Entering Ganon
;================================================================================
org $308190 ; PC 0x180190 org $308190 ; PC 0x180190
TimerStyle: TimerStyle:
db #$00 ; #$00 = Off (Default) - #$01 Countdown - #$02 = Stopwatch db #$00 ; #$00 = Off (Default) - #$01 Countdown - #$02 = Stopwatch