let's dev 5/27/2017

free world maps
medallions for swordless
hooks for curtains for swordless
This commit is contained in:
Karkat
2017-05-27 00:40:53 -04:00
parent aeb329d28e
commit 6462d1f4b9
8 changed files with 90 additions and 41 deletions

View File

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

View File

@@ -44,6 +44,10 @@ OnNewFile:
LDA.l StartingTime+2 : STA $7EF454+2
SEP #$20 ; set 8-bit accumulator
;LDA #$FF : STA !RNG_ITEM_LOCK_IN ; reset rng item lock-in
LDA.l SwordlessMode : BEQ +
;LDA.b #$FF : STA $7EF2XX ; open aga tower curtain
;LDA.b #$FF : STA $7EF2XX ; open skull woods curtain
+
RTL
;--------------------------------------------------------------------------------
OnLinkDamaged:

View File

@@ -657,6 +657,19 @@ NOP
LoadNarrowObjectReturn:
;--------------------------------------------------------------------------------
;================================================================================
; Swordless Mode
;--------------------------------------------------------------------------------
org $07A49F ; <- 3A49F - Bank07.asm:5903 (LDA $7EF359 : INC A : AND.b #$FE : BEQ .cant_cast_play_sound) - Ether
JSL.l CheckMedallionSword
;--------------------------------------------------------------------------------
org $07A574 ; <- 3A574 - Bank07.asm:6025 (LDA $7EF359 : INC A : AND.b #$FE : BEQ BRANCH_BETA) - Bombos
JSL.l CheckMedallionSword
;--------------------------------------------------------------------------------
org $07A656 ; <- 3A656 - Bank07.asm:6133 (LDA $7EF359 : INC A : AND.b #$FE : BEQ BRANCH_BETA) - Quake
JSL.l CheckMedallionSword
;--------------------------------------------------------------------------------
;================================================================================
; Medallion Tablets
;--------------------------------------------------------------------------------

View File

@@ -179,7 +179,6 @@ FullInventoryExternal:
!SHAME_CHEST = "$7EF416" ; ---s ----
AddInventory:
PHA : PHX : PHP
CPY.b #$0C : BNE + ; Blue Boomerang
LDA !INVENTORY_SWAP : ORA #$80 : STA !INVENTORY_SWAP
BRL .incrementCounts

View File

@@ -260,6 +260,9 @@ AddReceivedItemExpandedGetItem:
+ CMP.b #$A0 : !BLT + : CMP.b #$B0 : !BGE + ; Free Small Key
AND #$0F : TAX
LDA $7EF37C, X : INC : STA $7EF37C, X ; Increment Key Count
TXA : ASL : CMP $040C : BNE ++
LDA $7EF36F : INC : STA $7EF36F
++
BRL .done
+
.done

View File

@@ -28,18 +28,37 @@ GetCrystalNumber:
PLX
RTL
;================================================================================
!INVENTORY_MAP = "$7EF368"
OverworldMap_CheckObject:
LDA $FFFFFF
PHX
LDA $FFFFFF
LDA $7EF3C7 : CMP.b #$03 : BNE +
;LW Map
LDA.l MapMode : BEQ +++
LDA.l !INVENTORY_MAP : AND.b #$01 : BNE +++
PHX
LDA.l .lw_map_offsets, X : TAX ; put map offset into X
LDA.l !INVENTORY_MAP, X
PLX
AND.l .lw_map_masks, X : BNE +++
BRL .fail
+++
LDA.l .lw_offsets, X
BPL +++ : CLC : BRA .done : +++
BPL +++ : CLC : BRA .done : +++ ; don't display master sword
TAX : BRA ++
+ : CMP.b #$07 : BNE .fail
;DW Map
LDA.l .dw_offsets, X : TAX
BRA ++
LDA.l MapMode : BEQ +++
LDA.l !INVENTORY_MAP : AND.b #$02 : BNE +++
PHX
LDA.l .dw_map_offsets, X : TAX ; put map offset into X
LDA.l !INVENTORY_MAP, X
PLX
AND.l .dw_map_masks, X : BNE +++
BRL .fail
+++
LDA.l .dw_offsets, X
TAX : BRA ++
SEC
PLX
RTL
@@ -64,6 +83,14 @@ RTL
db $02, $0A, $03, $FF
.dw_offsets
db $06, $08, $0C, $0B, $07, $09, $05
.lw_map_offsets
db $01, $01, $00
.dw_map_offsets
db $01, $01, $00, $00, $00, $01, $00
.lw_map_masks
db $20, $10, $20, $00
.dw_map_masks
db $02, $04, $80, $10, $40, $01, $04
;================================================================================
SetLWDWMap:
PHP

View File

@@ -42,3 +42,30 @@ GetSmithSword:
JSL ItemSet_SmithSword
JMP.l Smithy_AlreadyGotSword
;================================================================================
CheckMedallionSword:
;LDA $FFFFFF
PHB : PHX : PHY
LDA.l SwordlessMode : BEQ +
LDA $8A : CMP.b #$70 : BNE ++
LDA.l MireRequiredMedallion : TAX : LDA.l .medallion_type, X : CMP $0303 : BNE +
LDA $7EF2F0 : AND.b #$20 : BNE +
LDA.b #$08 : PHA : PLB ; set data bank to $08
LDY.b #$02 : JSL.l Ancilla_CheckIfEntranceTriggered : BCS .permit ; misery mire
BRA +
++ : CMP.b #$47 : BNE ++
LDA.l TRockRequiredMedallion : TAX : LDA.l .medallion_type, X : CMP $0303 : BNE +
LDA $7EF2C7 : AND.b #$20 : BNE +
LDA.b #$08 : PHA : PLB ; set data bank to $08
LDY.b #$03 : JSL.l Ancilla_CheckIfEntranceTriggered : BCS .permit ; turtle rock
++
+
PLY : PLX : PLB
LDA $7EF359
RTL
.permit
PLY : PLX : PLB
LDA.b #$02 ; Pretend we have master sword
RTL
.medallion_type
db #$0F, #$10, #$11
;================================================================================

View File

@@ -75,7 +75,7 @@ PedestalMusicCheck:
;db #$01 ; #$01 = Master Sword (default)
org $0589B0 ; PC 0x289B0 ; sprite_master_sword.asm : 179
PedestalSword:
db #$01 ; #$01 = Master Sword (default)
db #$6A ; #$01 = Master Sword (default)
org $308029 ; PC 0x180029
SmithItemMode:
@@ -141,6 +141,10 @@ org $30803E ; PC 0x18003E
InvincibleGanon:
db #$00 ; #$00 = Off (default) - #$01 = On
;--------------------------------------------------------------------------------
org $30803F ; PC 0x18003F
SwordlessMode:
db #$00 ; #$00 = Off (default) - #$01 = On
;--------------------------------------------------------------------------------
org $308080 ; PC 0x180080
Upgrade5BombsRefill:
db #$00
@@ -347,36 +351,6 @@ db $69 ; Eastern
db $7F ; Darkness
db $00 ;
db $00 ;
; Values are as the table below.
;--------------------------------------------------------------------------------
; THIS ENTIRE TABLE IS DEPRECATED
;org $0AC52D ; PC 0x5452D
;CrystalNum_Darkness:
;db $7F
;
;org $0AC527 ; PC 0x54527
;CrystalNum_Swamp:
;db $79
;
;org $0AC52C ; PC 0x5452C
;CrystalNum_Skull:
;db $6C ; 6C
;
;org $0AC52A ; PC 0x5452A
;CrystalNum_Thieves:
;db $6D
;
;org $0AC528 ; PC 0x54528
;CrystalNum_Ice:
;db $6E
;
;org $0AC529 ; PC 0x54529
;CrystalNum_Mire:
;db $6F
;
;org $0AC52B ; PC 0x5452B
;CrystalNum_TRock:
;db $7C ; 7C
;1 Indicator : 7F
;2 Indicator : 79
@@ -951,8 +925,10 @@ db $04
;6A:Goal Item (Single/Triforce)
;6B:Goal Item (Multi/Power Star)
;70 - Map of ---
;71 - Map of ---
;DO NOT PLACE FREE DUNGEON ITEMS WITHIN THEIR OWN DUNGEONS - USE THE NORMAL VARIANTS
;70 - Map of Light World
;71 - Map of Dark World
;72 - Map of Ganon's Tower
;73 - Map of Turtle Rock
;74 - Map of Thieves' Town
@@ -968,8 +944,8 @@ db $04
;7E - Map of Hyrule Castle
;7F - Map of Sewers
;80 - Compass of ---
;81 - Compass of ---
;80 - Compass of Light World
;81 - Compass of Dark World
;82 - Compass of Ganon's Tower
;83 - Compass of Turtle Rock
;84 - Compass of Thieves' Town