Age 31
Male
Seen June 15th, 2020
Posted February 8th, 2019
416 posts
7.5 Years
Spoiler:
byte 0
80 heals infatuation
40 forces to apply to first pokemon (no selection)
20 is dire-hit (up to 30)
1-f is increase attack battle stat by the given value
 
byte 1
1-f is increase speed battle stat by given value
10-f0 is increase defence, in the same manner
 
byte 2
1-f is increase special attack (note: x special raises only special attack)
10-f0 is increase accuracy
 
byte 3
80 is guard-spec 
40 for level up
20 for clear sleep
10 for clear poison
8 for clear burn
4 for clear ice
2 for clear paralyze
1 for clear confusion
 
byte 4
1 is up HP EV
2 is up Attack EV
4 means heal HP
8 means heal PP
10 means only to selected attack (select made by GUI choice)
20 means increase max PP
40 means revive and heal
80 means it's an evolution stone
 
when 40 and 4 are set, item only heals fainted pokemon
4 and 8 are mutually exclusive, you cannot heal PP and HP at the same time. 4 takes precedence over 8. 
 
byte 5
0x80 is the change happiness when 200+
0x40 is the change happiness when 100-->199
0x20 is the change happiness when -99
0x10 is the increase PP to max on selected attack
0x08 special defense ev up
0x04 special attack ev up
0x02 speed ev up
0x01 defense ev up
 
byte 6 
recovery value for Potion-like items,
increase in EV for EV-increasing items.
 
PP restoring items have a maximum of 7f
For health restoration, ff means max health, fe means half max health, fd is used by rare candy (only increase with level up)
 
byte 7
happiness increase/decrease for happiness on the range of 0-99
 
byte 8
happiness increase/decrease for happiness on the range of 100-199
 
byte 9
happiness increase/decrease for happiness on the range of 200-255
 
bytes 7 to 9 are signed bytes, meaning that FF = decrease of 1 happiness
I just wanted to point out that these are bit fields...

Its not if byte 0 has a value of 80, its if bit 0 of byte 0 is 1 (or on, or true or however you wanna say it)...

I'm sure this is understood by most, but some may have missed it...

ALSO, if byte 6 is not needed, it is not present, byte 7 becomes byte 6, and so on. Same with bytes 7 8 and 9. they are all not required and only the needed ones are placed at the end of the first 0-5 bytes (in the described order).
SOOO if you are programaticly checking which items increase happiness, keep in mind that many times byte 6 will be the 0-99 happiness byte.