JSE Neck Augments Cant Be Decoded By Extdata.decod

Language: JP EN DE FR
2010-09-08
New Items
users online
Forum » Windower » Support » JSE neck augments cant be decoded by Extdata.decod
JSE neck augments cant be decoded by Extdata.decod
 Odin.Ewellina
Offline
Server: Odin
Game: FFXI
user: colway
Posts: 200
By Odin.Ewellina 2019-03-05 04:44:51
Link | Quote | Reply
 
so here goes, Extdata.decode function doesnt work for the new necks, i assume this is also the case for the augmented rema weapons.

what it should output (example is an Adhemar Bonnet) :



what it actually outputs (for assassin's gorget +2 rank 25):



Can one of the Windower Devs help me out with this issue please. This issue is reflected in the gearswap export function where the augments do not show in the exported file.

I'm trying to make an update to GearInfo but i cannot due to this issue. hopefully someone can help thanks.

i will also post this issue in the github.
 Lakshmi.Byrth
VIP
Offline
Server: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6137
By Lakshmi.Byrth 2019-03-05 05:24:40
Link | Quote | Reply
 
It looks like it might be a new encoding scheme for extdata, so extdata.decode cannot handle it and defaults to raw. I guess I never adapted the gearswap export function to work with raw because I had covered all cases I knew about at the time.
 Odin.Ewellina
Offline
Server: Odin
Game: FFXI
user: colway
Posts: 200
By Odin.Ewellina 2019-03-05 05:48:47
Link | Quote | Reply
 
thanks for the reply @Lakshmi.Byrth. Hopefully someone will look at it. I just found the windower discord server, didnt even know there was one. i left a message in there too in the support section.
 Lakshmi.Byrth
VIP
Offline
Server: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6137
By Lakshmi.Byrth 2019-03-05 06:46:12
Link | Quote | Reply
 
I apologise to whoever updates it for the sprawling format.
[+]
Offline
Posts: 1584
By Felgarr 2019-03-05 06:57:37
Link | Quote | Reply
 
+1.

Displaying the correct Corsair roll values is also affected by this, as one cannot decode the augments on Rostam Path C.
 Odin.Ewellina
Offline
Server: Odin
Game: FFXI
user: colway
Posts: 200
By Odin.Ewellina 2019-03-05 08:01:37
Link | Quote | Reply
 
i get the feeling no one is gona do it unless i do it, any tips @byrth on how i can do it? cos im out of my depth here.
 Odin.Ewellina
Offline
Server: Odin
Game: FFXI
user: colway
Posts: 200
By Odin.Ewellina 2019-03-05 17:10:17
Link | Quote | Reply
 
iryoku said its gona require some memory edditing, so thats me out. someone else gona have to pick up this fix
 Bahamut.Dannyl
Offline
Server: Bahamut
Game: FFXI
user: dannyl
Posts: 1548
By Bahamut.Dannyl 2019-03-05 17:34:53
Link | Quote | Reply
 
I ain't gonna lie, this looks difficult and probably out of my depth as well. i'll try and fix it but no promises, heres my previous work:
[+]
 Ragnarok.Martel
Offline
Server: Ragnarok
Game: FFXI
Posts: 2894
By Ragnarok.Martel 2019-03-05 17:37:33
Link | Quote | Reply
 
Odin.Ewellina said: »
iryoku said its gona require some memory edditing, so thats me out. someone else gona have to pick up this fix
Hmmm. Do you think you could work in a manual override for specific items? Something to let us manually set the augments for a given item. Personally, I just want the DT values when I'm wearing my RUN neck to be correct.
 Lakshmi.Alzade
Offline
Server: Lakshmi
Game: FFXI
user: Areint
Posts: 3
By Lakshmi.Alzade 2019-03-07 11:31:43
Link | Quote | Reply
 
I started looking at this. I have a very small sample size, so take this all with a grain of salt.

Also some of my observations breakdown for JSE Necks +1 (I've only seen one so I haven't been able to dive deep yet).

Looking at the value the op gave (for now, I am calling byte 1 the left most byte):
03 83 00 00 78 2D 64 03 CC 00 00 00

03 83
The first two bytes are either 00 00 for weapons/necks that don't have a path yet, or 03 83 otherwise. I haven't seen any other values in this spot yet nor do I know what they mean. Maybe some sort of indication on how to interpret the rest of the data?

00 00
Bytes 3 and 4 have always been 00 00 for me.

78 2D
Bytes 5 and 6 seem to increase as you feed RP to the weapon (by 0x28 per heroism crystal). Also seems to reset upon rank up. We might be able to use the first of the two bytes to determine a path. The first two bits of this byte seem to be a number that could be mapped to a path (A = 0, B = 1, C = 2). In the example (0x78 & 0x3) == 0 which would be path A (all necks are path A).

64
Byte 7 seems like it might be tied to rank. (0x64 >> 0x2) == 0x19(25). This has worked for the NQs and +2s I have seen, but not the only +1.

03 CC
Bytes 8 and 9 remain a mystery. They may be tied to to the actual augments. They don't change as the item increases in rank, but they differ between different types of items.

00 00 00
Bytes 10, 11, and 12 have always been 00 00 00 in the samples I have.

Again, my sample size is very small so my guesses here could be completely wrong.
 Lakshmi.Byrth
VIP
Offline
Server: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6137
By Lakshmi.Byrth 2019-03-07 11:48:19
Link | Quote | Reply
 
If you edit the bytes, you can map it out. Iirc you are right that the first four bytes are a header indicating the encoding system used by the rest of it.

Extdata.lua should have the approximate structure.
 Lakshmi.Alzade
Offline
Server: Lakshmi
Game: FFXI
user: Areint
Posts: 3
By Lakshmi.Alzade 2019-03-11 20:57:32
Link | Quote | Reply
 
I haven't had much time to look at this again until today. I do have some more information though.

The rank calculation I gave last time can work for +1 items if you drop the MSB off of the result (again, I've only seen one +1 so this could be wrong).

Byte 9 (CC in the original example) seems to be tied to the augments. I'm calling it the augment id. It can be used to look up augments from a table (as seen here).

Augment numbers/percentages need to be looked up or calculated based on the current rank of the weapon. Unfortunately they don't seem to grow uniformly so I am having a hard time calculating the values without using lookup tables.

I'll take a look at extdata.lua soon. I don't have too much free time for this.
[+]
Offline
Posts: 64
By Mafai 2019-04-03 12:28:50
Link | Quote | Reply
 
Have you tried adding....
Code
[3] = decode.Augmented,


to make decode.Equipment look like this?
Code
function decode.Equipment(str)
    local rettab
    local flag_1 = str:byte(1)
    local flag_1_mapping = {
        [1] = decode.Enchanted,
        [2] = decode.Augmented,
        [3] = decode.Augmented,
        }
    if flag_1_mapping[flag_1] then
        rettab = flag_1_mapping[flag_1](str:sub(1,12))
    else
        rettab= decode.Unknown(str:sub(1,12))
        rettab.type = 'Equipment'
    end
    if str:byte(13) ~= 0 then
        rettab.signature = tools.sig.decode(str:sub(13))
    end
    return rettab
end


I doubt this would work, but this would at least get the equipment into the decode method for equipment, rather than unknown. You never know, you may get lucky and the current code may support the new augments.
Log in to post.