Skip to content

Commit 5e9773f

Browse files
committed
added function for magic shop QoS containing Hex Blob as well as moved Hex Blob here. Currently can't include 'Who will learn message' due to not enough ROM memory available (exceeds by 5 bytes).
1 parent a76c698 commit 5e9773f

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

FF1Lib/QualityOfLife.cs

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,50 @@ public void QualityOfLifeHacks(Flags flags, Preferences preferences)
6464
{
6565
UninterruptedMusic();
6666
}
67-
68-
67+
if (preferences.MagicShopMenuChange)
68+
{
69+
MagicShopsMatchEquipShops();
70+
}
71+
}
72+
public void MagicShopsMatchEquipShops()
73+
{
74+
// QoS to make magic shop function like weapon/armor shops
75+
PutInBank(0x0E, 0xA360, Blob.FromHex("A90D205BAA2089A9B0EDA662BD00038D0C032065AA20C2A8B0DEA562D0DA20EBA49008A910205BAA4C65A320E4A8B0C8A5626A6A6A29C08D0A0320DFAA20CDA4AE0A03AD0B039D00634C60A3"));
76+
77+
//assembly for QoS
78+
// LDA #$0D # load 'what do you want' text
79+
// JSR $AA5B # display ^ text
80+
// JSR $A989 # select spell
81+
// BCS $357 # return to start if B
82+
// LDX $62 # get cursor in register X
83+
// LDA $0300,X # load item ID from register X
84+
// STA $030C # store item ID in A
85+
// JSR $AA65 # draw price and buy confirm
86+
// JSR $A8C2 # loop for input
87+
// BCS $A358 # return to start if B
88+
// LDA $62 # get cursor in register A
89+
// BNE $A358 # return to start if no
90+
// JSR $A4EB # check can afford
91+
// BCC $A39D # jump to finalize section; update this address if 'who will learn' message added
92+
// LDA #$10 # load 'can't afford text'
93+
// JSR $AA5B # display ^ text
94+
// JMP $A365 # return to start
95+
// ;; LDA #$17 # 'Who will learn' message text
96+
// ;; JSR $AA5B # Display ^ text
97+
// JSR $A8E4 # select character
98+
// BCS $A358 # return to start if B
99+
// LDA $62 # load cursor into register A
100+
// ROR A # bit shift register A right
101+
// ROR A # bit shift register A right
102+
// ROR A # bit shift register A right
103+
// AND #$C0 # bit shift register A right and mask to get character index
104+
// STA $030A # store character index in register A
105+
// JSR $AADF # check if character can learn
106+
// JSR $A4CD # pay for selection
107+
// LDX $030A # get empty slot in register X
108+
// LDA $030B # get adjusted spell ID
109+
// STA $6300,X # add to characters spell list
110+
// JMP $A360 # return to start of shop
69111
}
70112
public void DisableDamageTileFlicker()
71113
{

0 commit comments

Comments
 (0)