Users browsing this thread: 1 Guest(s)
Can't be sold item

#1
Posts: 62
Threads: 16
Thanks Received: 10
Thanks Given: 4
Joined: May 2012
Reputation: 10
Status
None
Hello, everyone.

In FF6, I can sell all the items.
Is it possible to not sell a particular item?(For example, Such as those you have set the price to 0)

If, if some people can be seen, please lend force.

Thank you. Cover
  Find
Quote  

#2
Posts: 2,769
Threads: 88
Thanks Received: 24
Thanks Given: 87
Joined: Jun 2009
Reputation: 25
Status
None
wow I honestly wanted something like this myself, but I personally wouldn't know how to go about it sorry


"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"

-HNIC
Quote  

#3
Posts: 212
Threads: 1
Thanks Received: 11
Thanks Given: 2
Joined: Oct 2014
Reputation: 7
Status
None
The ASM hack wouldn't be too difficult. The "sell" function is at C3/B708, you'd need to insert a check to see if the value is zero, and abort if so.

EDIT: Actually, in the Japanese version, it appears to be at C3/C65F, rather than C3/B708...




https://github.com/abyssonym/beyondchaos
Beyond Chaos is a full-game randomizer for FF6.
Quote  

#4
Posts: 62
Threads: 16
Thanks Received: 10
Thanks Given: 4
Joined: May 2012
Reputation: 10
Status
None
>>pocoloco
thank you!
Sale impossible setting Why to FF6 is, I Would do was not originally...Surprised

>>abyssonym
Address of the information, thank you!
Based on the information, I will try to trial and error.Hold on
  Find
Quote  

#5
Posts: 2,769
Threads: 88
Thanks Received: 24
Thanks Given: 87
Joined: Jun 2009
Reputation: 25
Status
None
good luck man


"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"

-HNIC
Quote  

#6
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
Just glancing at it I think your gonna have to go a little earlier in the process than that.

By the time you reach B708 you've already selected the item and set the number to sell, there is already a BEQ command (branch if equal to zero) at C3/B63F that jumps to a line to "make buzzer sound".

Point being, I think that might be a check for item amount owned? (When would an item be listed with a count of 0 though? Or is that loading the item list and buzzing if you have 0 items at all?) Maybe could tell that to check price instead and buzz if value zero value.

Still I THINK C3/B708 is to late in the process to block selling(I admit I would never have thought of using a 0 price to check against either but I agree good idea). The JSR command at line C3/B63A tht looks to load your item list might be a good place to grey out zero value items though.

Sorry if I'm completely off track here and just causing confusion, but thats what I see it doing. Just dont put to much faith in my assumptions for your own sake.


The only true wisdom is knowing you know nothing.
  Find
Quote  

#7
Posts: 175
Threads: 11
Thanks Received: 10
Thanks Given: 8
Joined: May 2013
Reputation: 13
Status
Well-Fed
What it's actually checking for there with that BEQ at B63F is if it's a null item -- FFh -- aka an empty slot. You're absolutely right that /B708 is (probably) too late in the process; I'm trying to find where it loads item information so I can find where the item price is stored.

Looking at it, the code doesn't actually load the item price until the start of the function at /B708, with a jump to C3/BB65, which makes it difficult to check against it; I haven't tracked down where it actually draws the sell menu yet, which is where we'd need to look at greying out items.


Current Project: FF6: Tensei | Discord ID: TristanGrayse
  Find
Quote  

#8
Posts: 212
Threads: 1
Thanks Received: 11
Thanks Given: 2
Joined: Oct 2014
Reputation: 7
Status
None
The hack I was thinking of would allow you to select the item and set the amount sold, it would just cancel (with a buzzer noise or something) before actually selling it. For this kind of implementation, /B708 isn't too late, because the item only gets removed from your inventory at /B72D. It's not the most user-friendly implementation but it gets the job done.




https://github.com/abyssonym/beyondchaos
Beyond Chaos is a full-game randomizer for FF6.
Quote  

#9
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
The values here seem to point to where it goes after selecting "Buy" "Sell" or ... Exit (Not sure on the last one, B7A0 seems to take a long path for an "exit" choice)

Code:
C3/B79A:    A3B7        
C3/B79C:    C7B7        
C3/B79E:    A0B7  
    
C3/B7A0:    4CB3B4        JMP $B4B3

If you replace C7B7 with A3B7 it will open the shop's item list when you select sell. Which seems to point to C7B7 (or C3/B7C7) as being the start of the "Sell" process. Which goes through a ton of jumping in circles. Eventually leads to this (Every Jump seems start at a different LDX command though):

Code:
C3/6A15:    A600        LDX $00
C3/6A17:    8035        BRA $6A4E
C3/6A19:    A20008      LDX #$0800
C3/6A1C:    8030        BRA $6A4E
C3/6A1E:    A20010      LDX #$1000
C3/6A21:    802B        BRA $6A4E
C3/6A23:    A20018      LDX #$1800
C3/6A26:    8026        BRA $6A4E
C3/6A28:    A20020      LDX #$2000
C3/6A2B:    8021        BRA $6A4E
C3/6A2D:    A20028      LDX #$2800
C3/6A30:    801C        BRA $6A4E
C3/6A32:    A20030      LDX #$3000
C3/6A35:    8017        BRA $6A4E
C3/6A37:    A20038      LDX #$3800
C3/6A3A:    8012        BRA $6A4E
C3/6A3C:    A20040      LDX #$4000
C3/6A3F:    800D        BRA $6A4E
C3/6A41:    A20048      LDX #$4800
C3/6A44:    8008        BRA $6A4E
C3/6A46:    A20050      LDX #$5000
C3/6A49:    8003        BRA $6A4E
C3/6A4B:    A20058      LDX #$5800
C3/6A4E:    C220        REP #$20      (16 bit memory/accum.)
C3/6A50:    7B          TDC
C3/6A51:    A00002      LDY #$0200
C3/6A54:    9F49387E    STA $7E3849,X
C3/6A58:    E8          INX
C3/6A59:    E8          INX
C3/6A5A:    9F49387E    STA $7E3849,X
C3/6A5E:    E8          INX
C3/6A5F:    E8          INX
C3/6A60:    88          DEY
C3/6A61:    D0F1        BNE $6A54
C3/6A63:    E220        SEP #$20      (8 bit memory/accum.)
C3/6A65:    60          RTS

I can't read well enough to tell exactly, but looks like a list being loaded. Maybe?

On another note, depending on what kinda item you wanted to block the selling of, couldn't you mimic the "is a tool" check at C3/B7E6? (This is the check to stop you from buying more than one of a tool btw). Sure you'd be limited to one type of item being blocked but would get around having to check the price at a strange location. Of course, I'm not sure just how easy a price check would be so, that might be a worse idea.

And yes, stopping it at /B708 would stop the sale, based on price, effectively for the very reason you said... but its more fun to do it the hard way, and maybe not to difficult other than finding where to stop it.

I have to wonder, in a not directly related subject, if it would be possible to influence price based on a timer? Refering to Lockirby's day/night project. There are alread checks for who's leading the party, why would it be much different?


The only true wisdom is knowing you know nothing.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite