let's dev 12/2/17
freestanding hera small key pickup stats capitalism fairy fix permabunny fix save file crossover fix started shopkeeper
This commit is contained in:
@@ -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, #$17, #$11, #$18 ; year/month/day
|
db #$20, #$17, #$12, #$03 ; year/month/day
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
@@ -121,6 +121,7 @@ incsrc hardmode.asm
|
|||||||
incsrc goalitem.asm
|
incsrc goalitem.asm
|
||||||
incsrc compasses.asm
|
incsrc compasses.asm
|
||||||
incsrc doorframefixes.asm
|
incsrc doorframefixes.asm
|
||||||
|
;incsrc shopkeeper.asm
|
||||||
incsrc hashalphabet.asm ; <- TAKE OUT THE EXTRA ORGS IN HERE - THIS IS WHY WE COULDN'T ADD MORE FILES EARLIER
|
incsrc hashalphabet.asm ; <- TAKE OUT THE EXTRA ORGS IN HERE - THIS IS WHY WE COULDN'T ADD MORE FILES EARLIER
|
||||||
warnpc $A18000
|
warnpc $A18000
|
||||||
|
|
||||||
@@ -374,6 +375,9 @@ Sprite_DirectionToFacePlayer:
|
|||||||
org $06F12F
|
org $06F12F
|
||||||
Sprite_CheckDamageToPlayerSameLayerLong:
|
Sprite_CheckDamageToPlayerSameLayerLong:
|
||||||
|
|
||||||
|
org $06F86A
|
||||||
|
OAM_AllocateDeferToPlayerLong:
|
||||||
|
|
||||||
org $07999D
|
org $07999D
|
||||||
Link_ReceiveItem:
|
Link_ReceiveItem:
|
||||||
|
|
||||||
@@ -467,4 +471,7 @@ Sprite_SpawnDynamically:
|
|||||||
|
|
||||||
org $1DFD4B
|
org $1DFD4B
|
||||||
DiggingGameGuy_AttemptPrizeSpawn:
|
DiggingGameGuy_AttemptPrizeSpawn:
|
||||||
|
|
||||||
|
org $1EF4E7
|
||||||
|
Sprite_PlayerCantPassThrough:
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|||||||
@@ -27,4 +27,12 @@ MSMusicReset:
|
|||||||
LDA $23
|
LDA $23
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
;0 = Become Permabunny
|
||||||
|
DecideIfBunny:
|
||||||
|
LDA $7EF357 : BEQ + : RTL : +
|
||||||
|
LDA $7EF3CA : AND.b #$40 : EOR #$40
|
||||||
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
23
hooks.asm
23
hooks.asm
@@ -434,6 +434,9 @@ LDA.w PotionListExpanded, X
|
|||||||
org $06D1EB ; 351EB - sprite_absorbable.asm:364 (STA $7EF375) ; bugbug commented out until i figure out why it doesn't work
|
org $06D1EB ; 351EB - sprite_absorbable.asm:364 (STA $7EF375) ; bugbug commented out until i figure out why it doesn't work
|
||||||
JSL HandleBombAbsorbtion
|
JSL HandleBombAbsorbtion
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
;org $09873F ; <- 04873F - ancilla_init.asm : 960 (ADC [$00] : STA [$00] )
|
||||||
|
;JSL.l AddToStock
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Kholdstare Shell Fix
|
; Kholdstare Shell Fix
|
||||||
@@ -995,6 +998,23 @@ org $05FBD3 ; <- 2FBD3 - sprite_mad_batter.asm:209 - (STA $7EF37B)
|
|||||||
JSL.l GetMagicBatItem
|
JSL.l GetMagicBatItem
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
; Replacement Shopkeeper
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
;org $068BEB ; <- 30BEB - Bank07.asm:1125 - (INC $0BA0, X)
|
||||||
|
;JSL.l SpritePrep_ShopKeeper : RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
;org $1EEEE3 ; <- F6EE3 - sprite_shopkeeper.asm:7 - (LDA $0E80, X)
|
||||||
|
;JSL.l Sprite_ShopKeeper : RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
; Permabunny Fix
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
org $078F32 ; <- 38F32 - Bank07.asm:2420 - (LDA $7EF357)
|
||||||
|
JSL.l DecideIfBunny
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Open Mode Fixes
|
; Open Mode Fixes
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -1196,6 +1216,9 @@ JSL.l DialogBlind
|
|||||||
org $06C94C ; <- 3494C - sprite_ponds.asm:970 (JSL Sprite_ShowMessageUnconditional)
|
org $06C94C ; <- 3494C - sprite_ponds.asm:970 (JSL Sprite_ShowMessageUnconditional)
|
||||||
JSL.l DialogFatFairy
|
JSL.l DialogFatFairy
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
org $06C454 ; <- 34454 - sprite_ponds.asm:133 (LDA $0D80, X)
|
||||||
|
LDA.b #$00 : NOP
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
;-- Sahasrahla (no green pendant)
|
;-- Sahasrahla (no green pendant)
|
||||||
org $05F16C ; <- 2F16C sprite_elder.asm:137 (JSL Sprite_ShowSolicitedMessageIfPlayerFacing)
|
org $05F16C ; <- 2F16C sprite_elder.asm:137 (JSL Sprite_ShowSolicitedMessageIfPlayerFacing)
|
||||||
JSL.l Sprite_ShowSolicitedMessageIfPlayerFacing_Alt
|
JSL.l Sprite_ShowSolicitedMessageIfPlayerFacing_Alt
|
||||||
|
|||||||
21
init.asm
21
init.asm
@@ -20,6 +20,27 @@ Init_Primary:
|
|||||||
INX
|
INX
|
||||||
CPX #$FF : !BLT -
|
CPX #$FF : !BLT -
|
||||||
|
|
||||||
|
LDX #$00
|
||||||
|
-
|
||||||
|
LDA $702000, X : CMP $00FFC0, X : BNE .clear
|
||||||
|
INX
|
||||||
|
CPX #$15 : !BLT -
|
||||||
|
BRA .done
|
||||||
|
.clear
|
||||||
|
REP #$30 ; set 16-bit accumulator & index registers
|
||||||
|
LDA.w #$0000
|
||||||
|
-
|
||||||
|
STA $700000, X
|
||||||
|
INX
|
||||||
|
CPX #$2000 : !BLT -
|
||||||
|
SEP #$30 ; set 8-bit accumulator & index registers
|
||||||
|
LDX #$00
|
||||||
|
-
|
||||||
|
LDA $00FFC0, X : STA $702000, X
|
||||||
|
INX
|
||||||
|
CPX #$15 : !BLT -
|
||||||
|
.done
|
||||||
|
|
||||||
LDA.b #$01 : STA $420D ; enable fastrom access on upper banks
|
LDA.b #$01 : STA $420D ; enable fastrom access on upper banks
|
||||||
|
|
||||||
LDA.b #$81 : STA $4200 ; thing we wrote over, turn on NMI & gamepad
|
LDA.b #$81 : STA $4200 ; thing we wrote over, turn on NMI & gamepad
|
||||||
|
|||||||
@@ -172,9 +172,13 @@ macro BottomHalf(address)
|
|||||||
PLX : PLA
|
PLX : PLA
|
||||||
endmacro
|
endmacro
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
;FullInventoryExternal:
|
||||||
|
; LDA !LOCK_STATS : BEQ + : RTL : +
|
||||||
|
; PHA : PHX : PHP : JMP AddInventory_fullItemCounts
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
FullInventoryExternal:
|
FullInventoryExternal:
|
||||||
LDA !LOCK_STATS : BEQ + : RTL : +
|
LDA !LOCK_STATS : BEQ + : RTL : +
|
||||||
PHA : PHX : PHP : JMP AddInventory_fullItemCounts
|
PHA : PHX : PHP : JMP AddInventory_incrementCounts
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
!SHAME_CHEST = "$7EF416" ; ---s ----
|
!SHAME_CHEST = "$7EF416" ; ---s ----
|
||||||
AddInventory:
|
AddInventory:
|
||||||
|
|||||||
176
shopkeeper.asm
176
shopkeeper.asm
@@ -21,4 +21,180 @@ RTL
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 291 - Moldorm Cave
|
; 291 - Moldorm Cave
|
||||||
; 286 - Northeast Dark Swamp Cave
|
; 286 - Northeast Dark Swamp Cave
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
!BIGRAM = "$7EC900";
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; $0A : Digit Offset
|
||||||
|
; $0C-$0D : Value to Display
|
||||||
|
; $0E-$0F : Base Coordinate
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
macro DrawDigit(value,offset)
|
||||||
|
STZ $0A ; clear digit buffer
|
||||||
|
LDA $0C ; load value
|
||||||
|
--
|
||||||
|
CMP.w <value> : !BLT ++
|
||||||
|
!SUB.w <value>
|
||||||
|
INC $0A
|
||||||
|
BRA --
|
||||||
|
++
|
||||||
|
STA $0C ; save value
|
||||||
|
CPY.b #$FF : BNE +
|
||||||
|
LDY.b <offset>
|
||||||
|
LDA $0E : !ADD.w .digit_offsets, Y : STA $0E
|
||||||
|
+
|
||||||
|
LDA $0E : STA !BIGRAM, X : INX : INX
|
||||||
|
LDA.w #56 : STA !BIGRAM, X : INX : INX
|
||||||
|
LDY $0A : TYA : ASL : TAY : LDA .digit_properties, Y : STA !BIGRAM, X : INX : INX
|
||||||
|
LDA.w #$0000 : STA !BIGRAM, X : INX : INX
|
||||||
|
|
||||||
|
LDA $0E : !ADD.w #$0008 : STA $0E ; move offset 8px right
|
||||||
|
endmacro
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
DrawPrice:
|
||||||
|
PHX : PHY : PHP
|
||||||
|
LDY.b #$FF
|
||||||
|
LDX #$00 ; clear bigram pointer
|
||||||
|
|
||||||
|
LDA $0C : CMP.w #1000 : !BLT + : BRL .len4 : +
|
||||||
|
CMP.w #100 : !BLT + : BRL .len3 : +
|
||||||
|
CMP.w #10 : !BLT + : BRL .len2 : +
|
||||||
|
CMP.w #1 : !BLT + : BRL .len1 : +
|
||||||
|
|
||||||
|
.len4
|
||||||
|
%DrawDigit(#1000,#6)
|
||||||
|
|
||||||
|
.len3
|
||||||
|
%DrawDigit(#100,#4)
|
||||||
|
|
||||||
|
.len2
|
||||||
|
%DrawDigit(#10,#2
|
||||||
|
|
||||||
|
.len1
|
||||||
|
%DrawDigit(#1,#0)
|
||||||
|
|
||||||
|
SEP #$20 ; set 8-bit accumulator
|
||||||
|
TXA : LSR #3 : STA $06 ; request 1-4 OAM slots
|
||||||
|
ASL #2 : JSL.l OAM_AllocateFromRegionA ; request 4-16 bytes
|
||||||
|
TXA : LSR #3
|
||||||
|
PLP : PLY : PLX
|
||||||
|
RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
.digit_properties
|
||||||
|
dw $0230, $0231, $0202, $0203, $0212, $0213, $0222, $0223, $0232, $0233
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
.digit_offsets
|
||||||
|
dw 4, 0, -4, -8
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
SpritePrep_ShopKeeper:
|
||||||
|
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
Sprite_ShopKeeper:
|
||||||
|
PHB : PHK : PLB
|
||||||
|
JSL.l Sprite_PlayerCantPassThrough
|
||||||
|
|
||||||
|
; Draw Shopkeeper
|
||||||
|
LDA.b #$02 : STA $06 ; request 2 OAM slots
|
||||||
|
LDA #$08 : JSL.l OAM_AllocateFromRegionB ; request 8 bytes
|
||||||
|
LDA.b #$02 : STA $06 ; request 2 OAM slots
|
||||||
|
STZ $07
|
||||||
|
LDA $1A : AND #$10 : BEQ +
|
||||||
|
LDA.b #.oam_shopkeeper_f1 : STA $08
|
||||||
|
LDA.b #.oam_shopkeeper_f1>>8 : STA $09
|
||||||
|
BRA ++
|
||||||
|
+
|
||||||
|
LDA.b #.oam_shopkeeper_f2 : STA $08
|
||||||
|
LDA.b #.oam_shopkeeper_f2>>8 : STA $09
|
||||||
|
++
|
||||||
|
;LDA.b #$01 : STA.l !SKIP_EOR
|
||||||
|
JSL.l Sprite_DrawMultiple_quantity_preset
|
||||||
|
LDA $90 : !ADD.b #$04*2 : STA $90 ; increment oam pointer
|
||||||
|
LDA $92 : INC #2 : STA $92
|
||||||
|
|
||||||
|
; Draw Items
|
||||||
|
LDA.b #$03 : STA $06 ; request 3 OAM slots
|
||||||
|
LDA #$0C : JSL.l OAM_AllocateFromRegionB ; request 12 bytes
|
||||||
|
LDA.b #$03 : STA $06 ; request 3 OAM slots
|
||||||
|
STZ $07
|
||||||
|
LDA.b #.oam_items : STA $08
|
||||||
|
LDA.b #.oam_items>>8 : STA $09
|
||||||
|
JSL.l Sprite_DrawMultiple_quantity_preset
|
||||||
|
LDA $90 : !ADD.b #$04*3 : STA $90 ; increment oam pointer
|
||||||
|
LDA $92 : INC #3 : STA $92
|
||||||
|
|
||||||
|
; Draw Prices
|
||||||
|
;LDA.b #$0C : STA $06 ; request 12 OAM slots
|
||||||
|
;LDA #$30 : JSL.l OAM_AllocateFromRegionA ; request 48 bytes
|
||||||
|
;LDA.b #$0C : STA $06 ; request 12 OAM slots
|
||||||
|
;STZ $07
|
||||||
|
;LDA.b #.oam_prices : STA $08
|
||||||
|
;LDA.b #.oam_prices>>8 : STA $09
|
||||||
|
;JSL.l Sprite_DrawMultiple_quantity_preset
|
||||||
|
;LDA $90 : !ADD.b #4*12 : STA $90 ; increment oam pointer
|
||||||
|
;LDA $92 : INC #12 : STA $92
|
||||||
|
|
||||||
|
LDA.b #$00 : STA.l !SKIP_EOR
|
||||||
|
|
||||||
|
REP #$20 ; set 16-bit accumulator
|
||||||
|
LDA.w #651 : STA $0C ; set value
|
||||||
|
LDA.w #8 : STA $0E ; set coordinate
|
||||||
|
JSR.w DrawPrice
|
||||||
|
SEP #$20 : STA $06 ; set 8-bit accumulator & store result
|
||||||
|
PHA
|
||||||
|
STZ $07
|
||||||
|
LDA.b #!BIGRAM : STA $08
|
||||||
|
LDA.b #!BIGRAM>>8 : STA $09
|
||||||
|
LDA.b #$7E : PHA : PLB ; set data bank to $7E
|
||||||
|
JSL.l Sprite_DrawMultiple_quantity_preset
|
||||||
|
LDA 1,s
|
||||||
|
ASL #2 : !ADD $90 : STA $90 ; increment oam pointer
|
||||||
|
PLA
|
||||||
|
!ADD $92 : STA $92
|
||||||
|
|
||||||
|
REP #$20 ; set 16-bit accumulator
|
||||||
|
LDA.w #55 : STA $0C ; set value
|
||||||
|
LDA.w #56 : STA $0E ; set coordinate
|
||||||
|
JSR.w DrawPrice
|
||||||
|
SEP #$20 : STA $06 ; set 8-bit accumulator & store result
|
||||||
|
PHA
|
||||||
|
STZ $07
|
||||||
|
LDA.b #!BIGRAM : STA $08
|
||||||
|
LDA.b #!BIGRAM>>8 : STA $09
|
||||||
|
LDA.b #$7E : PHA : PLB ; set data bank to $7E
|
||||||
|
JSL.l Sprite_DrawMultiple_quantity_preset
|
||||||
|
LDA 1,s
|
||||||
|
ASL #2 : !ADD $90 : STA $90 ; increment oam pointer
|
||||||
|
PLA
|
||||||
|
!ADD $92 : STA $92
|
||||||
|
PLB
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
.oam_shopkeeper_f1
|
||||||
|
dw 8, -8 : db $00, $0C, $00, $02
|
||||||
|
dw 8, 0 : db $10, $0C, $00, $02
|
||||||
|
.oam_shopkeeper_f2
|
||||||
|
dw 8, -8 : db $00, $0C, $00, $02
|
||||||
|
dw 8, 0 : db $10, $4C, $00, $02
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
.oam_items
|
||||||
|
dw -40, 40 : db $C0, $08, $00, $02
|
||||||
|
dw 8, 40 : db $C2, $04, $00, $02
|
||||||
|
dw 56, 40 : db $C4, $02, $00, $02
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
.oam_prices
|
||||||
|
dw -48, 56 : db $30, $02, $00, $00
|
||||||
|
dw -40, 56 : db $31, $02, $00, $00
|
||||||
|
dw -32, 56 : db $02, $02, $00, $00
|
||||||
|
dw -24, 56 : db $03, $02, $00, $00
|
||||||
|
|
||||||
|
dw 0, 56 : db $12, $02, $00, $00
|
||||||
|
dw 8, 56 : db $13, $02, $00, $00
|
||||||
|
dw 16, 56 : db $22, $02, $00, $00
|
||||||
|
dw 24, 56 : db $23, $02, $00, $00
|
||||||
|
|
||||||
|
dw 48, 56 : db $32, $02, $00, $00
|
||||||
|
dw 56, 56 : db $33, $02, $00, $00
|
||||||
|
dw 64, 56 : db $30, $02, $00, $00
|
||||||
|
dw 72, 56 : db $31, $02, $00, $00
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -199,7 +199,9 @@ IncrementSmallKeys:
|
|||||||
JSL AddInventory_incrementKeyLong
|
JSL AddInventory_incrementKeyLong
|
||||||
+
|
+
|
||||||
JSL.l UpdateKeys
|
JSL.l UpdateKeys
|
||||||
RTL
|
PHY : LDY.b #24 : JSL.l FullInventoryExternal : PLY
|
||||||
|
JSL.l HUD_RebuildLong
|
||||||
|
;RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DecrementSmallKeys:
|
DecrementSmallKeys:
|
||||||
STA $7EF36F ; thing we wrote over, write small key count
|
STA $7EF36F ; thing we wrote over, write small key count
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ db #$00 ; #$00 = Off (default) - #$01 = On
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $308032 ; PC 0x180032
|
org $308032 ; PC 0x180032
|
||||||
OpenMode:
|
OpenMode:
|
||||||
db #$00 ; #$00 = Classic (default) - #$01 = Open
|
db #$01 ; #$00 = Classic (default) - #$01 = Open
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $308033 ; PC 0x180033
|
org $308033 ; PC 0x180033
|
||||||
HeartBeep:
|
HeartBeep:
|
||||||
@@ -131,7 +131,7 @@ org $30803B ; PC 0x18003B
|
|||||||
MapMode:
|
MapMode:
|
||||||
db #$00 ; #$00 = Always On (default) - #$01 = Require Map Item
|
db #$00 ; #$00 = Always On (default) - #$01 = Require Map Item
|
||||||
CompassMode:
|
CompassMode:
|
||||||
db #$00 ; #$00 = Off (default) - #$01 = Display Dungeon Count w/Compass - #$02 = Display Dungeon Count Always
|
db #$02 ; #$00 = Off (default) - #$01 = Display Dungeon Count w/Compass - #$02 = Display Dungeon Count Always
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $30803D ; PC 0x18003D
|
org $30803D ; PC 0x18003D
|
||||||
PersistentFloodgate:
|
PersistentFloodgate:
|
||||||
@@ -743,7 +743,7 @@ StartingTime:
|
|||||||
dw #$0000, #$0000 ; #$A5E0, #$0001 = 30 minutes
|
dw #$0000, #$0000 ; #$A5E0, #$0001 = 30 minutes
|
||||||
;================================================================================
|
;================================================================================
|
||||||
org $09E3BB ; PC 0x4E3BB
|
org $09E3BB ; PC 0x4E3BB
|
||||||
db $EB ; Hera Big Key (Set to programmable HP $EB) (set to $E4 for original hookable/boomable key behavior)
|
db $E4 ; Hera Basement Key (Set to programmable HP $EB) (set to $E4 for original hookable/boomable key behavior)
|
||||||
;================================================================================
|
;================================================================================
|
||||||
org $308210 ; PC 0x180210
|
org $308210 ; PC 0x180210
|
||||||
RandomizerSeedType:
|
RandomizerSeedType:
|
||||||
|
|||||||
Reference in New Issue
Block a user