Users browsing this thread: 1 Guest(s)
ASM Tasks

#11
Posts: 149
Threads: 21
Thanks Received: 40
Thanks Given: 3
Joined: Dec 2013
Reputation: 9
Status
Auto-life
Quote:Okay so, if the equipment has the "imp"flag, wouldn't it still make any equipment with that flag's stats only affect the character if they're an imp? I probably worded that horribly.

I assume the plan is to move the 'imp' effect from equipment to another variable in the equipment. The actual imp flag will be used to determinate if the first guest can equip the equipment.

For now, the equipment bits for the imp effect and the first guest equipment-able flag share the same byte/bit address. Yes, it makes the equipment for the first guest useless because the equipment of the guest will only be useful when he has the imp status. But we should change the imp effect for another bit in the equipment and it should fix this issue. The same applies fro the 'merit award' flag.
  Find
Quote  

#12
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
No, we are moving the bit checked for the special Imp effect on gear elsewhere. That way we are freeing up the bit its currently on to be a normal equipable gear bit for a new character.

Edit: HatZen beat me to it.
  Find
Quote  

#13
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Stumbled upon this today, for whomever does equippable gear:

Code:
C2/30A0: 68           PLA           (retrieve actual ID of character?)
C2/30A1: 9D C6 2E     STA $2EC6,X
C2/30A4: C9 0E        CMP #$0E
C2/30A6: C2 20        REP #$20      (Set 16-bit Accumulator)
C2/30A8: 48           PHA           (save actual ID of character?)
C2/30A9: B9 02 16     LDA $1602,Y   (1st two letters of character's name)
C2/30AC: 9D AF 2E     STA $2EAF,X
C2/30AF: B9 04 16     LDA $1604,Y   (middle two letters of character's name)
C2/30B2: 9D B1 2E     STA $2EB1,X
C2/30B5: B9 06 16     LDA $1606,Y   (last two letters of character's name)  
C2/30B8: 9D B3 2E     STA $2EB3,X
C2/30BB: FA           PLX           (get actual ID of character?)
C2/30BC: B0 06        BCS $30C4     (if character # is >= 0Eh [Banon], then don't bother marking
                                     them for purposes of what can be equipped on whom)
          
C2/30BE: 7B           TDC           (Clear Accumulator)
C2/30BF: 38           SEC           (set carry flag)
C2/30C0: 2A           ROL           (move up a bit, starting with bottom)
C2/30C1: CA           DEX
C2/30C2: 10 FC        BPL $30C0     (move bit into position determined by actual # of character.
                                     so for Character #3, only Bit #3 is on)

This saves the proper bit per battle character slot for which gear can be re-equipped in battle. That CMP #$0E will need to be changed in addition to whatever blocks the character from re-equipping in battle.

Also, I added expanding the attack list to my list of things to do. Unless we want to reuse a bunch of attacks, it probably needs to get done. Plus I had insomnia the other night and have a rough idea for how I might do it.
  Find
Quote  

#14
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Another thing (sorry for double post):

As we fill this out, I'll be keeping track of event RAM used.

HatZen, everything looks good with your proof-of-concept. Instead of using the key items, can you move the bits to the first few of this large chunk of RAM? Also go ahead and trim your code to drop the event so that we just have the usable portion for the finished product. Let me know if you use any other RAM bits so I can update my list.

Code:
0DF 9B:7 Iris is available
0E0 9C:0 Actor $0F is available
0E1 9C:1 Unused?
0E2 9C:2 Unused?
0E3 9C:3 Unused?
0E4 9C:4 Unused?
0E5 9C:5 Unused?
0E6 9C:6 Unused?
0E7 9C:7 Unused?
0E8 9D:0 Unused?
0E9 9D:1 Unused?
0EA 9D:2 Unused?
0EB 9D:3 Unused?
0EC 9D:4 Unused?
0ED 9D:5 Unused?
0EE 9D:6 Unused?
0EF 9D:7 Unused?
0F0 9E:0 Unused?
0F1 9E:1 Unused?
0F2 9E:2 Unused?
0F3 9E:3 Unused?
0F4 9E:4 Unused?
0F5 9E:5 Unused?
0F6 9E:6 Unused?
0F7 9E:7 Unused?
0F8 9F:0 Unused?
0F9 9F:1 Unused?
0FA 9F:2 Unused?
0FB 9F:3 Unused?
0FC 9F:4 Unused?
0FD 9F:5 Unused?
0FE 9F:6 Unused?
0FF 9F:7 Unused?

2EE DD:6 Iris is covered by the shop and item menus and Gogo's Status screen
2EF DD:7 Actor $0F is covered by the shop and item menus and Gogo's Status screen

These bits should probably also be relevant to m06 or anyone else tinkering with the OAM.
  Find
Quote  

#15
Posts: 149
Threads: 21
Thanks Received: 40
Thanks Given: 3
Joined: Dec 2013
Reputation: 9
Status
Auto-life
Ok, i changed the presence bits from the rare items for the bits you mentioned. The code only uses these two bits.

I split the code in two:
Code:
ff6re_03.asm:       the main code without the event
ff6re_event_01.asm: the alone event used for testing

Download link: http://www.bwass.org/bucket/ff6re_03.7z
  Find
Quote  

#16
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Thanks. Do you think you can do some more equipment-related stuff?
  1. move "Spec active when Imp" and "Heavy Gear" bits off to another location.
  2. enable equipping for characters $0E and $0F (field and battle)
  3. anything else I'm forgetting regarding equipment.
  Find
Quote  

#17
Posts: 149
Threads: 21
Thanks Received: 40
Thanks Given: 3
Joined: Dec 2013
Reputation: 9
Status
Auto-life
I will give it a try. I will report later.
  Find
Quote  

#18
Posts: 149
Threads: 21
Thanks Received: 40
Thanks Given: 3
Joined: Dec 2013
Reputation: 9
Status
Auto-life
Download link: http://www.bwass.org/bucket/ff6re_04.7z

Ok, i finished what i could do. The 'merit award' and 'imp effect' flag were moved from position. They are now in the following byte. You can set/unset them with ff3usme:
Code:
$01 shell when hp is low
$02 safe when hp is low
$04 reflect when hp is low
$08 doubles gained exp
$10 doubles gained gold
$20 new: merit award
$40 new: imp effect
$80 makes body cold
The code related to their flags are scaterred in the rom. Because of it, it may be possible that i missed something that isn't too noticiable. If it happens, please report back. For now, however, everything looks fine.

To clarify, the 'imp effect' flag will make the quipment attack or defense power to be 1 if the wearer doesn't have the imp status. Otherwise, the attack/defense power is normal for the equipment. For the merit award, when the wearer has the 'merit award' relic, all equipment with the 'merit award' flag will be available for him.

You can now equip the guests in the field menu.

For the in-battle menu, with ff3usme, you can go to the startup tab and select Leo and Banon. They use the slots of the new guests. Make sure to uncheck the 'can't reequip during combat' flag BEFORE the guests are created by the event and they should be able to reequip in battle.

Unfortunately, the selection of the equipment that they can switch inside battle is wrong. Does someone know where is the code where the available equipment for switch inside battle is setup?

Also, For the shops, i can't progress further because of the oam data. I will simplify the issue and give you a simple code:
Code:
    C3/C154 LDA #$E945      ;Terra's oam pointer

This code will force all sprites in shop to use the specified oam pointer. For the default characters, it works fine in the shop engine. For the no-default characters, the oam sprites are wrong. Without the availability of the no-default sprites, i can't progress further. Does anyone has an idea how to bypass this issue? For reference, the oam pointers (low byte first) i know are:
Code:
45 E9 - Terra
57 E9 - Locke
69 E9 - Cyan
7B E9 - Shadow
8D E9 - Edgar
9F E9 - Sabin
B1 E9 - Celes
C3 E9 - Strago
D5 E9 - Relm
E7 E9 - Setzer
F9 E9 - Mog
0B EA - Gau
1D EA - Gogo
2F EA - Umaro
41 EA - Soldier
44 EA - Imp
47 EA - Leo
4A EA - Bannon
4D EA - Esper Terra
50 EA - Merchant
53 EA - Ghost
56 EA - Kefka
59 EA - Soldier 2
  Find
Quote  
[-] The following 1 user says Thank You to HatZen08 for this post:
  • m06 (12-19-2016)

#19
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
(09-29-2016, 09:11 AM)HatZen08 Wrote: Unfortunately, the selection of the equipment that they can switch inside battle is wrong. Does someone know where is the code where the available equipment for switch inside battle is setup?

Here's where to fix which equipment works inside battle.

Code:
C2/30A0: 68           PLA           (retrieve actual ID of character?)
C2/30A1: 9D C6 2E     STA $2EC6,X
C2/30A4: C9 0E        CMP #$0E
C2/30A6: C2 20        REP #$20      (Set 16-bit Accumulator)
C2/30A8: 48           PHA           (save actual ID of character?)
C2/30A9: B9 02 16     LDA $1602,Y   (1st two letters of character's name)
C2/30AC: 9D AF 2E     STA $2EAF,X
C2/30AF: B9 04 16     LDA $1604,Y   (middle two letters of character's name)
C2/30B2: 9D B1 2E     STA $2EB1,X
C2/30B5: B9 06 16     LDA $1606,Y   (last two letters of character's name)  
C2/30B8: 9D B3 2E     STA $2EB3,X
C2/30BB: FA           PLX           (get actual ID of character?)
C2/30BC: B0 06        BCS $30C4     (if character # is >= 0Eh [Banon], then don't bother marking
                                    them for purposes of what can be equipped on whom)
         
C2/30BE: 7B           TDC           (Clear Accumulator)
C2/30BF: 38           SEC           (set carry flag)
C2/30C0: 2A           ROL           (move up a bit, starting with bottom)
C2/30C1: CA           DEX
C2/30C2: 10 FC        BPL $30C0     (move bit into position determined by actual # of character.
                                    so for Character #3, only Bit #3 is on)

change "C2/30A4: C9 0E        CMP #$0E" to "CMP #$10" and you should be set. Characters $0E and $0F weren't making it to the code that sets their bit.
  Find
Quote  

#20
Posts: 149
Threads: 21
Thanks Received: 40
Thanks Given: 3
Joined: Dec 2013
Reputation: 9
Status
Auto-life
Download link: http://www.bwass.org/bucket/ff6re_07.7z

I suppose no one knows how to fix the oam pointers in the shop engine. In this case, i changed the approach to fix this issue. Instead of oam pointers, the shops will now use name strings for the characters.

I altered the code used in the item menu to work for both the item menu and the shop menu. They actually use the same code with adjustments for the different engines.

If someone knows how to fix the oam pointers, please let me know. Otherwise, i suppose name strings are the best (and the only) option that i can implement by now.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite