DiabloSaver Version 1.08.00
For Diablo v1.07 / v1.04 / v1.00 and Hellfire v1.01 / v1.00
Instructions and Information Key, 06/15/00

Produced and Updated by moe SAINT EverGreen
AlterNative LABs Diablo Archive ( http://come.to/diablosight )
Check often for the latest version.
Email evergreen@lovemail.com to receive email about latest updates.

DiabloSaver's Purpose and Abilities :

1) View player attributes and equipped items.
   Check for cheating players with hacks and dupes.
   Highlights Players Listed on the Honorable Player List.
   DiabloSaver shows the Unique Item Number of all equipped items.
   You don't have to ever use Save/Restore to do this.

2) Save and Restore Your Own Characters (only).
   Transfer characters from Single Player to MultiPlayer, 
   from any Windows(/NT) computer to any other Windows computer. 
   Note: You cannot load a character in a game with other players.
   
3) Fix Corrupted Characters

4) Load a few basic 'non-cheating' modifications to the game.
   Anti-Crash, God Mode vs AutoKill, Play Off Harddrive, etc.
   NEW: LOADS DIABLO MOD .DATS (fun custom versions of Diablo).
   
5) Computer Name Independence and Display
   DiabloSaver's .CHA files do not depend on your computer name,
   unlike Diablo's .drv files.
   In the latest version, I have now added your computer name
   to the header of the .CHA file, for information purposes only.
   The computer name in the .CHA file is always ended 
   with a EOF char (ASCII 26 / HEX 1A).
   Type go to a DOS prompt and put in "TYPE CHARNAME.CHA"
   (where CHARNAME is your character's name)
   and you will see your Computer Name the last time you saved.
   The About Box also now shows your current Computer Name.
 
6) In Hellfire, DiabloSaver does not yet check for cheats/hacks/dupes,
   nor does it check the Honorable Player List,
   but it does show the equipment and stats for all players,
   to let you make your own decisions.

Installing DiabloSaver :

1) Extract DiabloSaver.exe into any directory.
   I make a subfolder in my Diablo folder for this.

2) Run it at any time.

3) Load a Diablo Game to use DiabloSaver.


Operating DiabloSaver : 

1) View any characters in the current game :
   Alt-Tab to DiabloSaver, 
   Hit Refresh to update the game data, (Just Added an Automatic Refresh!)
   Choose View, and the character name.
   Alt-Tab to Return to Diablo.
   If you View your own character, all of your items will display.
   If you View another's character, you will see OK on legit attributes
   and a tilde and the attribute on any hacked attributes,
   unless you change the default options (see DiabloSaver.ini below).

2) Log your character or other characters to text files.
   Log will place your character in a printable file, "CharacterName.txt".
   It will list the items of other characters in a file, "DiabloSight.log".
   If you wish to log other people's entire characters,
   use /text on the command line, when running DiabloSight.

3) Save your active game character :
   Alt-Tab to DiabloSaver 
   Hit Save, 
   Choose your filename (defaults to (name).cha).
   Alt-Tab to Return to Diablo.

4) Load a character file into your active game :
   Note: You cannot load a file in a game with other players.
   Alt-Tab to DiabloSaver
   Hit Load, and choose the filename.
     Warning : Do not load improper or corrupted files! .CHA only.
   Choose which sections to load :
     Statistics (except name), or Equipment, or Inventory, or Belt.
   Alt-Tab to Return to Diablo.
   If you change Statistics or Equipment,
     Re-Equip your weapon first to stabilize Diablo.
   If you change Statistics and Experience,
     Go kill a monster to stabilize experience.
   Warning : Changing your character's class 
     can cause the game to crash,
     but usually the change remains after the crash.

5) Transfering/Converting between Single and Multi Player

   Choose your Single Player character.
   Save the Game, 
   then Sell all of your items to the townfolk,
   so that you only have potions and gold.
      Why? 
      Most items (except uniques and potions) 
      will morph into something else
      when moved between Single and Multi Player,
      and single player quest items are cheats in multiplayer games.
   Alt-Tab and Choose Save (name the file, etc.)
     
   Now create a MultiPlayer character 
   with the same name and the same class (important).
   
   Go Into Ipx mode, and Create a normal game,
   Alt-Tab and Choose Load (and the previous file name you used).
   Hit Ok to Load all,
   and Alt-Tab back to Diablo.
   Wallah! You have a new character.

   Remember to stabilize your character as stated above.

   If you do not sell off your items first,
   you may see rings morph into plate armor, etc.
   The Durability and Charges will not change,
   therefore you can have Plate with corrupted attributes
   like 0/0 durability from a ring,
   and you can get a Staff of Healing with No charges.

   Just sell off the your items first, 
   and buy new ones when you have finished the transfer.
   At best (instructions completely followed)
   you will have that character come across just fine,
   with enough money to suit up with whatever you need.

   When you move from single to multi and back again,
   just keep a different set of weapons in each game,
   and only restore the character attributes.

   Save first, (say in Single)
   go to the next game, (say in Multi),
   Restore Only the Character Stats,
   then the games should keep their own separate equipment.

6) Correcting a Character with Corrupted Inventory
   Just Save Character and then Load Character.
   You can also use the Fix Hacks Option below.

   If Diablo crashes when entering the character selection screen,
   try using the AntiCrash in Options, after loading Diablo,
   but before going to the character selection screen.

7) Restarting the same Character Account at Level One
   Create a new level one character with the same class.
   Save this character to a .CHA file. (Like Warrior.cha).
   Load your high level character.
   Restore the new level one character file.
   Remember to Stabilize Diablo by re-equiping,
   and go kill a monster to stabilize experience.
   
8) Deleting Hacked Items and Hacked Character Attributes
   Choose Fix Hacks. This will only fix your own character.
   Only choose this if you want to write the fix to Diablo memory.
   a) delete those hacked items in inventory
      that have incorrect indestructability or too many spell charges
   b) Uniques with a hacked item type will get deleted from Equipment
      or changed into mana potions when in the pack,
      and single player quest items get deleted in a multiplayer game.
   c) deletes any invalid crash items hidden in inventory.
   d) lowers invalid high mana to the expected value.
   e) lowers invalid experience to the beginning of the valid range.
   f) sometimes using a trainer lowers experience far below level.
      If I lowered the level, more powerful players would play 
      with lower level characters. Therefore I raise the experience
      to the beginning of the valid range for that level.

   Warning: If an item you know is legit shows instead as a hack,
   then do not use FixHacks. Instead use the log function
   to get a .txt file that you can send to me by email (see top).
   If you use FixHacks, and choose Delete, it will delete the item.
   
9) Loading MODS or Additional Options
   Make sure Diablo is Running first, then Alt-Tab back to DiabloSaver.
   Any AutoLoad options or MODS will automatically be installed.
   For Extra Options Not AutoLoaded, Choose Options.
   The options for the running version of Diablo/Hellfire will show.
   Double click on an option to toggle it's state.
   If an option affects the state of another, use Refresh Hacks to update.
   All options remain in memory until explicitly turned off,
   or until Diablo shuts down.
   
10) Using the Auto HotKey settings.
    Book and Staff Hotkey spells are supported but not Scrolls.
    The auto hotkey setting will store a set of spells for a char
    (based on the current char's spell settings)
    whenever the character data is Refreshed.
    Any time you change your spells in Diablo,
    those spell settings will now automatically continue on
    to the next game.
    But you must Alt-Tab back to DiabloSaver
    and hit Refresh to store changed settings for that char.
    If no character name is available at Refresh and no spells are set
    then the last stored spell settings are loaded.
    
11) Converting Diablo .cha's to Hellfire .hfc's and visa versa
    Just create a new character in the new game,
    and load the old character file that you want transfered.
    DiabloSaver will Only Load Stat's, not gold nor items,
    no matter what you select on the load screen.
    When loading from Hellfire to Diablo,
    you can only load the base character classes
    (Warrior, Rogue, Sorceror), and all illegal spells
    will get stripped from the character.
   

How DiabloSaver Works :

DiabloSaver for v1.07 reads Diablo's memory to read the character,
and writes to Diablo's memory to write the character.
Therefore you do have the ability to screw yourself up,
if you write invalid data into memory.
Also, if you don't re-equip your character
after restoring, you can crash diablo by moving.

DiabloSaver for v1.04 actually places a hack into Diablo code,
very similar to what Raymond's trainer does,
in order to temporarily freeze the Diablo Memory.


DiabloSaver.ini
   DiabloSaver will read a text file called DiabloSaver.ini
   for various command options, one command per line.
   DiabloSaver will also read these commands from the command line
   but each with a preceeding slash "/" (i.e. diablosaver.exe /single )
   Commands:
   
/ini=filename.ini
  load command options from filename.ini (command line only)
  especially useful to specify different commands for MODS.
  If present, DiabloSaver.ini will not be read.

single
  never show anybody else's characters 
  (default show all characters)
  
allitems
  show all of other people's items 
 (default show only other's hacked items)
 
text
  log other people's characters to charname.txt files 
  (default, only log your own character to .txt file)
  
info
  always show the special item info used to determine hacks.
  (default, only show this info on hacked items)
  
autoload
  autoload any optional modifications set for autoload in .dat
  (default in exe, do not autoload anything)
  Note, the included DiabloSaver.ini turns this option on, 
  making autoload default to on.
  
dat=filename.dat
  load MOD/options from filename.dat

HonNoPk=filename.txt
  Set the pathname of the Honorable Player list to filename.txt
  (default, HonNoPk.txt)
  If you plan to modify the player list,
  note that the list actually starts at "LEGEND:",
  and continues to the end of the file.
             
nocheck
  never check for hacks/dupes/etc
  useful for various modifications of diablo and hellfire
  which can't be checked for hacks, so why bother.  
  
DiabloName=windowname
HellfireName=windowname
DiabloVer7Str= the 8th through 12th letters of the version string for v1.07
HellfireVer1Str= the 10th through 14th letters of the version string for v1.01
  By changing these values you should be able to use this program
  with various modifications of diablo and hellfire.
  The windowname shows in the task bar on the bottom of Win95/98/NT.
  The Version String shows on the bottom left corner of the first menu of the game.
  Most likely you should use the nocheck option above with any game modification.
  [ see purgsaver.ini for an example that can be copied over diablosaver.ini ]

DiabloDupes.ini
   This file lists all item id's you want to check as common dupes.
   Remember that even common dupes can come from legit sources.
   No need to list obvious hacked uniques in this file.
   The format is xx:xxXXxxXXxx:xx for Weapons/Armor,
             and xx:xxXXxxXXxx:Ux for all others.
    representing 05:0403020100:(168 / U8),
    and directly matches the DiabloSight.log and CharName.txt id values.
    

How AutoLoad of Diablo Modifications works:
The first time you press Refresh (or any time you choose Options)
DiabloSaver will make sure any Modications set to autoload
are still on (if they are not on, it turns them on).
This Refresh also occurs if you run DiabloSaver after Diablo.
AutoLoad only happens if you have autoload turned on as an option.
You can remove the autoload line from DiabloSaver.ini to disable this,
or you can remove autoload from a particular modification
in the DiabloSaver.dat file.
If you turn off a modification in the options menu, 
it will not autoload again until DiabloSaver is restarted.
If you restart Diablo and Refresh before entering a game,
the autoload modifications will be activated.


Problems with Diablo/DiabloSaver Crashing :

This occurs because of various bugs in the operating system,
and usually only occurs rarely when storing a character.

You won't trash your character this way.
At the worst, you will crash Diablo 
(if you don't re-equip/drop your weapon)
and have to restart it,
or get stuck having regain all your experience
even though you have a high level character,
or get stuck naked and have to play around to find new weapons.

If you have problems restoring a character
try restore the character partially,
restoring the inventory first, moving to new game,
and then restoring the stats.


Problems with Corrupting Diablo Characters :

If you load corrupted data into Diablo
you may discover a method to trash your own computer with this. 
moe has no sympathy for another's messyness.


Cheating with DiabloSaver :

People can still find ways to cheat with this,
but they have plenty of better cheat programs for that.

Per user agreements,
not to be used for cheating on Battlenet.


DiabloSaver's Key for Showing Character Attributes :

*HONORABLE = The Player Name was found on the Honorable Player List
***CHAR HACKS*** = Player has Hacked Attributes
**EQUIP HACKS*** = Player has Hacked Equipment
**SPELL HACKS ** = Player has Hacked Spell Info
** GOLD HACKS ** = Player most likely has Infinite Gold (95000)
** EQUIP DUPES ** = Player Uses Exact Duplicates to Self/Another's Equip
*? COMMON DUPES ?* = Player uses powerful items on Common Dupe List
** EQUIP DUPES *PLUS* ** = Player Uses Exact Duplicates and Common Dupes
??LEVEL HACKS ?? = (buggy) possible invalid experience or level info
?? PACK HACKS ?? = (buggy) possible hacked items in pack inventory
?? PACK DUPES ?? = (buggy) possible common dupes in pack inventory

~ = Hacked Attribute/Item, having values outside of possible ranges.
# = Definate Duplicate in a reliable area of memory
? = duplicate of an item in memory that May Not be Reliable Info.
> = Common Duplicate, most likely duped, but very rarely legit
* = Common Duplicate, AND dupe in Equip data (Reliable)
+ = Common Duplicate, AND dupe in pack data (unreliable)
+999 = Hacked Attribute with numeric value too large to display on screen.
*** Ears! = count of ears in inventory (other than their own ears).

Slot = Game Slot Number from 0 to 3.
Gold () = count of gold in inventory (as opposed to game's hackable count).
Base = Base Attribute before any modifications (except elixers/shrines).
Now = Life/Mana Attributes with losses from attack, spell use.
Modified = Base and Now Life/Mana Attributes modified by Equipped Items.
Mods = Difference between Base Life/Mana and Expected Values
   (Mods should only show a negative value for mana due to shrines,
   a negative value for life due to shrines and black death,
   and sometimes a positive value for life due to the imposing shrine).
Mods () = Expected Values for Base Life/Mana used to determine Mods.
Mods Total, adding the life and mana mods together displayed under Mods.
   Since the Imposing shrine subtracts mana to add to life,
   a positive value usually indicates hacked or corrupted character data.
Spell Key : Spells Show with Base Spell Level and Spell Name.
   ~~ = Spells Left Out of Game (they have no game effect).
   [] = Character Skills Not Available as Spells
   {} = Scrolls/Staffs Not Available as Spells
Town/S/E/N/W = Absolute Character Position in Game
Relative = Relative Character Position to Your Character


Warning!!! IMPORTANT! Please Read!
Cheating?! Common Dupes vs. Pack Dupes vs. Equip Dupes vs. Hacks?!

   DO NOT ACT LIKE A JERK JUST BECAUSE THIS VIEWER SHOWS DUPES!!!

   Diablo can actually produce Duplicate Items! Even in the same game! 
   Most often I have seen diablo duplicate potions. This is common!

   Cheaters can duplicate other people's items in the same game!

   "Common Dupes" can always also be found Legitly, though rarely!
  
   When people move their equipment in their pack to ground or equipment,
   Diablo often Does Not Refresh Inventory Pack Memory of other players!
   This can cause DiabloSaver to show Incorrect Dupes or Hacks in pack,
   while Equipped will almost always show correctly.
   
   Due to packet loss and various Diablo BUGS
   Sometimes Diablo does not update Equipped Items when people resurrect!
   Although this most often happens to cheaters using No Drops At Death,
   It CAN ALSO Happen to Anybody, though more rarely!
   
   The point of showing dupes is for a warning of "POSSIBLE" cheating,
   to help people who trade items in "PUBLIC" games,
   where cheaters commonly hang out, pretending to be legit.
  
   Two identical equipped commonly duped obsidian rings of the zodiac
   almost guarantees you play with a cheater/duper, or a friend of one.
   Two identical equipped rings always show as dupes, and Probably are.
   
   But a commonly duped Kings Sword of Haste, can still be found Legit.
   
   DO NOT ACT LIKE A JERK JUST BECAUSE THIS VIEWER SHOWS DUPES!!!
  
   I MAKE MISTAKES, TOO!!! BUGS MAY EXIST IN THIS PROGRAM!!
   
   Do you know how many people rigorously test this program?
   How many help me to catch any bugs in the latest version?
   
   Answer: Did you help me? Have you rigorously tested it?
   Did you send me the last bug you found?
   When was the last time you emailed me?
   How many people actually use this program?!
   
   I recently discovered I had the Bow of the Dead and Celestial Bow
   showing incorrectly as hacks. Only 1 (ONE!?) person found this.
   The error has existed for 3!!! (THREE!!) MONTHS!!!
   
   (I never even saw one of those items in all that time.)
   
   There is NO WAY to test every single possible item,
   too many combinations exist. That is what makes legit dupes rare.
   
   USE YOUR COMMON SENSE!
   
   If a player shows as a hack, LOOK for the Tilde's! Judge for Yourself!
   Check out the item. The stats show correctly, so Judge for Yourself!

   USE YOUR COMMON SENSE!
   I MAKE MISTAKES, TOO!!! BUGS MAY EXIST IN THIS PROGRAM!!
   
   sorry, about that rant, above,
   but those of you who already knew all that,
   might be surprised at how many people email me 
   about jerks who use this program like it makes them god or something.
   

DiabloSaver's Key for Showing Item Attributes :

The Unique Item ID Number : 

   Where DiabloSaver shows the items,
   it also shows the internal Unique ID#
   used by Diablo to determine Item attributes
   and used to detect duplicates in the game.
   
   You will never see this ID # in Diablo
   (From a character's point of view, such a thing wouldn't exist.)
   but it does affect game play (per the duplicate item destruction),
   and per the commonality of exploiting duplicated items.
   
   This ID is also checked against a list of commonly duplicated items,
   in a file named, DiabloDupes.ini

   (These Numbers represent Hexadecimal Values).

   On Weapons and Armor, 
   05 : 04 03 02 01 00 : 168
   
   On All other Items
   05 : 04 03 02 01 00 :U 8
   
   Where the number represents the relative memory location
   of the item data, as Diablo stores it in the character memory.
   
   My hex reference at the end of this file gives more information.
   
   '~' indicates any detected hacked items,
     (Incorrect Indestructability, Too many Charges, or Invalid Uniques)
   
   When (05 04 03 02 01 00 168/8) all match exactly to another item:
     
   '#', indicates Exact Duplicate in Equip data (Very Reliable)
   '?', indicates Exact Duplicate in Pack data (unreliable data)
     
   '>', Commonly Duplicated Item (per DiabloDupes.ini)
   '*', Common Duplicate, AND dupe in Equip data (Reliable)
   '+', Common Duplicate, AND dupe in pack data (unreliable)

   Diablo detects duplicates if any character in the same game
   has two (or more) of exactly the same item (dupe)
   on their person as any character in the same game,
   Those dupes show with '#', '*', '?', or '+'.

   Bugs in diablo may incorrectly show dupes in pack memory
   when people replace their equipment,
   and when people change levels and enter game,
   or due to lag and UDP packet loss.
   

The Item Attributes:

2H = 2 Handed Sword

For Weapons,
m<x_d(n) shows hits, m to x, durability, d, 
         and normal maximum durability of item type (n).
m<x_I represents an Indestructable Item.
m<x_I(n) represents an Item with Hacked Indestructability.

For Armor,
a_d(n) shows armor class, a, durability, d, 
       and normal durability of item type (n).

For Staffs (Staves),
 Cm(X) = Magic Charges, m, and maximum charges (X) based on Spell.
         If m > X or m = 255, then the Staff has Hacked Charges

+/- %th = +/- % to hit (+25% to hit)
+/-  %h = +/- % hits (damage) (+25% damage)
+/-   h = +/- hits (damage) (+6 damage)
+/- %ac = +/- % armor class (+10% AC)

    +ac = Non-Armor that Adds to Armor (Engagement Ring)
  +#<#h = Additional Range of Hits (damage) (thorns)
+200%hD = + 200% Hits (Damage) to Demons  
  #<#Lh = Additional Lightning Hits (damage)
  #<#Fh = Additional Fire Hits (damage)
    +Fh = Burning Item
 -/+ eh = -/+ enemy hits (-6eh = absorbs 6 hits)

   -L = Constricting
+/- L = +/- Life (+20 hit point)
+/- a = +/- all attributes (+10 all)
+/- s = +/- strength
+/- m = +/- magic
+/- d = +/- dexterity
+/- v = +/- vitality

   0bm = 0 Base Mana (No Mana while equiped)
+/- bm = +/- Base Mana   

+/- %ra = +/- % resist all
+/- %rm = +/- % resist magic
+/- %rf = +/- % resist fire
+/- %rl = +/- % resist lightning

+/- sp = +/- spell level (archangel shows +2sp)
   
  +sh = Random Steal Hits (Steal Life Like Undead Crown)
+3%sh = Steal 3% Hits (Life)
+5%sh = Steal 5% Hits (Life)
  KT  = Knocks Target back
  QA  = Quick Attack
  FA  = Fast Attack
  FA2 = Faster Attack
  FA3 = Fastest Attack (Haste)
  FR3 = Fastest Recover (Harmony)
  FB  = Fast Block
  AT  = Absorb Traps (half damage)
+3%sm = Steal 3% Mana
+5%sm = Steal 5% Mana

+/- %Lr = +/- % Light Radiation

 R#m#d#s = Requirements, magic, dexterity, strength
 
 (#g) = Gold Pieces
 
No codes exist for Puncturing/Piercing.


Hacked Item Attributes:

   Hacked Items will have a list of values in parens (),
   to help show hidden hacked item attributes.

   c = hacked magical spell charges
   d = hacked durability
   sp = single player unique
   ? = unable to identify unique
   L = Level of Hacked Item (byte 4, item origin level minus upper bits)
   u = usage type of hacked item (byte 8, encoded item type)
       Items with high level codes, default to showing their usage.
       0 U0 Consumables, Elixer/Book/Scroll/Potion
       1 U1 Sword   
       2 U2 Axe     
       3 U3 Bow     
       4 U4 Blunt Weapons, Club/Mace/Flail/Hammer
       5 U5 Shield  
       6 U6 Armor, Leather
       7 U7 Helm    
       8 U8 Armor, Mail
       9 U9 Armor, Plate
      10 UA Staff   
      11 UB Gold    
      12 UC Ring    
      13 UD Amulet  
   g = cost in gold (may be hacked due to impossible cost)
   e = equip type (byte BD, Equipment Placement)
   k = class type (byte BE, Class)
   m = magic type (0 = not magical, 1 = magical, 2 = unique)
   s = spell type (0 = no spell, 1 = firebolt, etc..)
   
   
DiabloSight Log Key (for DiabloSight.log) :
 i = indestructable
 * = indestructable hack
 ~ = hack
 (Also see above for the the Hacked Item Attributes)


Checking for Dupes and Hacks with DiabloSaver :

In Diablo, only a few unique rings, amulets or helmets exist.
Most hacked Uniques have an ID similar to the ones below:
03 : xx 00 00 00 xx : xx  or  02 : xx 00 00 00 xx : xx 

When using DiabloSaver to check other characters
in games labeled Legit, you will see many people enter
that have Gnarled Root Helmets or Lightforge rings,
or they will have exactly the same obsidian zodiac ring on both hands.

In testing,
I have dared people with the same ID # on two obsidian zodiac rings
(who also claimed they found them legit)
to drop their rings on the ground and pick them back up.
Twice people have actually fallen for this
to prove their legitimacy,
only to see one of their rings destroyed,
"duplicate item detected."
(Some people will drop different rings to trick you.)

Note that Diablo can actually produce Duplicate Items
even in the same game (most often I have seen duplicated potions).
However, more than 2 trillion possible items exist,
and that means a trillion unique high level items.
I do not recommend equiping two rings that Diablo
created as duplicates, because they will destroy
each other when a monster kills you, anyway.


Checking for Cheated Attributes with DiabloSaver :

DiabloSaver has several values that help you check for cheats:
Shrines and Mods are two, the others show with '~' or '+'.

Shrines tells you the number of shrines a character would
have had to visit to get their raise their stats.
(2 Elixers = 1 Shrine value). 
If a level 20 character shows 150 shrines,
they most likely cheated to raise their attributes.
After Shrines a number in parentheses ()
shows the total elixers needed to raise their stats.
Note : At level 26 and above characters can buy elixers,
and many players will max their attributes quickly.

Mods shows the difference of the expected
Life and Mana Total from the actual Base Total.
A small negative number may indicate loss of base life
due to Black Death Zombie. A higher negative number may 
indicate loss of mana due to a shrine. But a very high positive 
number will usually indicate a cheater who has raised their
life or mana attributes. Note that the Imposing shrine moves
a percentage of mana to life, giving a positive life value
that should correspond to a negative mana value.


More Information about the Unique Item Number :
(note, this program displays the item number in reverse order, 
with 05 first, then 04, 03, 02, 01, 00, then either 168 or 08)

As Extracted from ItemHex.txt.
Note that I subtracted the 20h ITM header length from these values.

Bytes 00 - 04 : Unique Item Number (Cazasombras: 'Item Generator Seed') 
XX XX XX XX XX
Diablo Uses this Number to Send to a Pseudo Random Item Generator.
The Same Code usually generates the same item and same stats,
But some exceptions exist, depending on locations 05 and 168.
If a non-unique item does not match codes with its originator,
and then it will get re-generated when it re-enters the game world.
Somebody could use this with a Non-Legit-Checking program 
to search in other player's inventories for hacks, duplicates,
and commonly duplicated items, such as the King's Sword of Haste.

Byte 04 : Item Origin Level
This byte appears to affect the Grade of Items Generated.
01 - 1E Level 1 to Level 30 Item Drops/Offers
1F - 32 Level 31 to Level 50 Item Offers from Wirt
     3F Most Hacked Unattainable Godly Items
Items dropped by Unique Monsters also have the upper two bits set,
C1 - DE Level 1 to Level 30 Items dropped by Unique monsters
Items created on a Rack or on the Ground have the second upper bit set,
41 - 5E Level 1 to Level 30 Items Created On Rack/Ground

Byte 05 : Item Origin Code 
     Note : Item Type Generated by 00-04 depends on Byte 168/08
00 Boss Treasure Items (except consumables, Boss bits in origin set).
01 Treasure Items (Amulet, Ring, Armor, Weapons, Gold).
02 Unique Dropped by Unique (Grandfather, Royal Circlet)
03 Unique Dropped by NonUnique or Quest (Optic Amulet, etc)
04 Smith Shop Normal Items (Non Magical Sabre)
08 Smith Shop Item (Any Weapon/Armor, Not Amulets nor Rings)
10 Wirt Shop Item (Powerful Flail, Godly Shields)
20 Witch Shop Magic Item (Book, Staff, Scroll, Mana)
40 Healer Shop Magic Item (Rejuvenation, Elixer)
Ears have the First Letter of the Name here.

Byte 08: Encoded Item Type
00 Elixer (Book, Scroll, Potion), 01 Sword, 02 Axe, 03 Bow
04 Mace (Flail, Hammer), 05 Shield, 07 Helm, 0A Staff
06 Leather Armor, 08 Mail Armor, 09 Plate Armor
0B Gold, 0C Ring, 0D Amulet

Byte 168 : Equipment Name Type
Some Normal Equipment
30  Cap                   48  Small Shield          84  Morning Star
31  Skull Cap             49  Large Shield          85  War Hammer
32  Helm                  4A  Kite Shield           86  Spiked Club
33  Full Helm             4B  Tower Shield          87  Club
34  Crown                 4C  Gothic Shield         88  Flail
35  Great Helm            71  Dagger                89  Maul
36  Cape                  72  Short Sword           8A  Short Bow
37  Rags                  73  Falchion              8B  Hunter's Bow
38  Cloak                 74  Scimitar              8C  Long Bow
39  Robe                  75  Claymore              8D  Composite Bow
3A  Quilted Armor         76  Blade                 8E  Short Battle Bow
3B  Leather Armor         77  Sabre                 8F  Long Battle Bow
3C  Hard Leather Armor    78  Long Sword            90  Short War Bow
3D  Studded Leather Armor 79  Broad Sword           91  Long War Bow
3E  Ring Mail             7A  Bastard Sword         92  Short Staff
3F  Chain Mail            7B  Two-Handed Sword      93  Long Staff
40  Scale Mail            7C  Great Sword           94  Composite Staff
41  Breast Plate          7D  Small Axe             95  Quarter Staff
42  Splint Mail           7E  Axe                   96  War Staff
43  Plate Mail            7F  Large Axe             97  Ring
44  Field Plate           80  Broad Axe             98  Ring
45  Gothic Plate          81  Battle Axe            99  Ring
46  Full Plate Mail       82  Great Axe             9A  Amulet
47  Buckler               83  Mace                  9B  Amulet

Some Unique Items
06  Cleaver               0B  Ring of Truth         1F  Griswold's Edge
07  The Undead Crown      0D  Harlequin Crest       20  Lightforge
08  Empyrean Band         0E  Veil of Steel
0A  Optic Amulet          1C  Arkaine's Valor

Some Novelty Items
09  Magic Rock            11  Black Mushroom        15  Blood Stone
0C  Tavern Sign           12  Brain                 16  Map of the Stars
0F  Golden Elixir         13  Fungal Tome           17  Heart / Ear
10  Anvil of Fury         14  Spectral Elixir       21  Staff of Lazarus

Byte BD : Equipment Placement (Must Match Byte BE and 8)
01 One-Handed, 02 Two-Handed, 03 Body Armor, 04 Head Gear 
05 Ring, 06 Amulet, 07 Non-Equipment 

Byte BE : Class (Must Match Byte BD And 8)
01 Weapon, 02 Armor, 03 Anything Else, 04 Gold

