Compare commits
5 Commits
781431f633
...
boss_souls
| Author | SHA1 | Date | |
|---|---|---|---|
| 2ef95d4873 | |||
| 295b6a229b | |||
| e92aa018e3 | |||
| 66e4e91beb | |||
| bc966c0f99 |
@@ -181,6 +181,9 @@ incsrc dungeonmap.asm
|
||||
incsrc hextodec.asm
|
||||
incsrc multiworld.asm
|
||||
incsrc textrenderer.asm
|
||||
incsrc crystalswitchbook.asm
|
||||
incsrc mimicdash.asm
|
||||
incsrc souls.asm
|
||||
warnpc $A58000
|
||||
|
||||
org $A28000
|
||||
@@ -190,6 +193,7 @@ fillbyte $00 : fill 32
|
||||
incbin "data/customitems.4bpp"
|
||||
PreloadedGraphicsROM:
|
||||
incbin "data/preloadedgfx.4bpp"
|
||||
incbin "data/bossicons.souls.4bpp"
|
||||
warnpc $A2B000
|
||||
org $A2B000
|
||||
incsrc itemdatatables.asm ; Statically mapped
|
||||
|
||||
66
bugfixes.asm
66
bugfixes.asm
@@ -267,9 +267,65 @@ ParadoxCaveGfxFix:
|
||||
BRA .uploadLine
|
||||
;--------------------------------------------------------------------------------
|
||||
SetItemRiseTimer:
|
||||
LDA.w ItemReceiptMethod : CMP.b #$01 : BNE .not_from_chest
|
||||
LDA.b #$38 : STA.w AncillaTimer, X
|
||||
RTL
|
||||
.not_from_chest
|
||||
TYA : STA.w AncillaTimer, X ; What we wrote over
|
||||
LDA.w ItemReceiptMethod : CMP.b #$01 : BNE .not_from_chest
|
||||
LDA.b #$38 : STA.w AncillaTimer, X
|
||||
RTL
|
||||
|
||||
.not_from_chest
|
||||
LDA.l MultiworldJunkItemTimer : BEQ .default
|
||||
LDA.l !MULTIWORLD_ITEM_PLAYER_ID : BNE .multiworld
|
||||
LDA.l !MULTIWORLD_RECEIVING_ITEM : BNE .multiworld
|
||||
BRA .default
|
||||
|
||||
.multiworld
|
||||
LDA.l !MULTIWORLD_ITEM_ID
|
||||
JSL.l ItemIsJunk
|
||||
BEQ .default
|
||||
|
||||
.junk
|
||||
LDA.l MultiworldJunkItemTimer : STA.w AncillaTimer, X
|
||||
RTL
|
||||
|
||||
.default
|
||||
TYA : STA.w AncillaTimer, X ; What we wrote over
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemIsJunk:
|
||||
PHX
|
||||
LDX.b #JunkItems_end-JunkItems-1
|
||||
-
|
||||
CMP.l JunkItems, X : BEQ .junk
|
||||
DEX : BPL -
|
||||
PLX
|
||||
LDA.b #$00
|
||||
RTL
|
||||
.junk
|
||||
PLX
|
||||
LDA.b #$01
|
||||
RTL
|
||||
RTL
|
||||
|
||||
JunkItems:
|
||||
db $27 ; Bomb
|
||||
db $28 ; 3 bombs
|
||||
db $31 ; 10 bombs
|
||||
db $34 ; 1 rupee
|
||||
db $35 ; 5 rupees
|
||||
db $36 ; 20 rupees
|
||||
db $40 ; 100 rupees
|
||||
db $41 ; 50 rupees
|
||||
db $42 ; Heart
|
||||
db $43 ; Arrow
|
||||
db $44 ; 10 arrows
|
||||
db $45 ; Small magic
|
||||
db $46 ; 300 rupees
|
||||
db $47 ; 20 rupees green
|
||||
db $59 ; Rupoor
|
||||
db $D1 ; Apples
|
||||
db $D2 ; Fairy
|
||||
db $D3 ; Chicken
|
||||
db $D4 ; Big Magic
|
||||
db $D5 ; 5 Arrows
|
||||
db $D6 ; Good Bee
|
||||
.end
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
52
crystalswitchbook.asm
Normal file
52
crystalswitchbook.asm
Normal file
@@ -0,0 +1,52 @@
|
||||
pushpc
|
||||
|
||||
org $87A46E
|
||||
JSL CheckBookTriggerSwitch
|
||||
BCS +
|
||||
skip 15
|
||||
+
|
||||
|
||||
org $8296A8
|
||||
JSL FinishPegChange
|
||||
|
||||
pullpc
|
||||
|
||||
FinishPegChange:
|
||||
LDA.b #$20
|
||||
TRB.w $037A
|
||||
|
||||
STZ.b $B0
|
||||
STZ.b $11
|
||||
RTL
|
||||
|
||||
CheckBookTriggerSwitch:
|
||||
LDA.l CrystalSwitchBook
|
||||
BEQ +
|
||||
|
||||
LDA.b $10
|
||||
CMP.b #$07
|
||||
BNE +
|
||||
|
||||
LDA.l $7EC172
|
||||
EOR.b #$01
|
||||
STA.l $7EC172
|
||||
|
||||
LDA.b #$16
|
||||
STA.b $11
|
||||
|
||||
LDA.b #$20
|
||||
TSB.w $037A
|
||||
|
||||
LDA.b #$25
|
||||
JSL $8DBB8A
|
||||
|
||||
SEC
|
||||
BRA .done
|
||||
|
||||
+ CLC
|
||||
.done
|
||||
; what we wrote over
|
||||
LDA.b $3A
|
||||
AND.b #$BF
|
||||
STA.b $3A
|
||||
RTL
|
||||
@@ -15,3 +15,27 @@ dw $0000, $7E4E, $6F44, $1CF5, $7399, $1CE7, $02F9, $0233
|
||||
dw $7FFF, $7FFF, $0000, $5907, $6E0E, $0000, $7FBB, $7672
|
||||
.off_black
|
||||
dw $0000, $14A5, $14A5, $14A5, $14A5, $14A5, $14A5, $14A5
|
||||
.armos
|
||||
dw hexto555($000000), hexto555($F8F8F8), hexto555($D86060), hexto555($5070C8), hexto555($B090F8), hexto555($282828), hexto555($F0A068), hexto555($B06028)
|
||||
.lanmolas
|
||||
dw hexto555($787040), hexto555($585030), hexto555($484018), hexto555($50C090), hexto555($408858), hexto555($305830), hexto555($D8A800), hexto555($E06018)
|
||||
.moldorm
|
||||
dw hexto555($F8D018), hexto555($C8B818), hexto555($A89818), hexto555($806818), hexto555($503818), hexto555($903818), hexto555($D85800), hexto555($F8A828)
|
||||
.agahnim
|
||||
dw hexto555($000000), hexto555($F8F8F8), hexto555($C04080), hexto555($B08828), hexto555($E8C070), hexto555($282828), hexto555($90D038), hexto555($688020)
|
||||
.helmasaur
|
||||
dw hexto555($A00028), hexto555($D03828), hexto555($E88820), hexto555($4848B0), hexto555($7870E8), hexto555($A8A8F8), hexto555($F8F8F8), hexto555($181818)
|
||||
.arrghus
|
||||
dw hexto555($000000), hexto555($F8F8F8), hexto555($903018), hexto555($D85800), hexto555($F8A828), hexto555($282828), hexto555($E88068), hexto555($B04038)
|
||||
.mothula
|
||||
dw hexto555($000000), hexto555($F8F8F8), hexto555($4848B0), hexto555($7870E8), hexto555($A8A8F8), hexto555($282828), hexto555($F8A840), hexto555($D85820)
|
||||
.blind
|
||||
dw hexto555($88D0F8), hexto555($7890F8), hexto555($903018), hexto555($D85800), hexto555($F8A828), hexto555($282828), hexto555($E88068), hexto555($B04038)
|
||||
.kholdstare
|
||||
dw hexto555($7098C0), hexto555($58B0E8), hexto555($D0F8F8), hexto555($4828C8), hexto555($4828F0), hexto555($8070F8), hexto555($F8C8F8), hexto555($E088B0)
|
||||
.vitreous
|
||||
dw hexto555($000000), hexto555($F8F8F8), hexto555($50C090), hexto555($408858), hexto555($305830), hexto555($282828), hexto555($D8A800), hexto555($E06018)
|
||||
.trinexx
|
||||
dw hexto555($A00028), hexto555($A8A8F8), hexto555($7870E8), hexto555($4848B0), hexto555($505060), hexto555($788890), hexto555($78C0A8), hexto555($707068)
|
||||
.ganon
|
||||
dw hexto555($385088), hexto555($5088A8), hexto555($88C8A0), hexto555($B090F8), hexto555($C0A028), hexto555($886008), hexto555($B83010), hexto555($E86040)
|
||||
|
||||
BIN
data/bossicons.souls.4bpp
Normal file
BIN
data/bossicons.souls.4bpp
Normal file
Binary file not shown.
@@ -14,4 +14,4 @@ incsrc hooks/damage_hooks.asm
|
||||
|
||||
incsrc hooks/overworld_sprite_hooks.asm
|
||||
|
||||
incsrc hooks/underworld_sprite_hooks.asm
|
||||
incsrc hooks/underworld_sprite_hooks.asm
|
||||
|
||||
@@ -26,7 +26,7 @@ SpritePrep_Eyegore_become_mimic:
|
||||
;JSL resetSprite_Mimic : NOP
|
||||
|
||||
org $86ED9E ; Sprite_ApplyCalculatedDamage, skip high sprite id early exit
|
||||
JSL IsItReallyAMimic : NOP
|
||||
; JSL IsItReallyAMimic : NOP ; now hooked into from souls.asm
|
||||
|
||||
org $86EDA6 ; Sprite_ApplyCalculatedDamage .not_absorbable
|
||||
JSL notItemSprite_Mimic
|
||||
@@ -108,4 +108,4 @@ notItemSprite_Mimic:
|
||||
.continue
|
||||
; restore code
|
||||
REP #$20 : ASL #2
|
||||
RTL
|
||||
RTL
|
||||
|
||||
40
hooks.asm
40
hooks.asm
@@ -2182,6 +2182,9 @@ JSL LampCheck
|
||||
;--------------------------------------------------------------------------------
|
||||
org $81F503 ; <- F503 - Bank01.asm:14994 (LDA.b #$01 : STA $1D)
|
||||
JSL SetOverlayIfLamp
|
||||
;--------------------------------------------------------------------------------
|
||||
org $81B610 ; <- loading whether room is dark
|
||||
JSL DarkRoomCheck
|
||||
;================================================================================
|
||||
|
||||
;================================================================================
|
||||
@@ -2736,4 +2739,39 @@ NOP #2 ; this fixes Link's direction after mirroring and falling after entering
|
||||
; Enable new room header table
|
||||
;--------------------------------------------------------------------------------
|
||||
org $81B5E6
|
||||
LDA.b #$30
|
||||
LDA.b #$30
|
||||
|
||||
;===================================================================================================
|
||||
;--------------------------------------------------------------------------------
|
||||
; Mimic dash changes
|
||||
;--------------------------------------------------------------------------------
|
||||
org $9EC7BE
|
||||
JSL MimicDirection
|
||||
|
||||
;===================================================================================================
|
||||
;--------------------------------------------------------------------------------
|
||||
; Boss souls changes
|
||||
;--------------------------------------------------------------------------------
|
||||
org $8DB866
|
||||
JSL CheckBossSoul : BRA + : NOP #2 : +
|
||||
|
||||
org $86ED9E
|
||||
JSL CheckInvincibleFlag : NOP
|
||||
|
||||
org $85DFFE
|
||||
JSL SoulPaletteSet : BRA + : NOP #5 : +
|
||||
|
||||
org $85DFB7
|
||||
JSL SoulPaletteApply : NOP #2
|
||||
|
||||
org $9E8086
|
||||
JSL HelmasaurPaletteFix : BRA + : NOP #2 : +
|
||||
|
||||
org $9E838C
|
||||
JSL HelmasaurHammerFix : NOP
|
||||
|
||||
org $9DD884
|
||||
JSL MoldormPaletteFix_b : NOP
|
||||
|
||||
org $9DDB2E
|
||||
JSL MoldormPaletteFix_d : NOP
|
||||
|
||||
@@ -806,10 +806,19 @@ RTL
|
||||
; A = item id being collected
|
||||
ItemGetAlternateSFX:
|
||||
PEA.w $C567 ; SNES to RTS to in bank 08
|
||||
LDA.w AncillaGet,X : CMP.b #$4A : BNE +
|
||||
LDA.w AncillaGet, X : CMP.b #$4A : BNE +
|
||||
; collecting pre-activated flute
|
||||
LDA.b #$13 : JML Ancilla_SFX2_Near
|
||||
+ ; normal itemget sfx
|
||||
+ ; not pre-activated flute
|
||||
LDA.l !MULTIWORLD_RECEIVING_ITEM : BEQ .normal
|
||||
LDA.l MultiworldJunkItemTimer : BEQ .normal
|
||||
LDA.w AncillaGet, X
|
||||
JSL.l ItemIsJunk : BEQ .normal
|
||||
|
||||
.multijunk
|
||||
LDA.b #$3B : JML Ancilla_SFX3_Near ; what we wrote over
|
||||
|
||||
.normal
|
||||
LDA.b #$0F : JML Ancilla_SFX3_Near ; what we wrote over
|
||||
|
||||
; A = item id being collected
|
||||
@@ -818,6 +827,16 @@ CPY.b #$4A : BNE +
|
||||
JSL Sound_SetSfxPanWithPlayerCoords : ORA.b #$13 : STA.w SFX2
|
||||
RTL
|
||||
+ ; normal itemget sfx
|
||||
LDA.l !MULTIWORLD_RECEIVING_ITEM : BEQ .normal
|
||||
LDA.l MultiworldJunkItemTimer : BEQ .normal
|
||||
TYA
|
||||
JSL.l ItemIsJunk : BEQ .normal
|
||||
|
||||
.multijunk
|
||||
JSL Sound_SetSfxPanWithPlayerCoords : ORA.b #$3B : STA.w SFX3
|
||||
RTL
|
||||
|
||||
.normal
|
||||
JSL Sound_SetSfxPanWithPlayerCoords : ORA.b #$0F : STA.w SFX3 ; what we wrote over
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -377,16 +377,16 @@ endmacro
|
||||
%ReceiptProps($ED, -4, 0, $49, $F36A, $FF, skip, skip) ; ED -
|
||||
%ReceiptProps($EE, -4, 0, $49, $F36A, $FF, skip, skip) ; EE -
|
||||
%ReceiptProps($EF, -4, 0, $49, $F36A, $FF, skip, skip) ; EF -
|
||||
%ReceiptProps($F0, -4, 0, $49, $F36A, $FF, skip, skip) ; F0 -
|
||||
%ReceiptProps($F1, -4, 0, $49, $F36A, $FF, skip, skip) ; F1 -
|
||||
%ReceiptProps($F2, -4, 0, $49, $F36A, $FF, skip, skip) ; F2 -
|
||||
%ReceiptProps($F3, -4, 0, $49, $F36A, $FF, skip, skip) ; F3 -
|
||||
%ReceiptProps($F4, -4, 0, $49, $F36A, $FF, skip, skip) ; F4 -
|
||||
%ReceiptProps($F5, -4, 0, $49, $F36A, $FF, skip, skip) ; F5 -
|
||||
%ReceiptProps($F6, -4, 0, $49, $F36A, $FF, skip, skip) ; F6 -
|
||||
%ReceiptProps($F7, -4, 0, $49, $F36A, $FF, skip, skip) ; F7 -
|
||||
%ReceiptProps($F8, -4, 0, $49, $F36A, $FF, skip, skip) ; F8 -
|
||||
%ReceiptProps($F9, -4, 0, $49, $F36A, $FF, skip, skip) ; F9 -
|
||||
%ReceiptProps($F0, -4, 0, $51, $F36A, $FF, skip, skip) ; F0 - Armos Soul
|
||||
%ReceiptProps($F1, -4, 0, $52, $F36A, $FF, skip, skip) ; F1 - Lanmolas Soul
|
||||
%ReceiptProps($F2, -4, 0, $53, $F36A, $FF, skip, skip) ; F2 - Moldorm Soul
|
||||
%ReceiptProps($F3, -4, 0, $54, $F36A, $FF, skip, skip) ; F3 - Helmasaur Soul
|
||||
%ReceiptProps($F4, -4, 0, $55, $F36A, $FF, skip, skip) ; F4 - Arrghus Soul
|
||||
%ReceiptProps($F5, -4, 0, $56, $F36A, $FF, skip, skip) ; F5 - Mothula Soul
|
||||
%ReceiptProps($F6, -4, 0, $57, $F36A, $FF, skip, skip) ; F6 - Blind Soul
|
||||
%ReceiptProps($F7, -4, 0, $58, $F36A, $FF, skip, skip) ; F7 - Kholdstare Soul
|
||||
%ReceiptProps($F8, -4, 0, $59, $F36A, $FF, skip, skip) ; F8 - Vitreous Soul
|
||||
%ReceiptProps($F9, -4, 0, $5A, $F36A, $FF, skip, skip) ; F9 - Trinexx Soul
|
||||
%ReceiptProps($FA, -4, 0, $49, $F36A, $FF, skip, skip) ; FA -
|
||||
%ReceiptProps($FB, -4, 0, $49, $F36A, $FF, skip, skip) ; FB -
|
||||
%ReceiptProps($FC, -4, 0, $49, $F36A, $FF, skip, skip) ; FC -
|
||||
@@ -656,16 +656,16 @@ endmacro
|
||||
%SpriteProps($ED, 2, 2, $04, $04, $0000) ; ED -
|
||||
%SpriteProps($EE, 2, 2, $04, $04, $0000) ; EE -
|
||||
%SpriteProps($EF, 2, 2, $04, $04, $0000) ; EF -
|
||||
%SpriteProps($F0, 2, 2, $04, $04, $0000) ; F0 -
|
||||
%SpriteProps($F1, 2, 2, $04, $04, $0000) ; F1 -
|
||||
%SpriteProps($F2, 2, 2, $04, $04, $0000) ; F2 -
|
||||
%SpriteProps($F3, 2, 2, $04, $04, $0000) ; F3 -
|
||||
%SpriteProps($F4, 2, 2, $04, $04, $0000) ; F4 -
|
||||
%SpriteProps($F5, 2, 2, $04, $04, $0000) ; F5 -
|
||||
%SpriteProps($F6, 2, 2, $04, $04, $0000) ; F6 -
|
||||
%SpriteProps($F7, 2, 2, $04, $04, $0000) ; F7 -
|
||||
%SpriteProps($F8, 2, 2, $04, $04, $0000) ; F8 -
|
||||
%SpriteProps($F9, 2, 2, $04, $04, $0000) ; F9 -
|
||||
%SpriteProps($F0, 2, 2, $83, $83, PalettesCustom_armos) ; F0 - Armos Soul
|
||||
%SpriteProps($F1, 2, 2, $83, $83, PalettesCustom_lanmolas) ; F1 - Lanmolas Soul
|
||||
%SpriteProps($F2, 2, 2, $83, $83, PalettesCustom_moldorm) ; F2 - Moldorm Soul
|
||||
%SpriteProps($F3, 2, 2, $83, $83, PalettesCustom_helmasaur) ; F3 - Helmasuar Soul
|
||||
%SpriteProps($F4, 2, 2, $83, $83, PalettesCustom_arrghus) ; F4 - Arrghus Soul
|
||||
%SpriteProps($F5, 2, 2, $83, $83, PalettesCustom_mothula) ; F5 - Mothula Soul
|
||||
%SpriteProps($F6, 2, 2, $83, $83, PalettesCustom_blind) ; F6 - Blind Soul
|
||||
%SpriteProps($F7, 2, 2, $83, $83, PalettesCustom_kholdstare) ; F7 - Kholdstare Soul
|
||||
%SpriteProps($F8, 2, 2, $83, $83, PalettesCustom_vitreous) ; F8 - Vitreous Soul
|
||||
%SpriteProps($F9, 2, 2, $83, $83, PalettesCustom_trinexx) ; F9 - Trinexx Soul
|
||||
%SpriteProps($FA, 2, 2, $04, $04, $0000) ; FA -
|
||||
%SpriteProps($FB, 2, 2, $04, $04, $0000) ; FB -
|
||||
%SpriteProps($FC, 2, 2, $04, $04, $0000) ; FC -
|
||||
@@ -932,16 +932,16 @@ endmacro
|
||||
%InventoryItem($ED, $0001, $0000, $0000) ; ED -
|
||||
%InventoryItem($EE, $0001, $0000, $0000) ; EE -
|
||||
%InventoryItem($EF, $0001, $0000, $0000) ; EF -
|
||||
%InventoryItem($F0, $0001, $0000, $0000) ; F0 -
|
||||
%InventoryItem($F1, $0001, $0000, $0000) ; F1 -
|
||||
%InventoryItem($F2, $0001, $0000, $0000) ; F2 -
|
||||
%InventoryItem($F3, $0001, $0000, $0000) ; F3 -
|
||||
%InventoryItem($F4, $0001, $0000, $0000) ; F4 -
|
||||
%InventoryItem($F5, $0001, $0000, $0000) ; F5 -
|
||||
%InventoryItem($F6, $0001, $0000, $0000) ; F6 -
|
||||
%InventoryItem($F7, $0001, $0000, $0000) ; F7 -
|
||||
%InventoryItem($F8, $0001, $0000, $0000) ; F8 -
|
||||
%InventoryItem($F9, $0001, $0000, $0000) ; F9 -
|
||||
%InventoryItem($F0, $0081, $0000, $0000) ; F0 - Armos Soul
|
||||
%InventoryItem($F1, $0081, $0000, $0000) ; F1 - Lanmolas Soul
|
||||
%InventoryItem($F2, $0081, $0000, $0000) ; F2 - Moldorm Soul
|
||||
%InventoryItem($F3, $0081, $0000, $0000) ; F3 - Helmasuar Soul
|
||||
%InventoryItem($F4, $0081, $0000, $0000) ; F4 - Arrghus Soul
|
||||
%InventoryItem($F5, $0081, $0000, $0000) ; F5 - Mothula Soul
|
||||
%InventoryItem($F6, $0081, $0000, $0000) ; F6 - Blind Soul
|
||||
%InventoryItem($F7, $0081, $0000, $0000) ; F7 - Kholdstare Soul
|
||||
%InventoryItem($F8, $0081, $0000, $0000) ; F8 - Vitreous Soul
|
||||
%InventoryItem($F9, $0081, $0000, $0000) ; F9 - Trinexx Soul
|
||||
%InventoryItem($FA, $0001, $0000, $0000) ; FA -
|
||||
%InventoryItem($FB, $0001, $0000, $0000) ; FB -
|
||||
%InventoryItem($FC, $0001, $0000, $0000) ; FC -
|
||||
@@ -1196,16 +1196,16 @@ ItemReceiptGraphicsOffsets:
|
||||
dw $0 ; ED -
|
||||
dw $0 ; EE -
|
||||
dw $0 ; EF -
|
||||
dw $0 ; F0 -
|
||||
dw $0 ; F1 -
|
||||
dw $0 ; F2 -
|
||||
dw $0 ; F3 -
|
||||
dw $0 ; F4 -
|
||||
dw $0 ; F5 -
|
||||
dw $0 ; F6 -
|
||||
dw $0 ; F7 -
|
||||
dw $0 ; F8 -
|
||||
dw $0 ; F9 -
|
||||
dw $1C20 ; F0 - Armos Soul
|
||||
dw $1C60 ; F1 - Lanmolas Soul
|
||||
dw $1CA0 ; F2 - Moldorm Soul
|
||||
dw $1D20 ; F3 - Helmasuar Soul
|
||||
dw $1D60 ; F4 - Arrghus Soul
|
||||
dw $1DA0 ; F5 - Mothula Soul
|
||||
dw $1DE0 ; F6 - Blind Soul
|
||||
dw $2020 ; F7 - Kholdstare Soul
|
||||
dw $2060 ; F8 - Vitreous Soul
|
||||
dw $20A0 ; F9 - Trinexx Soul
|
||||
dw $0 ; FA -
|
||||
dw $0 ; FB -
|
||||
dw $0 ; FC -
|
||||
@@ -1466,16 +1466,16 @@ StandingItemGraphicsOffsets:
|
||||
dw $0 ; ED -
|
||||
dw $0 ; EE -
|
||||
dw $0 ; EF -
|
||||
dw $0 ; F0 -
|
||||
dw $0 ; F1 -
|
||||
dw $0 ; F2 -
|
||||
dw $0 ; F3 -
|
||||
dw $0 ; F4 -
|
||||
dw $0 ; F5 -
|
||||
dw $0 ; F6 -
|
||||
dw $0 ; F7 -
|
||||
dw $0 ; F8 -
|
||||
dw $0 ; F9 -
|
||||
dw $1C20 ; F0 - Armos Soul
|
||||
dw $1C60 ; F1 - Lanmolas Soul
|
||||
dw $1CA0 ; F2 - Moldorm Soul
|
||||
dw $1D20 ; F3 - Helmasuar Soul
|
||||
dw $1D60 ; F4 - Arrghus Soul
|
||||
dw $1DA0 ; F5 - Mothula Soul
|
||||
dw $1DE0 ; F6 - Blind Soul
|
||||
dw $2020 ; F7 - Kholdstare Soul
|
||||
dw $2060 ; F8 - Vitreous Soul
|
||||
dw $20A0 ; F9 - Trinexx Soul
|
||||
dw $0 ; FA -
|
||||
dw $0 ; FB -
|
||||
dw $0 ; FC -
|
||||
|
||||
@@ -6,12 +6,30 @@
|
||||
LampCheck:
|
||||
LDA.l LightConeModifier : BNE .lamp
|
||||
LDA.l LampEquipment : BNE .lamp ; skip if we already have lantern
|
||||
LDA.l LampCone : AND.b #$10 : BNE .lamp
|
||||
LDA.w DungeonID : CMP.b #$04 : BCS + ; are we en HC?
|
||||
LDA.l LampConeSewers : RTL
|
||||
LDA.l LampCone : AND.b #$01 : RTL
|
||||
+ : TDC
|
||||
.lamp
|
||||
RTL
|
||||
;================================================================================
|
||||
; Dark Room checks
|
||||
;--------------------------------------------------------------------------------
|
||||
; Output: 0 for normal room, 1 for darkness
|
||||
;--------------------------------------------------------------------------------
|
||||
DarkRoomCheck:
|
||||
LDA.l LampCone : AND.b #$20 : BNE .no_dark
|
||||
LDA.b [$0D], Y
|
||||
AND.b #$01
|
||||
RTL
|
||||
.no_dark
|
||||
LDA.b $A0 : ORA.b $A1 : BNE .not_dark
|
||||
LDA.b #$01 ; ganon's room
|
||||
RTL
|
||||
.not_dark
|
||||
LDA.b #$00 ; not ganon's room, so no darkness
|
||||
RTL
|
||||
;================================================================================
|
||||
;--------------------------------------------------------------------------------
|
||||
; Output: 0 locked, 1 open
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
BIN
menu/drfont.2bpp
BIN
menu/drfont.2bpp
Binary file not shown.
@@ -9,7 +9,7 @@ UploadMenuOnlyIcons:
|
||||
REP #$20
|
||||
LDA.w #MenuOnlyIcons : STA.w $4342
|
||||
LDA.w #$1801 : STA.w $4340
|
||||
LDA.w #$0240 : STA.w $4345
|
||||
LDA.w #$03A0 : STA.w $4345
|
||||
LDA.w #$0F800>>1 : STA.w $2116
|
||||
|
||||
SEP #$20
|
||||
@@ -20,4 +20,4 @@ UploadMenuOnlyIcons:
|
||||
RTL
|
||||
|
||||
MenuOnlyIcons:
|
||||
incbin "drfont.2bpp"
|
||||
incbin "drfont.2bpp"
|
||||
|
||||
22
mimicdash.asm
Normal file
22
mimicdash.asm
Normal file
@@ -0,0 +1,22 @@
|
||||
;================================================================================
|
||||
; Mimic Direction Check
|
||||
;--------------------------------------------------------------------------------
|
||||
; Output: 0 for darkness, 1 for lamp cone
|
||||
;--------------------------------------------------------------------------------
|
||||
MimicDirection:
|
||||
LDA.b $F0
|
||||
AND.b #$0F
|
||||
BNE .done
|
||||
LDA.l MimicDash
|
||||
BEQ .done
|
||||
LDA.w $0372
|
||||
BEQ .done
|
||||
LDA.w $0374
|
||||
BNE .make_zero
|
||||
LDA.b $67
|
||||
.done
|
||||
RTL
|
||||
.make_zero
|
||||
LDA.b #$00
|
||||
RTL
|
||||
|
||||
@@ -23,8 +23,14 @@ NewHUD_DrawBombs:
|
||||
BRA .draw
|
||||
|
||||
.finite
|
||||
LDA.w BombCapacity : BEQ .no_bomb_bag
|
||||
LDA.w BombsEquipment
|
||||
JSR HUDHex2Digit
|
||||
BRA .draw
|
||||
|
||||
.no_bomb_bag
|
||||
LDY.w #!BlankTile
|
||||
TYX
|
||||
|
||||
.draw
|
||||
STY.w HUDBombCount+0
|
||||
|
||||
@@ -1818,4 +1818,4 @@ db $18, $0A, $D8 ; yx:{ 0x180, 0x0A0 }
|
||||
db $18, $0F, $45 ; yx:{ 0x180, 0x0F0 }
|
||||
db $FF ; END
|
||||
org $89CA55
|
||||
dw Overworld_Sprites_Screen1A_2&$FFFF
|
||||
dw Overworld_Sprites_Screen1A_2&$FFFF
|
||||
|
||||
@@ -464,7 +464,40 @@ dw $2990 ; green pendant
|
||||
dw $298B ; blue pendant
|
||||
dw $299B ; red pendant
|
||||
;================================================================================
|
||||
DrawBossSouls:
|
||||
PHP : PHB : PHK : PLB
|
||||
REP #$30 ; Set 16-bit accumulator & index registers
|
||||
LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals
|
||||
-
|
||||
LDA.l .row0, X : STA.w GFXStripes+$02EA, X
|
||||
LDA.l .row1, X : STA.w GFXStripes+$032A, X
|
||||
LDA.l .row2, X : STA.w GFXStripes+$036A, X
|
||||
LDA.l .row3, X : STA.w GFXStripes+$03AA, X
|
||||
LDA.l .row4, X : STA.w GFXStripes+$03EA, X
|
||||
LDA.l .row5, X : STA.w GFXStripes+$042A, X
|
||||
LDA.l .row6, X : STA.w GFXStripes+$046A, X
|
||||
LDA.l .row7, X : STA.w GFXStripes+$04AA, X
|
||||
LDA.l .row8, X : STA.w GFXStripes+$04EA, X
|
||||
INX #2 : CPX.w #$0014 : BCC -
|
||||
|
||||
PLB : PLP
|
||||
RTL
|
||||
;================================================================================
|
||||
.row0 dw $28FB, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $68FB
|
||||
.row1 dw $28FC, $31A4, $31A5, $24F5, $31A6, $31A7, $24F5, $31A8, $31A9, $68FC
|
||||
.row2 dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
||||
.row3 dw $28FC, $31AA, $31AB, $24F5, $31AC, $31AD, $24F5, $31AE, $31AF, $68FC
|
||||
.row4 dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
||||
.row5 dw $28FC, $31B0, $31B1, $24F5, $31B2, $31B3, $24F5, $31B4, $31B5, $68FC
|
||||
.row6 dw $28FC, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $24F5, $68FC
|
||||
.row7 dw $28FC, $24F5, $31B6, $31B7, $24F5, $24F5, $31B8, $31B9, $24F5, $68FC
|
||||
.row8 dw $A8FB, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $E8FB
|
||||
;================================================================================
|
||||
DrawPendantCrystalDiagram:
|
||||
LDA.l HudFlag : AND.b #$40 : BEQ +
|
||||
JML.l DrawBossSouls
|
||||
+
|
||||
|
||||
PHP : PHB : PHK : PLB
|
||||
REP #$30 ; Set 16-bit accumulator & index registers
|
||||
LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals
|
||||
|
||||
3
ram.asm
3
ram.asm
@@ -687,7 +687,8 @@ MapTotalsWRAM: skip $10 ; / on boot for tracking.
|
||||
skip $20 ; Reserved for general dungeon tracking data. May have over
|
||||
; allocated here. Feel free to reassign.
|
||||
MapCompassFlag: skip 2 ; Used to flag overworld map drawing.
|
||||
skip $3E ; Unused
|
||||
SpriteInvincibilityFlag: skip $10 ; Used for boss soul shuffle
|
||||
skip $2E ; Unused
|
||||
skip $260 ; Unused
|
||||
DialogBuffer: skip $100 ; Dialog Buffer
|
||||
;
|
||||
|
||||
152
souls.asm
Normal file
152
souls.asm
Normal file
@@ -0,0 +1,152 @@
|
||||
;================================================================================
|
||||
; Boss Souls
|
||||
;================================================================================
|
||||
SoulPaletteSet:
|
||||
LDA.l SpriteInvincibilityFlag, X
|
||||
BEQ .normal
|
||||
LDA.b #$FF
|
||||
STA.w $0CFE
|
||||
RTL
|
||||
.normal
|
||||
CMP.b #$08
|
||||
BNE +
|
||||
LDA.l $7FFA3C, X
|
||||
STA.w $0CFE
|
||||
+
|
||||
RTL
|
||||
;================================================================================
|
||||
SoulPaletteApply:
|
||||
AND.w #$F1FF
|
||||
PHA
|
||||
LDA.w $0CFE
|
||||
AND.w #$00FF
|
||||
CMP.w #$00FF
|
||||
BEQ .blackout
|
||||
.ice
|
||||
PLA
|
||||
ORA.w #$0400
|
||||
RTL
|
||||
.blackout
|
||||
PLA
|
||||
ORA.w #$0600
|
||||
RTL
|
||||
;================================================================================
|
||||
HelmasaurPaletteFix:
|
||||
LDA.w $0B89, X
|
||||
AND.b #$F1
|
||||
PHA
|
||||
LDA.l SpriteInvincibilityFlag, X
|
||||
BEQ .normal
|
||||
.blackout
|
||||
PLA
|
||||
ORA.b #$0A
|
||||
STA.w $0B89, X
|
||||
RTL
|
||||
.normal
|
||||
PLA
|
||||
STA.w $0B89, X
|
||||
RTL
|
||||
;================================================================================
|
||||
HelmasaurHammerFix:
|
||||
LDA.l SpriteInvincibilityFlag, X
|
||||
BEQ .normal
|
||||
LDA.b #$00
|
||||
RTL
|
||||
.normal
|
||||
LDA.w $0301
|
||||
AND.b #$0A
|
||||
RTL
|
||||
;================================================================================
|
||||
MoldormPaletteFix:
|
||||
.b
|
||||
LDA.b #$0B
|
||||
BRA .apply
|
||||
.d
|
||||
LDA.b #$0D
|
||||
.apply
|
||||
PHA
|
||||
LDA.l SpriteInvincibilityFlag, X
|
||||
BEQ .normal
|
||||
PLA
|
||||
LDA.b #$07
|
||||
BRA .write
|
||||
.normal
|
||||
PLA
|
||||
.write
|
||||
STA.w $0F50, X
|
||||
RTL
|
||||
;================================================================================
|
||||
CheckInvincibleFlag:
|
||||
LDA.l SpriteInvincibilityFlag, X
|
||||
BEQ .normal
|
||||
LDA.w $0E20, X
|
||||
SEC
|
||||
RTL
|
||||
.normal
|
||||
JML.l IsItReallyAMimic
|
||||
;================================================================================
|
||||
CheckBossSoul:
|
||||
PHA : PHX
|
||||
LDA.b #$00
|
||||
STA.l SpriteInvincibilityFlag, X
|
||||
; check if boss id
|
||||
LDX.b #.boss_ids_end-.boss_ids-1
|
||||
TYA
|
||||
|
||||
- CMP.l .boss_ids, X
|
||||
BEQ .match
|
||||
|
||||
DEX
|
||||
BPL -
|
||||
|
||||
.normal
|
||||
PLX : PLA
|
||||
STA.w $0E60, X
|
||||
AND.b #$0F
|
||||
STA.w $0F50, X
|
||||
RTL
|
||||
|
||||
.match
|
||||
; X is boss index
|
||||
|
||||
; make palette black
|
||||
LDA.b #$00
|
||||
LDX.b #$1D
|
||||
- STA.l $7EC462, X
|
||||
STA.l $7EC662, X
|
||||
DEX
|
||||
BPL -
|
||||
LDA.b #$01
|
||||
STA.b $15 ; update palette
|
||||
|
||||
PLX
|
||||
LDA.b #$01
|
||||
STA.l SpriteInvincibilityFlag, X
|
||||
|
||||
PLA
|
||||
|
||||
ORA.b #$40
|
||||
STA.w $06E0, X
|
||||
AND.b #$01
|
||||
ORA.b #$06
|
||||
STA.w $0F50, X
|
||||
RTL
|
||||
|
||||
.boss_ids:
|
||||
db $53 ; armos
|
||||
db $54 ; lanmolas
|
||||
db $09 ; moldorm
|
||||
db $92 ; helma king
|
||||
db $8C ; arrghus
|
||||
db $8D ; arrghus puff
|
||||
db $88 ; mothula
|
||||
db $CE ; blind
|
||||
db $A2 ; khold
|
||||
db $A3 ; khold shell
|
||||
db $BD ; vitreous big eye
|
||||
db $BE ; vitreous small eye
|
||||
db $CB ; trinexx
|
||||
db $CC ; trinexx
|
||||
db $CD ; trinexx
|
||||
db $7A ; agahnim
|
||||
..end
|
||||
4
sram.asm
4
sram.asm
@@ -237,7 +237,9 @@ CompassCountDisplay: skip 2 ; Compass count display flags (bitfield)
|
||||
; High Byte: x c e d a s p m
|
||||
; x = Sewers | c = Hyrule Castle | e = Eastern Palace | d = Desert Palace
|
||||
; a = Castle Tower | s = Swamp Palace | p = PoD | m = Mire
|
||||
skip 10 ;
|
||||
BossSoulMissing: skip 2 ; bitfield for boss soul acquisition
|
||||
; 0 = has soul, 1 = soul missing
|
||||
skip 8 ;
|
||||
Aga2Duck: skip 1 ; Used in lieu of pyramid hole for checking if the duck should come
|
||||
; 0 = Haven't called post-Aga 2 bird | 1 = Have called post-Aga 2 bird
|
||||
NpcFlags: skip 2 ; l - c s t k z o (bitfield)
|
||||
|
||||
16
tables.asm
16
tables.asm
@@ -110,8 +110,8 @@ RupoorDeduction:
|
||||
dw $000A ; #$0A - Default (10 decimal)
|
||||
;--------------------------------------------------------------------------------
|
||||
org $B08038 ; PC 0x180038
|
||||
LampConeSewers:
|
||||
db $01 ; #$00 = Off - #$01 = On (default)
|
||||
LampCone:
|
||||
db $01 ; #$00 = Off - #$01 = On in Sewers (default) - #$10 = On Always - #$20 = No Dark Rooms
|
||||
;--------------------------------------------------------------------------------
|
||||
org $B08039 ; PC 0x180039
|
||||
ItemCounterHUD:
|
||||
@@ -420,7 +420,17 @@ db $01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
Bugfix_PodEG:
|
||||
db $01 ; #$00 = Original Behavior - #$01 = Randomizer Behavior (Default)
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x1800A5 - 0x1800AF (unused)
|
||||
org $B080A5 ; PC 0x1800A5
|
||||
MimicDash:
|
||||
db $00 ; #$00 = Original Behavior (default) - #$01 = Mimics move when link dashes
|
||||
CrystalSwitchBook:
|
||||
db $00 ; #$00 = Original Behavior (default) - #$01 = Book can flip crystal switch
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x1800A7 - 0x1800AE (unused)
|
||||
;--------------------------------------------------------------------------------
|
||||
org $B080AF ; PC 0x1800AF
|
||||
MultiworldJunkItemTimer:
|
||||
db $00 ; number of frames to show junk items in a multiworld (#$00 = no change)
|
||||
;--------------------------------------------------------------------------------
|
||||
org $B080B0 ; 0x1800B0-0x1800BF
|
||||
StaticDecryptionKey:
|
||||
|
||||
Reference in New Issue
Block a user