Merge branch 'master' into crystalsgoalganonrespawn
This commit is contained in:
@@ -25,8 +25,8 @@ db #$05 ; mark sram as 32k
|
||||
org $3FFFFF ; <- 1FFFFF
|
||||
db #$00 ; expand file to 2mb
|
||||
|
||||
org $1FFFF8 ; timestamp rom
|
||||
dl #$20170801
|
||||
org $1FFFF8 ; <- FFFF8 timestamp rom
|
||||
db #$20, #$17, #$08, #$11 ; year/month/day
|
||||
|
||||
;================================================================================
|
||||
|
||||
@@ -50,7 +50,7 @@ dl #$20170801
|
||||
!SRAM_SINK = "$7EF41E" ; <- change this
|
||||
!FRESH_FILE_MARKER = "$7EF4F0" ; zero if fresh file
|
||||
;$7EF41A[w] - Programmable Item #1
|
||||
;$7EF41C[w] - Programmable Item #3
|
||||
;$7EF41C[w] - Programmable Item #2
|
||||
;$7EF41E[w] - Programmable Item #3
|
||||
;$7EF420 - $7EF44F - Stat Tracking Bank 1
|
||||
;$7EF450 - $7EF45F - RNG Item (Single) Flags
|
||||
@@ -102,6 +102,7 @@ incsrc flute.asm
|
||||
incsrc dungeondrops.asm
|
||||
incsrc halfmagicbat.asm
|
||||
incsrc newitems.asm
|
||||
incsrc mantle.asm
|
||||
incsrc swordswap.asm
|
||||
incsrc stats.asm
|
||||
incsrc scratchpad.asm
|
||||
@@ -217,18 +218,18 @@ warnpc $AF8401
|
||||
;bank $3F reserved for internal debugging
|
||||
;$7F5700 - $7F57FF reserved for downstream use
|
||||
;================================================================================
|
||||
org $0080DC ; <- 0xDC - Bank00.asm:179 - Kill Music
|
||||
;org $0080DC ; <- 0xDC - Bank00.asm:179 - Kill Music
|
||||
;db #$A9, #$00, #$EA
|
||||
;LDA.b #$00 : NOP
|
||||
;================================================================================
|
||||
org $0AC53E ; <- 5453E - Bank0A.asm:1103 - (LDA $0AC51F, X) - i have no idea what this is for anymore
|
||||
;org $0AC53E ; <- 5453E - Bank0A.asm:1103 - (LDA $0AC51F, X) - i have no idea what this is for anymore
|
||||
;LDA.b #$7F
|
||||
;NOP #2
|
||||
;================================================================================
|
||||
;org $05DF8B ; <- 2DF8B - Bank05.asm : 2483
|
||||
;AND.w #$0100 ; allow Sprite_DrawMultiple to access lower half of sprite tiles
|
||||
;================================================================================
|
||||
;org $0DF8F1 ; this is required for the X-indicator in the HUD
|
||||
;org $0DF8F1 ; this is required for the X-indicator in the HUD except not anymore obviously
|
||||
;
|
||||
;;red pendant
|
||||
;db $2B, $31, $2C, $31, $3D, $31, $2E, $31
|
||||
@@ -377,6 +378,9 @@ Ancilla_SetOam_XY_Long:
|
||||
org $0985E2 ; (break on $0985E4)
|
||||
AddReceivedItem:
|
||||
|
||||
org $098BAD
|
||||
AddPendantOrCrystal:
|
||||
|
||||
org $0993DF
|
||||
AddDashTremor:
|
||||
|
||||
|
||||
BIN
c2807_v3.gfx
BIN
c2807_v3.gfx
Binary file not shown.
@@ -17,7 +17,7 @@ RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
DarkWorldFlagSet:
|
||||
PHA
|
||||
|
||||
STA $FFFFFF
|
||||
LDA !FORCE_PYRAMID : AND.b #$08 : BNE .pyramid
|
||||
|
||||
LDA Bugfix_PreAgaDWDungeonDeathToFakeDW : BEQ +
|
||||
@@ -46,13 +46,17 @@ RTL
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
SetDeathWorldChecked:
|
||||
PHA
|
||||
PHA : STA $FFFFFF
|
||||
LDA $1B : BEQ + ; skip this for indoors
|
||||
LDA $040C : CMP #$FF : BNE .done ; unless it's a cave
|
||||
+
|
||||
LDA $7EF3C5 : CMP.b #$03 : !BGE .done; thing we originally did - skip if agahnim 1 is dead
|
||||
|
||||
;<<<<<<< crystalsgoalganonrespawn
|
||||
LDA $1B : BNE + : LDA $A0 : BNE + : LDA GanonPyramidRespawn : BEQ + ; check if we died in ganon's room and pyramid respawn is enabled
|
||||
;=======
|
||||
; LDA $1B : BEQ + : LDA $A0 : BNE + ; check if we died in ganon's room
|
||||
;>>>>>>> master
|
||||
LDA !FORCE_PYRAMID : ORA.b #$08 : STA !FORCE_PYRAMID ; set pyramid flag
|
||||
BRL DarkWorldFlagSet_pyramid
|
||||
+
|
||||
|
||||
@@ -260,7 +260,8 @@ DialogEtherTablet:
|
||||
RTL
|
||||
+
|
||||
BIT $F4 : BVC - ; Show normal text if Y is not pressed
|
||||
LDA $7EF359 : CMP.b #$02 : !BGE .noText
|
||||
LDA $7EF359 : CMP.b #$FF : BEQ .yesText : CMP.b #$02 : !BGE .noText
|
||||
.yesText
|
||||
%LoadDialogAddress(EtherTabletText)
|
||||
PLA : JSL Sprite_ShowMessageUnconditional ; Text From MSPedestalText (tables.asm)
|
||||
RTL
|
||||
@@ -276,7 +277,8 @@ DialogBombosTablet:
|
||||
RTL
|
||||
+
|
||||
BIT $F4 : BVC - ; Show normal text if Y is not pressed
|
||||
LDA $7EF359 : CMP.b #$02 : !BGE .noText
|
||||
LDA $7EF359 : CMP.b #$FF : BEQ .yesText : CMP.b #$02 : !BGE .noText
|
||||
.yesText
|
||||
%LoadDialogAddress(BombosTabletText)
|
||||
PLA : JSL Sprite_ShowMessageUnconditional ; Text From MSPedestalText (tables.asm)
|
||||
RTL
|
||||
|
||||
26
hardmode.asm
26
hardmode.asm
@@ -16,30 +16,36 @@ CalculateSpikeFloorDamage:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
CalculateByrnaUsage:
|
||||
LDA $1B : BEQ +
|
||||
LDA $1B : BEQ ++
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
LDA $A0 ; these are all decimal because i got them that way
|
||||
CMP.w #279
|
||||
CMP.w #279 : BEQ + ; Spike Cave
|
||||
CMP.w #179 : BEQ + ; Room in Misery Mire
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
BNE +
|
||||
BRA ++
|
||||
+
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
PHX : TYX
|
||||
LDA.l ByrnaCaveCaneOfByrnaUsage, X : STA $00
|
||||
PLX
|
||||
+
|
||||
++
|
||||
LDA $7EF36E ; thing we wrote over
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
CalculateCapeUsage:
|
||||
LDA $1B : BEQ +
|
||||
LDA $1B : BEQ ++
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
LDA $A0 ; these are all decimal because i got them that way
|
||||
CMP.w #279
|
||||
CMP.w #279 : BEQ + ; Spike Cave
|
||||
CMP.w #179 : BEQ + ; Room in Misery Mire
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
BNE +
|
||||
PHX : TYX
|
||||
LDA.l ByrnaCaveCapeUsage, X : STA $4C
|
||||
PLX
|
||||
BRA ++
|
||||
+
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
PHX : TYX
|
||||
LDA.l ByrnaCaveCapeUsage, X : STA $4C ; set cape decrement timer
|
||||
PLX
|
||||
++
|
||||
LDA $7EF36E ; thing we wrote over
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
28
hooks.asm
28
hooks.asm
@@ -253,13 +253,13 @@ db #$80 ; BRA
|
||||
org $0DE81A ; <- 6E81A - equipment.asm : 1597 (STA $00)
|
||||
RTS
|
||||
org $0DE7B9 ; <- 6E7B9 - equipment.asm : 1548 (LDA.w #$16D0)
|
||||
LDA.w #$1610
|
||||
LDA.w #$1590
|
||||
org $0DE7CF ; <- 6E7CF - equipment.asm : 1554 (LDA.w #$16C8)
|
||||
LDA.w #$1608
|
||||
LDA.w #$1588
|
||||
org $0DE7E5 ; <- 6E7E5 - equipment.asm : 1560 (LDA.w #$16D8)
|
||||
LDA.w #$1618
|
||||
LDA.w #$1598
|
||||
org $0DECEB ; <- 6ECEB - equipment.asm : 1946 (LDA.w #$16E0)
|
||||
LDA.w #$1620
|
||||
LDA.w #$15A0
|
||||
;--------------------------------------------------------------------------------
|
||||
;org $0DE9D8 ; <- 6E9D8 - equipment.asm : 1635 (LDA $E860, X : STA $12EA, X)
|
||||
;BRA DrawProgressIcons_initPendantDiagram_notext
|
||||
@@ -713,9 +713,14 @@ JSL.l ItemCheck_BombosTablet
|
||||
org $05F285 ; <- 2F285
|
||||
JSL.l ItemCheck_EtherTablet
|
||||
;--------------------------------------------------------------------------------
|
||||
org $098BCC ; <- 48BCC - ancilla_init.asm : 1679 (LDA AddReceiveItem.item_graphics_indices, Y : STA $72)
|
||||
;JSL.l SetTabletItem
|
||||
JSL SpawnTabletItem : PLX : PLB : RTL
|
||||
;org $098BCC ; <- 48BCC - ancilla_init.asm : 1679 (LDA AddReceiveItem.item_graphics_indices, Y : STA $72)
|
||||
;;JSL.l SetTabletItem
|
||||
;JSL SpawnTabletItem : PLX : PLB : RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
org $07859F ; <- 3859F - Bank07.asm : 965 (JSL AddPendantOrCrystal)
|
||||
JSL SpawnTabletItem
|
||||
org $07862A ; <- 3862A - Bank07.asm : 1064 (JSL AddPendantOrCrystal)
|
||||
JSL SpawnTabletItem
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;================================================================================
|
||||
@@ -896,9 +901,9 @@ LDX.w #HUD_TileMap
|
||||
org $0DFA9C ; <- 6FA9C - headsup_display.asm : 629 (MVN $0D, $7E ; $Transfer 0x014A bytes from $6FE77 -> $7EC700)
|
||||
MVN $207E
|
||||
;--------------------------------------------------------------------------------
|
||||
;org $0DE48E ; <- 6E48E - equipment.asm : 1233 (LDA.w #$11CE : STA $00) - HOOK HERE TO DRAW ON THE ITEM SCREEN
|
||||
;JSL.l DrawHUDSilverArrows
|
||||
;NOP
|
||||
org $0DE48E ; <- 6E48E - equipment.asm : 1233 (LDA.w #$11CE : STA $00) - HOOK HERE TO DRAW ON THE ITEM SCREEN
|
||||
JSL.l DrawHUDDungeonItems
|
||||
NOP
|
||||
;--------------------------------------------------------------------------------
|
||||
org $0DFB1F ; 6FB1F - headsup_display.asm : 681 (LDA $7EF340 : BEQ .hastNoBow)
|
||||
JSL.l CheckHUDSilverArrows
|
||||
@@ -1748,6 +1753,9 @@ JSL.l CheckForZelda
|
||||
org $1AFC55 ; <- D7C55 - sprite_movable_mantle.asm:34 (LDA $7EF34A : BEQ .return)
|
||||
NOP #6 ; remove check
|
||||
;--------------------------------------------------------------------------------
|
||||
org $068841 ; <- 30841 - sprite_prep.asm:269 (LDA $0D00, X : ADD.b #$03 : STA $0D00, X)
|
||||
JSL.l Mantle_CorrectPosition : NOP #2
|
||||
;--------------------------------------------------------------------------------
|
||||
org $0DFA53 ; <- 6FA53 - hud check for lantern
|
||||
JSL.l LampCheck
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -242,7 +242,7 @@ AddInventory:
|
||||
CMP.w #271 : BNE + : BRL .shop : + ; villiage of outcasts shop, lumberjack shop, lake hylia shop, dark world magic shop
|
||||
CMP.w #272 : BNE + : BRL .shop : + ; red shield shop
|
||||
CMP.w #284 : BNE + : BRL .shop : + ; bomb shop
|
||||
;CMP.w #265 : BNE + : BRL .shop : + ; potion shop - commented this out because it's easier to just block potion refills
|
||||
;CMP.w #265 : BNE + : BRL .shop : + ; potion shop - commented this out because it's easier to just block potion refills because this one interferes with the powder item being counted
|
||||
;CMP.w #271 : BNE + : BRL .shop : + ; lake hylia shop
|
||||
CMP.w #287 : BNE + : BRL .shop : + ; kakariko shop
|
||||
CMP.w #255 : BNE + : BRL .shop : + ; light world death mountain shop
|
||||
@@ -257,12 +257,12 @@ AddInventory:
|
||||
LDA $1B : BNE + : BRL .fullItemCounts : +
|
||||
; ==BEGIN INDOOR-ONLY SECTION
|
||||
|
||||
REP #$20 ; Set 16-bit Accumulator
|
||||
LDA $A0 ; load room ID
|
||||
CMP.w #$0010 : BNE + ; Ganon Fall Room
|
||||
;REP #$20 ; Set 16-bit Accumulator
|
||||
;LDA $A0 ; load room ID
|
||||
;CMP.w #$0010 : BNE + ; Ganon Fall Room - I think this got taken out
|
||||
;!SHAME_CHEST = "$7EF416" ; ---s ----
|
||||
LDA !SHAME_CHEST : ORA.w #$0010 : STA !SHAME_CHEST
|
||||
+
|
||||
;LDA !SHAME_CHEST : ORA.w #$0010 : STA !SHAME_CHEST
|
||||
;+
|
||||
SEP #$20 ; Set 8-bit Accumulator
|
||||
|
||||
LDA $040C ; get dungeon id
|
||||
@@ -738,6 +738,7 @@ RTL
|
||||
; GetWitchLootOAMTableIndex
|
||||
; in: A - Loot ID
|
||||
; out: A - Loot OAM Table Index
|
||||
; check if this is even still referenced anywhere
|
||||
;--------------------------------------------------------------------------------
|
||||
GetWitchLootOAMTableIndex:
|
||||
PHX
|
||||
|
||||
12
mantle.asm
Normal file
12
mantle.asm
Normal file
@@ -0,0 +1,12 @@
|
||||
;================================================================================
|
||||
; Mantle Object Changes
|
||||
;--------------------------------------------------------------------------------
|
||||
Mantle_CorrectPosition:
|
||||
LDA $7EF3C6 : AND.b #$04 : BEQ +
|
||||
LDA.b #$0A : STA $0D10, X ; just spawn it off to the side where we know it should be
|
||||
LDA.b #$03 : STA $0D30, X
|
||||
LDA.b #$90 : STA $0ED0, X
|
||||
+
|
||||
LDA $0D00, X : !ADD.b #$03 ; thing we did originally
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
12
newitems.asm
12
newitems.asm
@@ -220,7 +220,7 @@ AddReceivedItemExpandedGetItem:
|
||||
+ CMP.b #$63 : BNE + ; RNG Pool Item (Multi)
|
||||
BRL .done
|
||||
+ CMP.b #$6A : BNE + ; Goal Collectable (Single/Triforce)
|
||||
JSL.l StatsFinalPrep
|
||||
JSL.l ActivateGoal
|
||||
BRL .done
|
||||
+ CMP.b #$6B : BNE + ; Goal Collectable (Multi/Power Star)
|
||||
BRA .multi_collect
|
||||
@@ -228,7 +228,7 @@ AddReceivedItemExpandedGetItem:
|
||||
.multi_collect
|
||||
LDA GoalItemRequirement : BEQ ++
|
||||
LDA !GOAL_COUNTER : INC : STA !GOAL_COUNTER
|
||||
CMP GoalItemRequirement : !BLT ++ : JSL.l StatsFinalPrep : ++
|
||||
CMP GoalItemRequirement : !BLT ++ : JSL.l ActivateGoal : ++
|
||||
BRL .done
|
||||
+ CMP.b #$70 : !BLT + : CMP.b #$80 : !BGE + ; Free Map
|
||||
AND #$0F : CMP #$08 : !BGE ++
|
||||
@@ -237,6 +237,7 @@ AddReceivedItemExpandedGetItem:
|
||||
++
|
||||
!SUB #$08
|
||||
%ValueShift()
|
||||
BIT.b #$C0 : BEQ +++ : LDA.b #$C0 : +++ ; Make Hyrule Castle / Sewers Count for Both
|
||||
ORA $7EF369 : STA $7EF369 ; Map 2
|
||||
BRL .done
|
||||
+ CMP.b #$80 : !BLT + : CMP.b #$90 : !BGE + ; Free Compass
|
||||
@@ -246,6 +247,7 @@ AddReceivedItemExpandedGetItem:
|
||||
++
|
||||
!SUB #$08
|
||||
%ValueShift()
|
||||
BIT.b #$C0 : BEQ +++ : LDA.b #$C0 : +++ ; Make Hyrule Castle / Sewers Count for Both
|
||||
ORA $7EF365 : STA $7EF365 ; Compass 2
|
||||
BRL .done
|
||||
+ CMP.b #$90 : !BLT + : CMP.b #$A0 : !BGE + ; Free Big Key
|
||||
@@ -255,6 +257,7 @@ AddReceivedItemExpandedGetItem:
|
||||
++
|
||||
!SUB #$08
|
||||
%ValueShift()
|
||||
BIT.b #$C0 : BEQ +++ : LDA.b #$C0 : +++ ; Make Hyrule Castle / Sewers Count for Both
|
||||
ORA $7EF367 : STA $7EF367 ; Big Key 2
|
||||
BRL .done
|
||||
+ CMP.b #$A0 : !BLT + : CMP.b #$B0 : !BGE + ; Free Small Key
|
||||
@@ -801,4 +804,9 @@ CountBottles:
|
||||
++
|
||||
TXA
|
||||
RTS
|
||||
;--------------------------------------------------------------------------------
|
||||
ActivateGoal:
|
||||
STZ $11
|
||||
STZ $B0
|
||||
JMP.l StatsFinalPrep
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -139,6 +139,178 @@ ShowDungeonItems:
|
||||
BEQ + : LDA.w #$0000 : RTL : + ; if set, send the zero onwards
|
||||
LDA $040C : AND.w #$00FF : CMP.w #$00FF ; original logic
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
DrawHUDDungeonItems:
|
||||
; left side
|
||||
;LDA.w #$2871 : STA $1604 ; dungeon row
|
||||
LDA.w #$2810 : STA $1644 ; small keys
|
||||
LDA.w #$2811 : STA $1684 ; big key
|
||||
LDA.w #$2821 : STA $16C4 ; map
|
||||
LDA.w #$2C20 : STA $1704 ; compass
|
||||
|
||||
; dungeon names
|
||||
LDA.w #$2D50 : STA $1606 ; sewers
|
||||
LDA.w #$2D51 : STA $1608 ; Eastern
|
||||
LDA.w #$2D52 : STA $160A ; Desert
|
||||
LDA.w #$2D53 : STA $160C ; Hera
|
||||
LDA.w #$2D54 : STA $160E ; Agahnims Tower
|
||||
|
||||
LDA.w #$2D55 : STA $1612 ; PoD
|
||||
LDA.w #$2D56 : STA $1614 ; Swamp
|
||||
LDA.w #$2D57 : STA $1616 ; Skull Woods
|
||||
LDA.w #$2D58 : STA $1618 ; Thieves Town
|
||||
LDA.w #$2D59 : STA $161A ; Ice
|
||||
LDA.w #$2D5A : STA $161C ; Mire
|
||||
LDA.w #$2D5B : STA $161E ; Turtle Rock
|
||||
|
||||
LDA.w #$2D5C : STA $1622 ; Ganon's Tower
|
||||
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
; Small Keys
|
||||
LDA.b #$16 : !ADD $7EF37C : STA $1646 : LDA.b #$28 : ADC #$00 : sta $1646+1 ; sewers
|
||||
LDA.b #$16 : !ADD $7EF37E : STA $1648 : LDA.b #$28 : ADC #$00 : sta $1648+1 ; Eastern
|
||||
LDA.b #$16 : !ADD $7EF37F : STA $164A : LDA.b #$28 : ADC #$00 : sta $164A+1 ; Desert
|
||||
LDA.b #$16 : !ADD $7EF386 : STA $164C : LDA.b #$28 : ADC #$00 : sta $164C+1 ; Hera
|
||||
LDA.b #$16 : !ADD $7EF380 : STA $164E : LDA.b #$28 : ADC #$00 : sta $164E+1 ; Agahnims Tower
|
||||
|
||||
LDA.b #$16 : !ADD $7EF382 : STA $1652 : LDA.b #$28 : ADC #$00 : sta $1652+1 ; PoD
|
||||
LDA.b #$16 : !ADD $7EF381 : STA $1654 : LDA.b #$28 : ADC #$00 : sta $1654+1 ; Swamp
|
||||
LDA.b #$16 : !ADD $7EF384 : STA $1656 : LDA.b #$28 : ADC #$00 : sta $1656+1 ; Skull Woods
|
||||
LDA.b #$16 : !ADD $7EF387 : STA $1658 : LDA.b #$28 : ADC #$00 : sta $1658+1 ; Thieves Town
|
||||
LDA.b #$16 : !ADD $7EF385 : STA $165A : LDA.b #$28 : ADC #$00 : sta $165A+1 ; Ice
|
||||
LDA.b #$16 : !ADD $7EF383 : STA $165C : LDA.b #$28 : ADC #$00 : sta $165C+1 ; Mire
|
||||
LDA.b #$16 : !ADD $7EF388 : STA $165E : LDA.b #$28 : ADC #$00 : sta $165E+1 ; Turtle Rock
|
||||
|
||||
LDA.b #$16 : !ADD $7EF389 : STA $1662 : LDA.b #$28 : ADC #$00 : sta $1662+1 ; Ganon's Tower
|
||||
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
|
||||
; Big Keys
|
||||
LDA $7EF367 : AND.w #$0080 : BEQ + ; sewers
|
||||
LDA.w #$2826 : STA $1686
|
||||
+
|
||||
LDA $7EF367 : AND.w #$0020 : BEQ + ; Eastern
|
||||
LDA.w #$2826 : STA $1688
|
||||
+
|
||||
LDA $7EF367 : AND.w #$0010 : BEQ + ; Desert
|
||||
LDA.w #$2826 : STA $168A
|
||||
+
|
||||
LDA $7EF366 : AND.w #$0020 : BEQ + ; Hera
|
||||
LDA.w #$2826 : STA $168C
|
||||
+
|
||||
LDA $7EF367 : AND.w #$0008 : BEQ + ; Agahnims Tower
|
||||
LDA.w #$2826 : STA $168E
|
||||
+
|
||||
LDA $7EF367 : AND.w #$0002 : BEQ + ; PoD
|
||||
LDA.w #$2826 : STA $1692
|
||||
+
|
||||
LDA $7EF367 : AND.w #$0004 : BEQ + ; Swamp
|
||||
LDA.w #$2826 : STA $1694
|
||||
+
|
||||
LDA $7EF366 : AND.w #$0080 : BEQ + ; Skull Woods
|
||||
LDA.w #$2826 : STA $1696
|
||||
+
|
||||
LDA $7EF366 : AND.w #$0010 : BEQ + ; Thieves Town
|
||||
LDA.w #$2826 : STA $1698
|
||||
+
|
||||
LDA $7EF366 : AND.w #$0040 : BEQ + ; Ice
|
||||
LDA.w #$2826 : STA $169A
|
||||
+
|
||||
LDA $7EF367 : AND.w #$0001 : BEQ + ; Mire
|
||||
LDA.w #$2826 : STA $169C
|
||||
+
|
||||
LDA $7EF366 : AND.w #$0008 : BEQ + ; Turtle Rock
|
||||
LDA.w #$2826 : STA $169E
|
||||
+
|
||||
LDA $7EF366 : AND.w #$0004 : BEQ + ; Ganon's Tower
|
||||
LDA.w #$2826 : STA $16A2
|
||||
+
|
||||
|
||||
; Maps
|
||||
LDA $7EF369 : AND.w #$0080 : BEQ + ; sewers
|
||||
LDA.w #$2826 : STA $16C6
|
||||
+
|
||||
LDA $7EF369 : AND.w #$0020 : BEQ + ; Eastern
|
||||
LDA.w #$2826 : STA $16C8
|
||||
+
|
||||
LDA $7EF369 : AND.w #$0010 : BEQ + ; Desert
|
||||
LDA.w #$2826 : STA $16CA
|
||||
+
|
||||
LDA $7EF368 : AND.w #$0020 : BEQ + ; Hera
|
||||
LDA.w #$2826 : STA $16CC
|
||||
+
|
||||
LDA $7EF369 : AND.w #$0008 : BEQ + ; Agahnims Tower
|
||||
LDA.w #$2826 : STA $16CE
|
||||
+
|
||||
LDA $7EF369 : AND.w #$0002 : BEQ + ; PoD
|
||||
LDA.w #$2826 : STA $16D2
|
||||
+
|
||||
LDA $7EF369 : AND.w #$0004 : BEQ + ; Swamp
|
||||
LDA.w #$2826 : STA $16D4
|
||||
+
|
||||
LDA $7EF368 : AND.w #$0080 : BEQ + ; Skull Woods
|
||||
LDA.w #$2826 : STA $16D6
|
||||
+
|
||||
LDA $7EF368 : AND.w #$0010 : BEQ + ; Thieves Town
|
||||
LDA.w #$2826 : STA $16D8
|
||||
+
|
||||
LDA $7EF368 : AND.w #$0040 : BEQ + ; Ice
|
||||
LDA.w #$2826 : STA $16DA
|
||||
+
|
||||
LDA $7EF369 : AND.w #$0001 : BEQ + ; Mire
|
||||
LDA.w #$2826 : STA $16DC
|
||||
+
|
||||
LDA $7EF368 : AND.w #$0008 : BEQ + ; Turtle Rock
|
||||
LDA.w #$2826 : STA $16DE
|
||||
+
|
||||
LDA $7EF368 : AND.w #$0004 : BEQ + ; Ganon's Tower
|
||||
LDA.w #$2826 : STA $16E2
|
||||
+
|
||||
|
||||
; Compasses
|
||||
LDA $7EF365 : AND.w #$0080 : BEQ + ; sewers
|
||||
LDA.w #$2C26 : STA $1706
|
||||
+
|
||||
LDA $7EF365 : AND.w #$0020 : BEQ + ; Eastern
|
||||
LDA.w #$2C26 : STA $1708
|
||||
+
|
||||
LDA $7EF365 : AND.w #$0010 : BEQ + ; Desert
|
||||
LDA.w #$2C26 : STA $170A
|
||||
+
|
||||
LDA $7EF364 : AND.w #$0020 : BEQ + ; Hera
|
||||
LDA.w #$2C26 : STA $170C
|
||||
+
|
||||
LDA $7EF365 : AND.w #$0008 : BEQ + ; Agahnims Tower
|
||||
LDA.w #$2C26 : STA $170E
|
||||
+
|
||||
LDA $7EF365 : AND.w #$0002 : BEQ + ; PoD
|
||||
LDA.w #$2C26 : STA $1712
|
||||
+
|
||||
LDA $7EF365 : AND.w #$0004 : BEQ + ; Swamp
|
||||
LDA.w #$2C26 : STA $1714
|
||||
+
|
||||
LDA $7EF364 : AND.w #$0080 : BEQ + ; Skull Woods
|
||||
LDA.w #$2C26 : STA $1716
|
||||
+
|
||||
LDA $7EF364 : AND.w #$0010 : BEQ + ; Thieves Town
|
||||
LDA.w #$2C26 : STA $1718
|
||||
+
|
||||
LDA $7EF364 : AND.w #$0040 : BEQ + ; Ice
|
||||
LDA.w #$2C26 : STA $171A
|
||||
+
|
||||
LDA $7EF365 : AND.w #$0001 : BEQ + ; Mire
|
||||
LDA.w #$2C26 : STA $171C
|
||||
+
|
||||
LDA $7EF364 : AND.w #$0008 : BEQ + ; Turtle Rock
|
||||
LDA.w #$2C26 : STA $171E
|
||||
+
|
||||
LDA $7EF364 : AND.w #$0004 : BEQ + ; Ganon's Tower
|
||||
LDA.w #$2C26 : STA $1722
|
||||
+
|
||||
|
||||
LDA.w #$11CE : STA $00 ; thing we wrote over
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
;================================================================================
|
||||
DrawPendantCrystalDiagram:
|
||||
PHP : PHB : PHK : PLB
|
||||
|
||||
@@ -21,6 +21,7 @@ RigChestRNG:
|
||||
JSL.l DecrementItemCounter
|
||||
RTL
|
||||
.forceHeart
|
||||
LDA #$33 : STA $C8 ; assure the correct state if player talked to shopkeeper
|
||||
LDA $0403 : AND.b #$40 : BNE .notHeart
|
||||
LDA #$07 ; give prize item
|
||||
RTL
|
||||
|
||||
28
stats.asm
28
stats.asm
@@ -115,7 +115,7 @@
|
||||
; s - swordless bosses
|
||||
; c - capacity upgrades
|
||||
;--------------------------------------------------------------------------------
|
||||
; $7EF452 - unused
|
||||
; $7EF453 - unused
|
||||
;--------------------------------------------------------------------------------
|
||||
; $7EF454w[2] - challenge timer (low)
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -356,19 +356,19 @@ StatsFinalPrep:
|
||||
|
||||
;LDA $FFFFFF
|
||||
;JSL.l Clock_IsSupported
|
||||
BRA +
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
|
||||
LDA $00 : PHA
|
||||
LDA $02 : PHA
|
||||
|
||||
JSL.l Clock_QuickStamp
|
||||
LDA $00 : STA !RTA_END
|
||||
LDA $02 : STA !RTA_END+2
|
||||
|
||||
PLA : STA $02
|
||||
PLA : STA $00
|
||||
+
|
||||
;BRA +
|
||||
; REP #$20 ; set 16-bit accumulator
|
||||
;
|
||||
; LDA $00 : PHA
|
||||
; LDA $02 : PHA
|
||||
;
|
||||
; JSL.l Clock_QuickStamp
|
||||
; LDA $00 : STA !RTA_END
|
||||
; LDA $02 : STA !RTA_END+2
|
||||
;
|
||||
; PLA : STA $02
|
||||
; PLA : STA $00
|
||||
;+
|
||||
|
||||
.done
|
||||
PLP : PLX : PLA
|
||||
|
||||
@@ -10,7 +10,7 @@ HeartPiece_Lumberjack_Tree:
|
||||
HeartPiece_Spectacle_Cave:
|
||||
db #$17
|
||||
HeartPiece_Circle_Bushes:
|
||||
db #$61
|
||||
db #$3D
|
||||
HeartPiece_Graveyard_Warp:
|
||||
db #$17
|
||||
HeartPiece_Mire_Warp:
|
||||
@@ -646,7 +646,7 @@ HeartContainer_Mothula:
|
||||
HeartContainer_Blind:
|
||||
db #$3E
|
||||
HeartContainer_Kholdstare:
|
||||
db #$3E
|
||||
db #$6A
|
||||
HeartContainer_Vitreous:
|
||||
db #$3E
|
||||
HeartContainer_Trinexx:
|
||||
@@ -683,6 +683,7 @@ db #$01 ; #00 = Do not respawn on Pyramid after Death - #$01 = Respawn on Pyrami
|
||||
org $30816A ; PC 0x18016A
|
||||
FreeItemText:
|
||||
db #$01 ; #00 = Off - #$01 = On (default)
|
||||
;================================================================================
|
||||
org $30816B ; PC 0x18016B
|
||||
ByrnaCaveCaneOfByrnaUsage:
|
||||
db #$04, #$02, #$01 ; normal, 1/2, 1/4 magic
|
||||
|
||||
119
utilities.asm
119
utilities.asm
@@ -8,6 +8,22 @@
|
||||
; out: A - Sprite GFX ID
|
||||
;--------------------------------------------------------------------------------
|
||||
GetSpriteID:
|
||||
|
||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
||||
CMP.b #$2C : BEQ .bottle ; Green Potion w/bottle
|
||||
CMP.b #$2D : BEQ .bottle ; Blue Potion w/bottle
|
||||
CMP.b #$3C : BEQ .bottle ; Bee w/bottle
|
||||
CMP.b #$3D : BEQ .bottle ; Fairy w/bottle
|
||||
CMP.b #$48 : BEQ .bottle ; Gold Bee w/bottle
|
||||
BRA .notBottle
|
||||
.bottle
|
||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||
PLA : LDA.l BottleLimitReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
+
|
||||
PLA : .notBottle
|
||||
PHX
|
||||
PHB : PHK : PLB
|
||||
;--------
|
||||
@@ -20,19 +36,37 @@ RTL
|
||||
JSL.l GetRNGItemSingle : JMP GetSpriteID
|
||||
++ CMP.b #$FB : BNE ++ ; RNG Item (Multi)
|
||||
JSL.l GetRNGItemMulti : JMP GetSpriteID
|
||||
++ CMP.b #$FD : BNE ++ ; Progressive Armor
|
||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||
LDA.l ProgressiveArmorReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
+
|
||||
LDA.b #$04 : RTL
|
||||
++ CMP.b #$FE : BNE ++ ; Progressive Sword
|
||||
LDA $7EF359 : BNE + ; No Sword
|
||||
LDA $7EF359
|
||||
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||
LDA.l ProgressiveSwordReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
+ : CMP.b #$00 : BNE + ; No Sword
|
||||
LDA.b #$43 : RTL
|
||||
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
||||
LDA.b #$44 : RTL
|
||||
+ : CMP.b #$02 : BNE + ; Master Sword
|
||||
LDA.b #$45 : RTL
|
||||
+ ; Everything Else
|
||||
+ ; CMP.b #$03 : BNE + ; Tempered Sword
|
||||
LDA.b #$46 : RTL
|
||||
+
|
||||
++ : CMP.b #$FF : BNE ++ ; Progressive Shield
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + ; No Shield
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||
LDA.l ProgressiveShieldReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
+ : CMP.b #$00 : BNE + ; No Shield
|
||||
LDA.b #$2D : RTL
|
||||
+ : CMP.b #$40 : BNE + ; Fighter Shield
|
||||
+ : CMP.b #$01 : BNE + ; Fighter Shield
|
||||
LDA.b #$20 : RTL
|
||||
+ ; Everything Else
|
||||
LDA.b #$2E : RTL
|
||||
@@ -69,7 +103,7 @@ RTL
|
||||
db $FE, $FF ; Progressive Sword & Shield
|
||||
|
||||
;6x
|
||||
db $04, $0D ; Progressive Armor & Gloves
|
||||
db $FD, $0D ; Progressive Armor & Gloves
|
||||
db $FA, $FB ; RNG Single & Multi
|
||||
db $FF, $FF, $FF, $FF, $FF, $FF ; Unused
|
||||
db $49, $4A, $49 ; Goal Item Single, Multi & Alt Multi
|
||||
@@ -95,6 +129,22 @@ RTL
|
||||
; out: A - Palette
|
||||
;--------------------------------------------------------------------------------
|
||||
GetSpritePalette:
|
||||
|
||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
||||
CMP.b #$2C : BEQ .bottle ; Green Potion w/bottle
|
||||
CMP.b #$2D : BEQ .bottle ; Blue Potion w/bottle
|
||||
CMP.b #$3C : BEQ .bottle ; Bee w/bottle
|
||||
CMP.b #$3D : BEQ .bottle ; Fairy w/bottle
|
||||
CMP.b #$48 : BEQ .bottle ; Gold Bee w/bottle
|
||||
BRA .notBottle
|
||||
.bottle
|
||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||
PLA : LDA.l BottleLimitReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
+
|
||||
PLA : .notBottle
|
||||
PHX
|
||||
PHB : PHK : PLB
|
||||
;--------
|
||||
@@ -104,7 +154,12 @@ GetSpritePalette:
|
||||
RTL
|
||||
.specialHandling
|
||||
CMP.b #$FD : BNE ++ ; Progressive Sword
|
||||
LDA $7EF359 : BNE + ; No Sword
|
||||
LDA $7EF359
|
||||
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||
LDA.l ProgressiveSwordReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
+ : CMP.b #$00 : BNE + ; No Sword
|
||||
LDA.b #$04 : RTL
|
||||
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
||||
LDA.b #$04 : RTL
|
||||
@@ -113,14 +168,23 @@ RTL
|
||||
+ ; Everything Else
|
||||
LDA.b #$08 : RTL
|
||||
++ : CMP.b #$FE : BNE ++ ; Progressive Shield
|
||||
LDA $7EF35A : BNE + ; No Shield
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||
LDA.l ProgressiveShieldReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
+ : CMP.b #$00 : BNE + ; No Shield
|
||||
LDA.b #$04 : RTL
|
||||
+ : CMP.b #$01 : BNE + ; Fighter Shield
|
||||
LDA.b #$02 : RTL
|
||||
+ ; Everything Else
|
||||
LDA.b #$08 : RTL
|
||||
++ : CMP.b #$FF : BNE ++ ; Progressive Armor
|
||||
LDA $7EF35B : BNE + ; Green Tunic
|
||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||
LDA.l ProgressiveArmorReplacement
|
||||
JSL.l GetSpritePalette
|
||||
RTL
|
||||
+ : CMP.b #$00 : BNE + ; Green Tunic
|
||||
LDA.b #$04 : RTL
|
||||
+ ; Everything Else
|
||||
LDA.b #$02 : RTL
|
||||
@@ -184,9 +248,42 @@ IsNarrowSprite:
|
||||
PHB : PHK : PLB
|
||||
|
||||
;--------
|
||||
CMP.b #$5F : BNE ++ ; Special Handler for Progressive Shield
|
||||
LDA $7EF35A : BNE + : SEC : BRA .done : +; No Shield
|
||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
||||
CMP.b #$2C : BEQ .bottle ; Green Potion w/bottle
|
||||
CMP.b #$2D : BEQ .bottle ; Blue Potion w/bottle
|
||||
CMP.b #$3C : BEQ .bottle ; Bee w/bottle
|
||||
CMP.b #$3D : BEQ .bottle ; Fairy w/bottle
|
||||
CMP.b #$48 : BEQ .bottle ; Gold Bee w/bottle
|
||||
BRA .notBottle
|
||||
.bottle
|
||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||
LDA.l BottleLimitReplacement
|
||||
JSL.l IsNarrowSprite
|
||||
BRL .done
|
||||
+ : BRA .continue
|
||||
.notBottle
|
||||
CMP.b #$5E : BNE ++ ; Progressive Sword
|
||||
LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||
LDA.l ProgressiveSwordReplacement
|
||||
JSL.l IsNarrowSprite
|
||||
BRA .done
|
||||
+ : BRA .continue
|
||||
++ : CMP.b #$5F : BNE ++ ; Progressive Shield
|
||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + : SEC : BRA .done ; No Shield
|
||||
LSR #6 : CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||
LDA.l ProgressiveShieldReplacement
|
||||
JSL.l IsNarrowSprite
|
||||
BRA .done
|
||||
+
|
||||
;LDA $7EF35A : BNE + : SEC : BRA .done : +; No Shield
|
||||
BRA .false ; Everything Else
|
||||
++ CMP.b #$60 : BNE ++ ; Progressive Armor
|
||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||
LDA.l ProgressiveArmorReplacement
|
||||
JSL.l IsNarrowSprite
|
||||
BRA .done
|
||||
+
|
||||
++ CMP.b #$62 : BNE ++ ; RNG Item (Single)
|
||||
JSL.l GetRNGItemSingle : BRA .continue
|
||||
++ CMP.b #$63 : BNE ++ ; RNG Item (Multi)
|
||||
@@ -282,7 +379,7 @@ RTS
|
||||
; in: A - Loot ID
|
||||
; out: A - OAM Slots Taken
|
||||
;--------------------------------------------------------------------------------
|
||||
; This wastes two OAM slots if you don't want a shadow - fix later
|
||||
; This wastes two OAM slots if you don't want a shadow - fix later - I wrote "fix later" over a year ago and it's still not fixed (Aug 6, 2017)
|
||||
;-------------------------------------------------------------------------------- 2084B8
|
||||
!SPRITE_OAM = "$7EC025"
|
||||
!SKIP_EOR = "$7F5008"
|
||||
|
||||
Reference in New Issue
Block a user