various
This commit is contained in:
34
newitems.asm
34
newitems.asm
@@ -32,15 +32,22 @@
|
||||
; #$6A - Goal Item (Single/Triforce)
|
||||
; #$6B - Goal Item (Multi/Power Star)
|
||||
; #$6C - Goal Item (Multi/Triforce Piece)
|
||||
; #$6D - Server Request
|
||||
; #$6E - Server Request (Dungeon Drop)
|
||||
; #$6D - Server Request F0 (Hearts / Powder / Mushroom / Bonkable)
|
||||
; #$6E - Server Request F1 (Hearts / Boss Heart / NPC)
|
||||
; #$6F - Server Request F2 (Tablets / Pedestal)
|
||||
; #$70 - Maps
|
||||
; #$80 - Compasses
|
||||
; #$90 - Big Keys
|
||||
; #$A0 - Small Keys
|
||||
; #$FE - Server Request (Null Chest)
|
||||
; #$FE - Server Request (Asychronous Chest)
|
||||
; #$FF - Null Chest
|
||||
;--------------------------------------------------------------------------------
|
||||
; Service Indexes
|
||||
; 0x00 - 0x04 - chests
|
||||
; 0xF0 - freestanding heart / powder / mushroom / bonkable
|
||||
; 0xF1 - freestanding heart 2 / boss heart / npc
|
||||
; 0xF3 - tablet/pedestal
|
||||
;--------------------------------------------------------------------------------
|
||||
;GetAnimatedSpriteGfxFile:
|
||||
; LDY.b #$32
|
||||
; CMP.b #$39 : BCS + ; If tile index >= 0x39, use sprite file 0x32 (Blank file)
|
||||
@@ -320,15 +327,18 @@ AddReceivedItemExpandedGetItem:
|
||||
JSL.l ActivateGoal
|
||||
++
|
||||
BRL .done
|
||||
+ CMP.b #$6D : BNE + ; Server Request
|
||||
JSL ItemGetServiceRequest
|
||||
+ CMP.b #$6D : BNE + ; Server Request F0
|
||||
JSL.l ItemGetServiceRequest_F0
|
||||
BRL .done
|
||||
+ CMP.b #$6E : BNE + ; Server Request F1
|
||||
JSL.l ItemGetServiceRequest_F1
|
||||
BRL .done
|
||||
+ CMP.b #$6F : BNE + ; Server Request F2
|
||||
JSL.l ItemGetServiceRequest_F2
|
||||
BRL .done
|
||||
;+ CMP.b #$FE : BNE + ; Server Request (Null Chest)
|
||||
; JSL ItemGetServiceRequest
|
||||
; JSL.l ItemGetServiceRequest
|
||||
; BRL .done
|
||||
+ CMP.b #$6E : BNE + ; Server Request (Dungeon Drop)
|
||||
JSL ItemGetServiceRequest
|
||||
BRL .done
|
||||
+ CMP.b #$70 : !BLT + : CMP.b #$80 : !BGE + ; Free Map
|
||||
AND #$0F : CMP #$08 : !BGE ++
|
||||
%ValueShift()
|
||||
@@ -494,9 +504,9 @@ AddReceivedItemExpanded:
|
||||
++ : CMP.b #$65 : BNE ++ ; Progressive Bow 2
|
||||
LDA.l !INVENTORY_SWAP_2 : ORA #$20 : STA.l !INVENTORY_SWAP_2
|
||||
BRA --
|
||||
++ : CMP.b #$FE : BNE ++ ; Server Request (Null Chest)
|
||||
JSL ItemGetServiceRequest
|
||||
BRA .done
|
||||
; ++ : CMP.b #$FE : BNE ++ ; Server Request (Null Chest)
|
||||
; JSL ChestItemServiceRequest
|
||||
; BRA .done
|
||||
++ : CMP.b #$62 : BNE ++ ; RNG Item (Single)
|
||||
JSL.l GetRNGItemSingle : STA $02D8
|
||||
XBA : JSR.w MarkRNGItemSingle
|
||||
|
||||
@@ -14,6 +14,12 @@
|
||||
; #$01 - Ready to Read
|
||||
; #$FF - Busy
|
||||
;--------------------------------------------------------------------------------
|
||||
; Service Indexes
|
||||
; 0x00 - 0x04 - chests
|
||||
; 0xF0 - freestanding heart / powder / mushroom / bonkable
|
||||
; 0xF1 - freestanding heart 2 / boss heart / npc
|
||||
; 0xF2 - tablet/pedestal
|
||||
;--------------------------------------------------------------------------------
|
||||
; Block Commands
|
||||
!SCM_WAIT = "#$00"
|
||||
|
||||
@@ -69,7 +75,7 @@ PollService:
|
||||
CLC ; mark request as successful
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
macro ServiceRequest(type)
|
||||
macro ServiceRequestChest(type)
|
||||
LDA !TX_STATUS : BEQ + : SEC : RTL : + ; return fail if we don't have the lock
|
||||
LDA $1B : STA !TX_BUFFER+8 ; indoor/outdoor
|
||||
BEQ +
|
||||
@@ -87,10 +93,42 @@ macro ServiceRequest(type)
|
||||
RTL
|
||||
endmacro
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemVisualServiceRequest:
|
||||
%ServiceRequest(!SCM_SEEN)
|
||||
macro ServiceRequest(type,index)
|
||||
LDA !TX_STATUS : BEQ + : SEC : RTL : + ; return fail if we don't have the lock
|
||||
LDA $1B : STA !TX_BUFFER+8 ; indoor/outdoor
|
||||
BEQ +
|
||||
LDA $A0 : STA !TX_BUFFER+9 ; roomid low
|
||||
LDA $A1 : STA !TX_BUFFER+10 ; roomid high
|
||||
BRA ++
|
||||
+
|
||||
LDA $040A : STA !TX_BUFFER+9 ; area id
|
||||
LDA.b #$00 : STA !TX_BUFFER+10 ; protocol defines this as a ushort
|
||||
++
|
||||
LDA <index> : STA !TX_BUFFER+11 ; object index (type 2 only)
|
||||
LDA <type> : STA !TX_BUFFER ; item get
|
||||
LDA #$01 : STA !TX_STATUS ; mark ready for reading
|
||||
CLC ; mark request as successful
|
||||
RTL
|
||||
endmacro
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemVisualServiceRequest_F0:
|
||||
%ServiceRequest(!SCM_SEEN, #$F0)
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemVisualServiceRequest_F1:
|
||||
%ServiceRequest(!SCM_SEEN, #$F1)
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemVisualServiceRequest_F2:
|
||||
%ServiceRequest(!SCM_SEEN, #$F2)
|
||||
;--------------------------------------------------------------------------------
|
||||
ChestItemServiceRequest:
|
||||
ItemGetServiceRequest:
|
||||
%ServiceRequest(!SCM_GET)
|
||||
%ServiceRequestChest(!SCM_GET)
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemGetServiceRequest_F0:
|
||||
%ServiceRequest(!SCM_GET, #$F0)
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemGetServiceRequest_F1:
|
||||
%ServiceRequest(!SCM_GET, #$F1)
|
||||
;--------------------------------------------------------------------------------
|
||||
ItemGetServiceRequest_F2:
|
||||
%ServiceRequest(!SCM_GET, #$F2)
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -16,14 +16,31 @@ GetSpriteID:
|
||||
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
|
||||
CMP.b #$6D : BEQ .server ; Server Request F0
|
||||
CMP.b #$6E : BEQ .server ; Server Request F1
|
||||
CMP.b #$6F : BEQ .server ; Server Request F2
|
||||
BRA .normal
|
||||
.bottle
|
||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||
PLA : LDA.l BottleLimitReplacement
|
||||
JSL.l GetSpriteID
|
||||
RTL
|
||||
+
|
||||
PLA : .notBottle
|
||||
PLA : BRA .normal
|
||||
.server_F0
|
||||
ItemVisualServiceRequest_F0
|
||||
LDA.b #$14
|
||||
RTL
|
||||
.server_F1
|
||||
ItemVisualServiceRequest_F1
|
||||
LDA.b #$14
|
||||
RTL
|
||||
.server_F2
|
||||
ItemVisualServiceRequest_F2
|
||||
LDA.b #$14
|
||||
RTL
|
||||
.normal
|
||||
|
||||
PHX
|
||||
PHB : PHK : PLB
|
||||
;--------
|
||||
|
||||
Reference in New Issue
Block a user