Difference between revisions of "Jay Fenlason's Hack"

From NetHackWiki
Jump to navigation Jump to search
(Scrolls: split unlike rows)
(added addition information--hack121)
Line 7: Line 7:
 
The exact content of the original Hack is little known.  Development began shortly after the 1982 USENIX conference in Boston, MA where the Michael Toy and Ken Arnold (the authors of the then closed-source [[Rogue (game)|Rogue]]) spoke. The only publication of the original Hack was on the 1983 or 1984 USENIX software distribution tape.  Three derivatives are known to exist:
 
The exact content of the original Hack is little known.  Development began shortly after the 1982 USENIX conference in Boston, MA where the Michael Toy and Ken Arnold (the authors of the then closed-source [[Rogue (game)|Rogue]]) spoke. The only publication of the original Hack was on the 1983 or 1984 USENIX software distribution tape.  Three derivatives are known to exist:
  
* "hack121" is a DOS binary available at [http://www.juiblex.co.uk/nethack/front.html Ali Harlow's website] as [http://www.juiblex.co.uk/nethack/source/hack121.zip hack121.zip].  No source code for this program is known to exist.
+
* "hack121" is a DOS binary available at [http://www.juiblex.co.uk/nethack/front.html Ali Harlow's website] as [http://www.juiblex.co.uk/nethack/source/hack121.zip hack121.zip].  No source code for this program is known to exist. See also [http://groups.google.com/group/net.sources/browse_thread/thread/29f22ed9eb5331ec# this newsgroup posting].
  
 
* PDP-11 Hack was published on [[Usenet]] in February 1985, and a port of this to a Unix clone called PC/IX was published in May.  They are archived at Google Groups at:
 
* PDP-11 Hack was published on [[Usenet]] in February 1985, and a port of this to a Unix clone called PC/IX was published in May.  They are archived at Google Groups at:
Line 48: Line 48:
 
These are given in the order of their appearance in the code; it will be seen that the lists are quite similar.
 
These are given in the order of their appearance in the code; it will be seen that the lists are quite similar.
  
{| class="wikitable"
+
{|class="wikitable"
|-
+
!Hack121  
! Hack121 !! PDP-11 Hack !! Hack 1.0
+
!PDP-11 Hack  
 +
!Hack 1.0
 
|-
 
|-
|[[bat]] (b)||bat (B)||bat (B)
+
|[[bat]] (b)
 +
|bat (B)
 +
|bat (B)
 
|-
 
|-
|[[lizard]] (l)||[[gnome]] (G)||gnome (G)
+
|[[lizard]] (l)
 +
|[[gnome]] (G)
 +
|gnome (G)
 
|-
 
|-
|[[goblin]] (g)||[[hobgoblin]] (H)||hobgoblin (H)
+
|[[goblin]] (g)
 +
|[[hobgoblin]] (H)
 +
|hobgoblin (H)
 
|-
 
|-
|[[jackal]] (j)||jackal (J)||jackal (J)
+
|[[jackal]] (j)
 +
|jackal (J)
 +
|jackal (J)
 
|-
 
|-
|[[kobold]] (k)||kobold (K)||kobold (K)
+
|[[kobold]] (k)
 +
|kobold (K)
 +
|kobold (K)
 
|-
 
|-
|pickpocket (p)||[[leprechaun]] (L)||leprechaun (L)
+
|pickpocket (p)
 +
|[[leprechaun]] (L)
 +
|leprechaun (L)
 
|-
 
|-
|[[giant rat]] (r)||giant rat (r)||giant rat (r)
+
|[[giant rat]] (r)
 +
|giant rat (r)
 +
|giant rat (r)
 
|-
 
|-
|[[acid blob]] (a)||acid blob (a)||acid blob (a)
+
|[[acid blob]] (a)
 +
|acid blob (a)
 +
|acid blob (a)
 
|-
 
|-
|evil eye (e)||[[floating eye]] (E)||floating eye (E)
+
|evil eye (e)
 +
|[[floating eye]] (E)
 +
|floating eye (E)
 
|-
 
|-
|hurkle (h)||[[homunculus]] (h)||homunculus (h)
+
|hurkle (h)
 +
|[[homunculus]] (h)
 +
|homunculus (h)
 
|-
 
|-
|neevil (n)||[[imp]] (i)||imp (i)
+
|neevil (n)
 +
|[[imp]] (i)
 +
|imp (i)
 
|-
 
|-
|[[orc]] (o)||orc (O)||orc (O)
+
|[[orc]] (o)
 +
|orc (O)
 +
|orc (O)
 
|-
 
|-
|[[yellow light]] (y)||yellow light (y)||yellow light (y)
+
|[[yellow light]] (y)
 +
|yellow light (y)
 +
|yellow light (y)
 
|-
 
|-
|[[zombie]] (z)||zombie (Z)||zombie (Z)
+
|[[zombie]] (z)
 +
|zombie (Z)
 +
|zombie (Z)
 
|-
 
|-
|[[giant ant]] (A)||giant ant (A)||giant ant (A)
+
|[[giant ant]] (A)
 +
|giant ant (A)
 +
|giant ant (A)
 
|-
 
|-
|[[fog cloud]] (f)||fog cloud (f)||fog cloud (f)
+
|[[fog cloud]] (f)
 +
|fog cloud (f)
 +
|fog cloud (f)
 
|-
 
|-
|robber (R)||[[nymph]] (N)||nymph (N)
+
|robber (R)
 +
|[[nymph]] (N)
 +
|nymph (N)
 
|-
 
|-
|stalactoid (s)||[[piercer]] (p)||piercer (p)
+
|stalactoid (s)
 +
|[[piercer]] (p)
 +
|piercer (p)
 
|-
 
|-
|queevolt (q)||[[quasit]] (Q)||quasit (Q)
+
|queevolt (q)
 +
|[[quasit]] (Q)
 +
|quasit (Q)
 
|-
 
|-
|[[quivering blob]] (Q)||quivering blob (q)||quivering blob (q)
+
|[[quivering blob]] (Q)
 +
|quivering blob (q)
 +
|quivering blob (q)
 
|-
 
|-
|grabber (G)||[[violet fungus|violet fungi]] (v)||violet fungi (v)
+
|grabber (G)
 +
|[[violet fungus|violet fungi]] (v)
 +
|violet fungi (v)
 
|-
 
|-
|nepto (N)||[[giant beetle]] (b)||giant beetle (b)
+
|nepto (N)
 +
|[[giant beetle]] (b)
 +
|giant beetle (b)
 
|-
 
|-
|[[centaur]] (c)||centaur (C)||centaur (C)
+
|[[centaur]] (c)
 +
|centaur (C)
 +
|centaur (C)
 
|-
 
|-
|[[cockatrice]] (C)||cockatrice (c)||cockatrice (c)
+
|[[cockatrice]] (C)
 +
|cockatrice (c)
 +
|cockatrice (c)
 
|-
 
|-
|[[ghost]] (')||[[gelatinous cube]] (g)||gelatinous cube (g)
+
|[[ghost]] (')
 +
|[[gelatinous cube]] (g)
 +
|gelatinous cube (g)
 
|-
 
|-
|[[jaguar]] (J)||jaguar (j)||jaguar (j)
+
|[[jaguar]] (J)
 +
|jaguar (j)
 +
|jaguar (j)
 
|-
 
|-
|[[killer bee]] (K)||killer bee (k)||killer bee (k)
+
|[[killer bee]] (K)
 +
|killer bee (k)
 +
|killer bee (k)
 
|-
 
|-
|viper (v)||[[snake]] (S)||snake (S)
+
|viper (v)
 +
|[[snake]] (S)
 +
|snake (S)
 
|-
 
|-
|ice ball (i)||[[freezing sphere]] (F)||freezing sphere (F)
+
|ice ball (i)
 +
|[[freezing sphere]] (F)
 +
|freezing sphere (F)
 
|-
 
|-
|giant bear (B)||[[owlbear]] (o)||owlbear (o)
+
|giant bear (B)
 +
|[[owlbear]] (o)
 +
|owlbear (o)
 
|-
 
|-
|oxidizer (O)||[[rust monster]] (R)||rust monster (R)
+
|oxidizer (O)
 +
|[[rust monster]] (R)
 +
|rust monster (R)
 
|-
 
|-
|unox (u)||giant [[scorpion]] (s)||scorpion (s)
+
|unox (u)
 +
|giant [[scorpion]] (s)
 +
|scorpion (s)
 
|-
 
|-
|teleporter (t)||teleporter (t)||[[tengu]] (t)
+
|teleporter (t)
 +
|teleporter (t)
 +
|[[tengu]] (t)
 
|-
 
|-
|[[wraith]] (w)||wraith (W)||wraith (W)
+
|[[wraith]] (w)
 +
|wraith (W)
 +
|wraith (W)
 
|-
 
|-
|snowman (S)||[[long worm]] (w)||long worm or [[wumpus]] (w)
+
|snowman (S)
 +
|[[long worm]] (w)
 +
|long worm or [[wumpus]] (w)
 
|-
 
|-
|octopus (0)||[[large dog]] (d)||large dog (d)
+
|octopus (0)
 +
|[[large dog]] (d)
 +
|large dog (d)
 
|-
 
|-
|xyloman (x)||[[leocrotta]] (l)||leocrotta (l)
+
|xyloman (x)
 +
|[[leocrotta]] (l)
 +
|leocrotta (l)
 
|-
 
|-
|faker (F)||[[mimic]] (M)||mimic (M)
+
|faker (F)
 +
|[[mimic]] (M)
 +
|mimic (M)
 
|-
 
|-
|[[minotaur]] (m)||minotaur (m)||''found at end of table''
+
|[[minotaur]] (m)
 +
|minotaur (m)
 +
|''found at end of table''
 
|-
 
|-
|[[troll]] (T)||troll (T)||troll (T)
+
|[[troll]] (T)
 +
|troll (T)
 +
|troll (T)
 
|-
 
|-
|ugod (U)||ugod (u)||[[unicorn]] (u)
+
|ugod (U)
 +
|ugod (u)
 +
|[[unicorn]] (u)
 
|-
 
|-
|xerp (X)||[[yeti]] (Y)||yeti (Y)
+
|xerp (X)
 +
|[[yeti]] (Y)
 +
|yeti (Y)
 
|-
 
|-
|phase shifter (P)||invisible [[stalker]] (I)||stalker (I)
+
|phase shifter (P)
 +
|invisible [[stalker]] (I)
 +
|stalker (I)
 
|-
 
|-
|hydra (H)||[[umber hulk]] (U)||umber hulk (U)
+
|hydra (H)
 +
|[[umber hulk]] (U)
 +
|umber hulk (U)
 
|-
 
|-
|[[vampire]] (V)||vampire (V)||vampire (V)
+
|[[vampire]] (V)
 +
|vampire (V)
 +
|vampire (V)
 
|-
 
|-
|wumpus (W)||[[xorn]] (X)||xorn (X)
+
|wumpus (W)
 +
|[[xorn]] (X)
 +
|xorn (X)
 
|-
 
|-
|rock lobster (L)||xerp (x)||[[xan]] (x)
+
|rock lobster (L)
 +
|xerp (x)
 +
|[[xan]] (x)
 
|-
 
|-
|zelomp (Z)||zelomp (z)||[[zruty]] (z)
+
|zelomp (Z)
 +
|zelomp (z)
 +
|[[zruty]] (z)
 
|-
 
|-
|[[chameleon]] (:)||chameleon (:)||chameleon (:)
+
|[[chameleon]] (:)
 +
|chameleon (:)
 +
|chameleon (:)
 
|-
 
|-
|[[dragon]] (D)||dragon (D)||dragon (D)
+
|[[dragon]] (D)
 +
|dragon (D)
 +
|dragon (D)
 
|-
 
|-
|energar (E)||[[ettin]] (e)||ettin (e)
+
|energar (E)
 +
|[[ettin]] (e)
 +
|ettin (e)
 
|-
 
|-
|floor fiend (;)||[[lurker above]] (')||lurker above (~)
+
|floor fiend (;)
 +
|[[lurker above]] (')
 +
|lurker above (~)
 
|-
 
|-
|landshark (&)||neo-otyugh (n)||[[nurse]] (n)
+
|landshark (&)
 +
|neo-otyugh (n)
 +
|[[nurse]] (n)
 
|-
 
|-
|argus (})||[[trapper]] (,)||trapper (,)
+
|argus (})
 +
|[[trapper]] (,)
 +
|trapper (,)
 
|-
 
|-
|mega-worm (M)||[[purple worm]] (P)||purple worm (P)
+
|mega-worm (M)
 +
|[[purple worm]] (P)
 +
|purple worm (P)
 
|-
 
|-
|[[demon]] (d)||demon (&)||demon (&)
+
|[[demon]] (d)
 +
|demon (&)
 +
|demon (&)
 
|-
 
|-
| || ||minotaur (m)
+
|
 +
|
 +
|minotaur (m)
 
|-
 
|-
| || ||[[shopkeeper]] (@)
+
|
 +
|
 +
|[[shopkeeper]] (@)
 
|}
 
|}
 +
  
 
=== Other monsters kept in separate structures ===
 
=== Other monsters kept in separate structures ===
Line 173: Line 291:
 
All versions of Hack and [[NetHack]] prior to [[NetHack 3.0.0]] have various monster description structures floating around in their source code, for monsters with special functions.  These are listed here, with monsters having the same function in the same row.  The large [[dog]] appears both here and in the above table because the structure in the above table is used for wild dogs, and the one shown below is used for pets.  In Hack 1.0, the shopkeeper is moved to the main monster list.
 
All versions of Hack and [[NetHack]] prior to [[NetHack 3.0.0]] have various monster description structures floating around in their source code, for monsters with special functions.  These are listed here, with monsters having the same function in the same row.  The large [[dog]] appears both here and in the above table because the structure in the above table is used for wild dogs, and the one shown below is used for pets.  In Hack 1.0, the shopkeeper is moved to the main monster list.
  
{| class="wikitable"
+
{|class="wikitable"
 +
!Hack121
 +
!PDP-11 Hack
 +
!Hack 1.0
 
|-
 
|-
! Hack121 !! PDP-11 Hack !! Hack 1.0
+
|[[vampire bat]] (b)
 +
|
 +
|
 
|-
 
|-
|[[vampire bat]] (b)|| || 
+
|shopkeep ()
 +
|shopkeeper (@)
 +
|''in main monster table''
 
|-
 
|-
|shopkeep (☺)||shopkeeper (@)||''in main monster table''
+
|[[guard]] ()
 +
|treasurer (@)
 +
|guard (@)
 
|-
 
|-
|[[guard]] (☺)||treasurer (@)||guard (@)
+
|
 +
|[[little dog]] (d)
 +
|little dog (d)
 
|-
 
|-
| ||[[little dog]] (d)||little dog (d)
+
|
 +
|[[dog]] (d)
 +
|dog (d)
 
|-
 
|-
| ||[[dog]] (d)||dog (d)
+
|
 +
|large dog (d)
 +
|large dog (d)
 
|-
 
|-
| ||large dog (d)||large dog (d)
+
|
|-
+
|[[giant eel]] (;)
| ||[[giant eel]] (;)|| 
+
|
|-
 
| ||ghost (tab)|| 
 
 
|-
 
|-
 +
|
 +
|ghost (tab)
 +
|
 
|}
 
|}
  
Line 209: Line 343:
 
The list of hack121 suits is reordered here to match the PDP-11 and Hack 1.0 orders.
 
The list of hack121 suits is reordered here to match the PDP-11 and Hack 1.0 orders.
  
{| class="wikitable"
+
{|class="wikitable"
|-
+
!Hack121  
!Hack121!!PDP-11!!Hack 1.0
+
!PDP-11  
|-
+
!Hack 1.0
| || ||helmet
 
 
|-
 
|-
|[[plate mail]]||plate mail||plate mail
+
|
 +
|
 +
|helmet
 
|-
 
|-
|[[splint mail]]||splint mail||splint mail
+
|[[plate mail]]
 +
|plate mail
 +
|plate mail
 
|-
 
|-
| ||[[banded mail]]||banded mail
+
|[[splint mail]]
 +
|splint mail
 +
|splint mail
 
|-
 
|-
|[[chain mail]]||chain mail||chain mail
+
|
 +
|[[banded mail]]
 +
|banded mail
 
|-
 
|-
|[[scale mail]]||scale mail||scale mail
+
|[[chain mail]]
 +
|chain mail
 +
|chain mail
 
|-
 
|-
|[[ring mail]]||ring mail||ring mail
+
|[[scale mail]]
 +
|scale mail
 +
|scale mail
 
|-
 
|-
| ||[[studded leather armor]]||studded leather armor
+
|[[ring mail]]
 +
|ring mail
 +
|ring mail
 
|-
 
|-
|[[leather armor]]||leather armor||leather armor
+
|
 +
|[[studded leather armor]]
 +
|studded leather armor
 
|-
 
|-
| ||[[elven cloak]]||elven cloak
+
|[[leather armor]]
 +
|leather armor
 +
|leather armor
 
|-
 
|-
|[[mithril-coat|elfin chain mail]]|| || 
+
|
 +
|[[elven cloak]]
 +
|elven cloak
 
|-
 
|-
| || ||shield
+
|[[mithril-coat|elfin chain mail]]
 +
|
 +
|
 
|-
 
|-
| || ||pair of gloves
+
|
 +
|
 +
|shield
 
|-
 
|-
 +
|
 +
|
 +
|pair of gloves
 
|}
 
|}
 +
  
 
=== Food ===
 
=== Food ===
Line 245: Line 406:
 
The available food items are as follows:
 
The available food items are as follows:
  
{| class="wikitable"
+
{|class="wikitable"
 +
!Hack121
 +
!PDP-11
 +
!Hack 1.0
 
|-
 
|-
!Hack121!!PDP-11!!Hack 1.0
+
|[[food ration]]
 +
|food ration
 +
|food ration
 
|-
 
|-
|[[food ration]]||food ration||food ration
+
|[[tripe ration]]
 +
|tripe ration
 +
|tripe ration
 
|-
 
|-
|[[tripe ration]]||tripe ration||tripe ration
+
|beef jerky
 +
|[[pancake]]
 +
|pancake
 
|-
 
|-
|beef jerky||[[pancake]]||pancake
+
|[[lizard|dead lizard]]
 +
|dead lizard
 +
|dead lizard
 
|-
 
|-
|[[lizard|dead lizard]]||dead lizard||dead lizard
+
|steak
 +
|cookie
 +
|[[fortune cookie]]
 
|-
 
|-
|steak||cookie||[[fortune cookie]]
+
|
 +
|
 +
|[[carrot]]
 
|-
 
|-
| || ||[[carrot]]
+
|
 +
|
 +
|[[tin]]
 
|-
 
|-
| || ||[[tin]]
+
|[[orange]]
 +
|orange
 +
|orange
 
|-
 
|-
|[[orange]]||orange||orange
+
|[[apple]]
 +
|apple
 +
|apple
 
|-
 
|-
|[[apple]]||apple||apple
+
|[[pear]]
 +
|pear
 +
|pear
 
|-
 
|-
|[[pear]]||pear||pear
+
|
 +
|[[melon]]
 +
|melon
 
|-
 
|-
| ||[[melon]]||melon
+
|[[banana]]
 +
|banana
 +
|banana
 
|-
 
|-
|[[banana]]||banana||banana
+
|spinach
 +
|[[candy bar]]
 +
|candy bar
 
|-
 
|-
|spinach||[[candy bar]]||candy bar
+
|[[egg]]
 +
|egg
 +
|egg
 
|-
 
|-
|[[egg]]||egg||egg
+
|
|-
+
|
| || ||[[clove of garlic]]
+
|[[clove of garlic]]
|-
 
| || ||corpse
 
 
|-
 
|-
 +
|
 +
|
 +
|corpse
 
|}
 
|}
  
Line 291: Line 484:
 
Hack121 and PDP-11 Hack offer the same set of weapons.  Hack 1.0 adds a few to these:
 
Hack121 and PDP-11 Hack offer the same set of weapons.  Hack 1.0 adds a few to these:
  
{| class="wikitable"
+
{|class="wikitable"
|-
+
!hack121  
!hack121!!PDP-11!!Hack 1.0
+
!PDP-11  
|-
+
!Hack 1.0
|[[arrow]]||arrow||arrow
 
 
|-
 
|-
|[[sling]] bullet||sling bullet||sling bullet
+
|[[arrow]]
 +
|arrow
 +
|arrow
 
|-
 
|-
|[[crossbow bolt]]||crossbow bolt||crossbow bolt
+
|[[sling]] bullet
 +
|sling bullet
 +
|sling bullet
 
|-
 
|-
|[[dart]]||dart||dart
+
|[[crossbow bolt]]
 +
|crossbow bolt
 +
|crossbow bolt
 
|-
 
|-
| || ||[[rock]]
+
|[[dart]]
 +
|dart
 +
|dart
 
|-
 
|-
| || ||[[boomerang]]
+
|
 +
|
 +
|[[rock]]
 
|-
 
|-
|[[mace]]||mace||mace
+
|
 +
|
 +
|[[boomerang]]
 
|-
 
|-
|[[axe]]||axe||axe
+
|[[mace]]
 +
|mace
 +
|mace
 
|-
 
|-
|[[flail]]||flail||flail
+
|[[axe]]
 +
|axe
 +
|axe
 
|-
 
|-
|[[long sword]]||long sword||long sword
+
|[[flail]]
 +
|flail
 +
|flail
 
|-
 
|-
|[[two handed sword]]||two handed sword||two handed sword
+
|[[long sword]]
 +
|long sword
 +
|long sword
 
|-
 
|-
|[[dagger]]||dagger||dagger
+
|[[two handed sword]]
 +
|two handed sword
 +
|two handed sword
 
|-
 
|-
| || ||[[worm tooth]]
+
|[[dagger]]
 +
|dagger
 +
|dagger
 
|-
 
|-
| || ||[[crysknife]]
+
|
 +
|
 +
|[[worm tooth]]
 
|-
 
|-
|[[spear]]||spear||spear
+
|
 +
|
 +
|[[crysknife]]
 
|-
 
|-
|[[bow]]||bow||bow
+
|[[spear]]
 +
|spear
 +
|spear
 
|-
 
|-
|[[sling]]||sling||sling
+
|[[bow]]
 +
|bow
 +
|bow
 
|-
 
|-
|[[crossbow]]||crossbow||crossbow
+
|[[sling]]
 +
|sling
 +
|sling
 
|-
 
|-
 +
|[[crossbow]]
 +
|crossbow
 +
|crossbow
 
|}
 
|}
 +
  
 
=== Potions ===
 
=== Potions ===
Line 337: Line 567:
 
Several potions in Hack121 have disappeared in later versions.  Hack 1.0 adds one potion over PDP-11.
 
Several potions in Hack121 have disappeared in later versions.  Hack 1.0 adds one potion over PDP-11.
  
{| class="wikitable"
+
{|class="wikitable"
 +
!Hack121
 +
!PDP-11
 +
!Hack 1.0
 
|-
 
|-
!Hack121!!PDP-11!!Hack 1.0
+
|[[potion of restore ability|restore strength]]
 +
|restore strength
 +
|restore strength
 
|-
 
|-
|[[potion of restore ability|restore strength]]||restore strength||restore strength
+
|alcohol
 +
|[[potion of booze|booze]]
 +
|booze
 
|-
 
|-
|alcohol||[[potion of booze|booze]]||booze
+
|second sight
 +
|
 +
|
 
|-
 
|-
|second sight|| || 
+
|forgetfulness
 +
|
 +
|
 
|-
 
|-
|forgetfulness|| || 
+
|extra hit points
 +
|
 +
|
 
|-
 
|-
|extra hit points|| || 
+
|[[potion of invisibility|invisibility]]
 +
|invisibility
 +
|invisibility
 
|-
 
|-
|[[potion of invisibility|invisibility]]||invisibility||invisibility
+
|[[potion of fruit juice|fruit juice]]
 +
|fruit juice
 +
|fruit juice
 
|-
 
|-
|[[potion of fruit juice|fruit juice]]||fruit juice||fruit juice
+
|[[potion of healing|healing]]
 +
|healing
 +
|healing
 
|-
 
|-
|[[potion of healing|healing]]||healing||healing
+
|[[potion of paralysis|paralysis]]
 +
|paralysis
 +
|paralysis
 
|-
 
|-
|[[potion of paralysis|paralysis]]||paralysis||paralysis
+
|
 +
|[[potion of monster detection|monster detection]]
 +
|monster detection
 
|-
 
|-
| ||[[potion of monster detection|monster detection]]||monster detection
+
|[[potion of object detection|object detection]]
 +
|object detection
 +
|object detection
 
|-
 
|-
|[[potion of object detection|object detection]]||object detection||object detection
+
|poison
 +
|[[potion of sickness|sickness]]
 +
|sickness
 
|-
 
|-
|poison||[[potion of sickness|sickness]]||sickness
+
|[[potion of confusion|confusion]]
 +
|confusion
 +
|confusion
 
|-
 
|-
|[[potion of confusion|confusion]]||confusion||confusion
+
|
 +
|[[potion of gain ability|gain strength]]
 +
|gain strength
 
|-
 
|-
| ||[[potion of gain ability|gain strength]]||gain strength
+
|[[potion of speed|speed]]
 +
|speed
 +
|speed
 
|-
 
|-
|[[potion of speed|speed]]||speed||speed
+
|[[potion of blindness|blindness]]
 +
|blindness
 +
|blindness
 
|-
 
|-
|[[potion of blindness|blindness]]||blindness||blindness
+
|[[potion of gain level|gain level]]
 +
|gain level
 +
|gain level
 
|-
 
|-
|[[potion of gain level|gain level]]||gain level||gain level
+
|[[potion of extra healing|extra healing]]
|-
+
|extra healing
|[[potion of extra healing|extra healing]]||extra healing||extra healing
+
|extra healing
|-
 
| || ||[[potion of levitation|levitation]]
 
 
|-
 
|-
 +
|
 +
|
 +
|[[potion of levitation|levitation]]
 
|}
 
|}
 +
  
 
=== Scrolls ===
 
=== Scrolls ===
Line 385: Line 654:
 
Available scrolls are as follows:
 
Available scrolls are as follows:
  
{| class="wikitable"
+
{|class="wikitable"
|-
+
!hack121  
!hack121!!PDP11!!Hack 1.0
+
!PDP11  
 +
!Hack 1.0
 
|-
 
|-
|[[scroll of enchant armor|enchant armor]]||enchant armor||enchant armor
+
|[[scroll of enchant armor|enchant armor]]
 +
|enchant armor
 +
|enchant armor
 
|-
 
|-
| || ||[[scroll of destroy armor|destroy armor]]
+
|
 +
|
 +
|[[scroll of destroy armor|destroy armor]]
 
|-
 
|-
| ||losing|| 
+
|
 +
|losing
 +
|
 
|-
 
|-
| ||curse levels|| 
+
|
 +
|curse levels
 +
|
 
|-
 
|-
|[[scroll of confuse monster|confuse monster]]|| ||confuse monster
+
|[[scroll of confuse monster|confuse monster]]
 +
|
 +
|confuse monster
 
|-
 
|-
|destroy monsters|| || 
+
|destroy monsters
 +
|
 +
|
 
|-
 
|-
|[[scroll of scare monster|scare monsters]]|| ||scare monster
+
|[[scroll of scare monster|scare monsters]]
 +
|
 +
|scare monster
 
|-
 
|-
|ressurection <nowiki>[</nowiki>''sic''<nowiki>]</nowiki>||&nbsp;||&nbsp;
+
|ressurection <nowiki>[</nowiki>''sic''<nowiki>]</nowiki>
 +
|
 +
|
 
|-
 
|-
|&nbsp;||&nbsp;||[[scroll of blank paper|blank paper]]
+
|
 +
|
 +
|[[scroll of blank paper|blank paper]]
 
|-
 
|-
|[[scroll of remove curse|remove curse]]||remove curse||remove curse
+
|[[scroll of remove curse|remove curse]]
 +
|remove curse
 +
|remove curse
 
|-
 
|-
|[[scroll of enchant weapon|enchant weapon]]||enchant weapon||enchant weapon
+
|[[scroll of enchant weapon|enchant weapon]]
 +
|enchant weapon
 +
|enchant weapon
 
|-
 
|-
|[[scroll of create monster|create monster]]||create monster||damage weapon
+
|[[scroll of create monster|create monster]]
 +
|create monster
 +
|damage weapon
 
|-
 
|-
|damage weapon||damage weapon||create monster
+
|damage weapon
 +
|damage weapon
 +
|create monster
 
|-
 
|-
|rust armor||&nbsp;||&nbsp;
+
|rust armor
 +
|
 +
|
 
|-
 
|-
|&nbsp;||&nbsp;||[[scroll of taming|taming]]
+
|
 +
|
 +
|[[scroll of taming|taming]]
 
|-
 
|-
|[[scroll of genocide|genocide]]||genocide||genocide
+
|[[scroll of genocide|genocide]]
 +
|genocide
 +
|genocide
 
|-
 
|-
|&nbsp;||destroy armor||&nbsp;
+
|
 +
|destroy armor
 +
|
 
|-
 
|-
|[[scroll of light|light]]||light||light
+
|[[scroll of light|light]]
 +
|light
 +
|light
 
|-
 
|-
|[[scroll of teleportation|teleportation]]||transportation||teleportation
+
|[[scroll of teleportation|teleportation]]
 +
|transportation
 +
|teleportation
 
|-
 
|-
|[[scroll of gold detection|gold detection]]||gold detection||gold detection
+
|[[scroll of gold detection|gold detection]]
 +
|gold detection
 +
|gold detection
 
|-
 
|-
|&nbsp;||&nbsp;||[[scroll of food detection|food detection]]
+
|
 +
|
 +
|[[scroll of food detection|food detection]]
 
|-
 
|-
|[[scroll of identify|identify]]||identify||identify
+
|[[scroll of identify|identify]]
 +
|identify
 +
|identify
 
|-
 
|-
|[[scroll of magic mapping|magic mapping]]||magic mapping||magic mapping
+
|[[scroll of magic mapping|magic mapping]]
 +
|magic mapping
 +
|magic mapping
 
|-
 
|-
|&nbsp;||&nbsp;||[[scroll of amnesia|amnesia]]
+
|
 +
|
 +
|[[scroll of amnesia|amnesia]]
 
|-
 
|-
|[[scroll of fire|fire]]||fire||fire
+
|[[scroll of fire|fire]]
 +
|fire
 +
|fire
 
|-
 
|-
|&nbsp;||&nbsp;||[[scroll of punishment|punishment]]
+
|
 +
|
 +
|[[scroll of punishment|punishment]]
 
|-
 
|-
|[[scroll of charging|charge wand]]||&nbsp;||&nbsp;
+
|[[scroll of charging|charge wand]]
 +
|
 +
|
 
|}
 
|}
  
Line 451: Line 775:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
!Hack121
 +
!PDP-11
 +
!Hack 1.0
 
|-
 
|-
!Hack121!!PDP-11!!Hack 1.0
+
|[[wand of light|light]]
|-
+
|light
|[[wand of light|light]]||light||light
+
|light
 
|-
 
|-
|trap detection||secret door + trap detection||[[wand of secret door detection|secret door detection]]
+
|trap detection
 +
|secret door + trap detection
 +
|[[wand of secret door detection|secret door detection]]
 
|-
 
|-
|[[wand of create monster|create monster]]||create monster||create monster
+
|[[wand of create monster|create monster]]
 +
|create monster
 +
|create monster
 
|-
 
|-
|&nbsp;||exhaustion||&nbsp;
+
|
 +
|exhaustion
 +
|
 
|-
 
|-
|&nbsp;||&nbsp;||[[wand of wishing|wishing]]
+
|
 +
|
 +
|[[wand of wishing|wishing]]
 
|-
 
|-
|wonder||&nbsp;||&nbsp;
+
|wonder
 +
|
 +
|
 
|-
 
|-
|[[wand of digging|digging]]||''different location''||''different location''
+
|[[wand of digging|digging]]
 +
|''different location''
 +
|''different location''
 
|-
 
|-
|[[wand of striking|striking]]||&nbsp;||striking
+
|[[wand of striking|striking]]
 +
|
 +
|striking
 
|-
 
|-
|[[wand of slow monster|slow monster]]||slow monster||slow monster
+
|[[wand of slow monster|slow monster]]
 +
|slow monster
 +
|slow monster
 
|-
 
|-
|[[wand of speed monster|speed monster]]||speed monster||speed monster
+
|[[wand of speed monster|speed monster]]
 +
|speed monster
 +
|speed monster
 
|-
 
|-
|&nbsp;||[[wand of undead turning|undead turning]]||undead turning
+
|
 +
|[[wand of undead turning|undead turning]]
 +
|undead turning
 
|-
 
|-
|''different location''||[[wand of polymorph|polymorph]]||polymorph
+
|''different location''
 +
|[[wand of polymorph|polymorph]]
 +
|polymorph
 
|-
 
|-
|frighten monster||&nbsp;||&nbsp;
+
|frighten monster
 +
|
 +
|
 
|-
 
|-
|[[wand of cancellation|cancellation]]||cancellation||cancellation
+
|[[wand of cancellation|cancellation]]
 +
|cancellation
 +
|cancellation
 
|-
 
|-
|[[wand of teleportation|teleport monster]]||teleport monster||teleport monster
+
|[[wand of teleportation|teleport monster]]
 +
|teleport monster
 +
|teleport monster
 
|-
 
|-
|&nbsp;||&nbsp;||[[wand of make invisible|make invisible]]
+
|
 +
|
 +
|[[wand of make invisible|make invisible]]
 
|-
 
|-
|''different location''||digging||digging
+
|''different location''
 +
|digging
 +
|digging
 
|-
 
|-
|monster invisibility||&nbsp;||&nbsp;
+
|monster invisibility
 +
|
 +
|
 
|-
 
|-
|polymorph||''different location''||''different location''
+
|polymorph
 +
|''different location''
 +
|''different location''
 
|-
 
|-
|[[wand of magic missile|magic missile]]||magic missile||magic missile
+
|[[wand of magic missile|magic missile]]
 +
|magic missile
 +
|magic missile
 
|-
 
|-
|[[wand of fire|fire]]||fire||fire
+
|[[wand of fire|fire]]
 +
|fire
 +
|fire
 
|-
 
|-
|[[wand of sleep|sleep]]||sleep||sleep
+
|[[wand of sleep|sleep]]
 +
|sleep
 +
|sleep
 
|-
 
|-
|[[wand of cold|cold]]||cold||cold
+
|[[wand of cold|cold]]
 +
|cold
 +
|cold
 
|-
 
|-
|[[wand of death|death]]||death||death
+
|[[wand of death|death]]
 +
|death
 +
|death
 
|-
 
|-
|&nbsp;||confusion||&nbsp;
+
|
 +
|confusion
 +
|
 
|-
 
|-
|&nbsp;||door closing||&nbsp;
+
|
 +
|door closing
 +
|
 
|}
 
|}
  
In Hack121 the wand of wonder is a random wand of another type which changes each time you zap it.  In D&D a wand of wonder works as a random wand of another type.  ''Note: In iLarn (and in [http://www.cordier.com/ularn/] ULarn)a wand of wonder prevents the player from falling down holes when in the main inventory.  It could serve the same purpose here, as this would not be very apparent to most players.''
+
In Hack121 the wand of wonder is a random wand of another type which changes each time you zap it.  In D&amp;D a wand of wonder works as a random wand of another type.  ''Note: In iLarn (and in [http://www.cordier.com/ularn/] ULarn)a wand of wonder prevents the player from falling down holes when in the main inventory.  It could serve the same purpose here, as this would not be very apparent to most players.''
  
 
=== Rings ===
 
=== Rings ===
Line 514: Line 891:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
!Hack121
 +
!PDP-11
 +
!Hack 1.0
 
|-
 
|-
!Hack121!!PDP-11!!Hack 1.0
+
|[[ring of adornment|adornment]]
 +
|adornment
 +
|adornment
 
|-
 
|-
|[[ring of adornment|adornment]]||adornment||adornment
+
|[[ring of teleportation|teleportation]]
 +
|teleportation
 +
|teleportation
 
|-
 
|-
|[[ring of teleportation|teleportation]]||teleportation||teleportation
+
|[[ring of regeneration|regeneration]]
 +
|regeneration
 +
|regeneration
 
|-
 
|-
|[[ring of regeneration|regeneration]]||regeneration||regeneration
+
|[[ring of searching|searching]]
 +
|searching
 +
|searching
 
|-
 
|-
|[[ring of searching|searching]]||searching||searching
+
|[[ring of see invisible|see invisible]]
 +
|see invisible
 +
|see invisible
 
|-
 
|-
|[[ring of see invisible|see invisible]]||see invisible||see invisible
+
|[[ring of stealth|stealth]]
 +
|stealth
 +
|stealth
 
|-
 
|-
|[[ring of stealth|stealth]]||stealth||stealth
+
|
 +
|floating
 +
|[[ring of levitation|levitation]]
 
|-
 
|-
|&nbsp;||floating||[[ring of levitation|levitation]]
+
|poison resistance
 +
|poison resistance
 +
|poison resistance
 
|-
 
|-
|poison resistance||poison resistance||poison resistance
+
|[[ring of aggravate monster|aggravate monster]]
 +
|aggravate monster
 +
|aggravate monster
 
|-
 
|-
|[[ring of aggravate monster|aggravate monster]]||aggravate monster||aggravate monster
+
|[[ring of hunger|hunger]]
 +
|hunger
 +
|hunger
 
|-
 
|-
|[[ring of hunger|hunger]]||hunger||hunger
+
|monster creation
 +
|
 +
|
 
|-
 
|-
|monster creation||&nbsp;||&nbsp;
+
|berzerking
 +
|
 +
|
 
|-
 
|-
|berzerking||&nbsp;||&nbsp;
+
|another chance
 +
|
 +
|
 
|-
 
|-
|another chance||&nbsp;||&nbsp;
+
|fire and cold resistance
 +
|[[ring of fire resistance|fire resistance]]
 +
|fire resistance
 
|-
 
|-
|fire and cold resistance||[[ring of fire resistance|fire resistance]]||fire resistance
+
|
 +
|[[ring of cold resistance|cold resistance]]
 +
|cold resistance
 
|-
 
|-
|&nbsp;||[[ring of cold resistance|cold resistance]]||cold resistance
+
|protection from magic
 +
|[[ring of protection from shape changers|protection from shape-changers]]
 +
|protection from shape changers
 
|-
 
|-
|protection from magic||[[ring of protection from shape changers|protection from shape-changers]]||protection from shape changers
+
|
 +
|
 +
|[[ring of conflict|conflict]]
 
|-
 
|-
|&nbsp;||&nbsp;||[[ring of conflict|conflict]]
+
|[[ring of gain strength|gain strength]]
 +
|gain strength
 +
|gain strength
 
|-
 
|-
|[[ring of gain strength|gain strength]]||gain strength||gain strength
+
|[[ring of increase damage|increase damage]]
 +
|increase damage
 +
|increase damage
 
|-
 
|-
|[[ring of increase damage|increase damage]]||increase damage||increase damage
+
|[[ring of protection|protection]]
 +
|protection
 +
|protection
 
|-
 
|-
|[[ring of protection|protection]]||protection||protection
+
|increase hit points
 +
|
 +
|
 
|-
 
|-
|increase hit points||&nbsp;||&nbsp;
+
|
|-
+
|
|&nbsp;||&nbsp;||[[ring of warning|warning]]
+
|[[ring of warning|warning]]
|-
 
|&nbsp;||&nbsp;||[[ring of teleport control|teleport control]]
 
 
|-
 
|-
 +
|
 +
|
 +
|[[ring of teleport control|teleport control]]
 
|}
 
|}
  
Line 601: Line 1,024:
 
<references/>
 
<references/>
  
[[Category:History]]
 
 
{{noversion|offset=1}}
 
{{noversion|offset=1}}
 
{{featured}}
 
{{featured}}
 +
[[Category:History]]

Revision as of 15:50, 2 August 2009

Jay Fenlason's Hack is the name given in this article to the original Hack as written by Jay Fenlason and friends, and to two other versions of Hack of different lineage than Andries Brouwer's Hack.

The exact content of the original Hack is little known. Development began shortly after the 1982 USENIX conference in Boston, MA where the Michael Toy and Ken Arnold (the authors of the then closed-source Rogue) spoke. The only publication of the original Hack was on the 1983 or 1984 USENIX software distribution tape. Three derivatives are known to exist:

  • Hack 1.0 was developed by Andries Brouwer and posted to Usenet in December 1984. All other versions of Hack and NetHack are descended from this version.

The rest of this article covers mainly PDP-11 Hack and "hack121".

Overview

These games do not have distinct roles for the player to pursue. "Hack121" begins with a screen from which the player may buy equipment; PDP-11 Hack starts the player off as a sort of generic fighter character.

The exact goal of the adventurer is uncertain. The Amulet of Yendor is nowhere mentioned in either game.

Both games have shops. Other special rooms in hack121 are uncertain at this time. PDP-11 Hack has several special room types, including some that appear in Hack 1.0. PDP-11 Hack apparently has vaults, but they are implemented very differently than in Hack 1.0.

PDP-11 Hack starts the player off with a little dog. Hack121 apparently does not have pets.

Bestiary

The bestiaries of hack121 and PDP-11 Hack are listed below, along with the Hack 1.0 bestiary for comparison. Other monster descriptions may be lurking in other parts of the hack121 binary; therefore, this list cannot be considered as necessarily the final word for that version.

Main monster list

These are given in the order of their appearance in the code; it will be seen that the lists are quite similar.

Hack121 PDP-11 Hack Hack 1.0
bat (b) bat (B) bat (B)
lizard (l) gnome (G) gnome (G)
goblin (g) hobgoblin (H) hobgoblin (H)
jackal (j) jackal (J) jackal (J)
kobold (k) kobold (K) kobold (K)
pickpocket (p) leprechaun (L) leprechaun (L)
giant rat (r) giant rat (r) giant rat (r)
acid blob (a) acid blob (a) acid blob (a)
evil eye (e) floating eye (E) floating eye (E)
hurkle (h) homunculus (h) homunculus (h)
neevil (n) imp (i) imp (i)
orc (o) orc (O) orc (O)
yellow light (y) yellow light (y) yellow light (y)
zombie (z) zombie (Z) zombie (Z)
giant ant (A) giant ant (A) giant ant (A)
fog cloud (f) fog cloud (f) fog cloud (f)
robber (R) nymph (N) nymph (N)
stalactoid (s) piercer (p) piercer (p)
queevolt (q) quasit (Q) quasit (Q)
quivering blob (Q) quivering blob (q) quivering blob (q)
grabber (G) violet fungi (v) violet fungi (v)
nepto (N) giant beetle (b) giant beetle (b)
centaur (c) centaur (C) centaur (C)
cockatrice (C) cockatrice (c) cockatrice (c)
ghost (') gelatinous cube (g) gelatinous cube (g)
jaguar (J) jaguar (j) jaguar (j)
killer bee (K) killer bee (k) killer bee (k)
viper (v) snake (S) snake (S)
ice ball (i) freezing sphere (F) freezing sphere (F)
giant bear (B) owlbear (o) owlbear (o)
oxidizer (O) rust monster (R) rust monster (R)
unox (u) giant scorpion (s) scorpion (s)
teleporter (t) teleporter (t) tengu (t)
wraith (w) wraith (W) wraith (W)
snowman (S) long worm (w) long worm or wumpus (w)
octopus (0) large dog (d) large dog (d)
xyloman (x) leocrotta (l) leocrotta (l)
faker (F) mimic (M) mimic (M)
minotaur (m) minotaur (m) found at end of table
troll (T) troll (T) troll (T)
ugod (U) ugod (u) unicorn (u)
xerp (X) yeti (Y) yeti (Y)
phase shifter (P) invisible stalker (I) stalker (I)
hydra (H) umber hulk (U) umber hulk (U)
vampire (V) vampire (V) vampire (V)
wumpus (W) xorn (X) xorn (X)
rock lobster (L) xerp (x) xan (x)
zelomp (Z) zelomp (z) zruty (z)
chameleon (:) chameleon (:) chameleon (:)
dragon (D) dragon (D) dragon (D)
energar (E) ettin (e) ettin (e)
floor fiend (;) lurker above (') lurker above (~)
landshark (&) neo-otyugh (n) nurse (n)
argus (}) trapper (,) trapper (,)
mega-worm (M) purple worm (P) purple worm (P)
demon (d) demon (&) demon (&)
minotaur (m)
shopkeeper (@)


Other monsters kept in separate structures

All versions of Hack and NetHack prior to NetHack 3.0.0 have various monster description structures floating around in their source code, for monsters with special functions. These are listed here, with monsters having the same function in the same row. The large dog appears both here and in the above table because the structure in the above table is used for wild dogs, and the one shown below is used for pets. In Hack 1.0, the shopkeeper is moved to the main monster list.

Hack121 PDP-11 Hack Hack 1.0
vampire bat (b)
shopkeep (☺) shopkeeper (@) in main monster table
guard (☺) treasurer (@) guard (@)
little dog (d) little dog (d)
dog (d) dog (d)
large dog (d) large dog (d)
giant eel (;)
ghost (tab)

The character for the ghost is coded as a tab character, or '\t'. This is likely to be a bug.

The giant eel appears in essentially its modern form. The current version of AEB Hack at the release of the PDP-11 Hack was 1.0.1, and this version did not have giant eels. Giant eels do appear in Hack 1.0.2, and the source code credits the publishers of PDP-11 Hack, Michiel Huisjes and Fred de Wilde, for the inspiration. That credit is still present in NetHack 3.4.3[1].

Available Objects

Hack121, PDP-11 Hack, and Hack 1.0 show many similarities in their object lists. Except as noted, the object lists are presented in the order in which they occur in the code.

Armor

Hack121 takes a different approach to armor than the other two Hacks. The only actual armors are suits. A shield is implemented but is a distinct type of object, in a class by itself. However, note that a shield is put on using the same command used to put on armour and affects your armour class rating in the same way that other armour does. PDP-11 Hack implements only suits and an elven cloak. Hack 1.0 adds a helmet, a shield, and a pair of gloves, allowing five pieces of armor to be worn at the same time.

The list of hack121 suits is reordered here to match the PDP-11 and Hack 1.0 orders.

Hack121 PDP-11 Hack 1.0
helmet
plate mail plate mail plate mail
splint mail splint mail splint mail
banded mail banded mail
chain mail chain mail chain mail
scale mail scale mail scale mail
ring mail ring mail ring mail
studded leather armor studded leather armor
leather armor leather armor leather armor
elven cloak elven cloak
elfin chain mail
shield
pair of gloves


Food

The available food items are as follows:

Hack121 PDP-11 Hack 1.0
food ration food ration food ration
tripe ration tripe ration tripe ration
beef jerky pancake pancake
dead lizard dead lizard dead lizard
steak cookie fortune cookie
carrot
tin
orange orange orange
apple apple apple
pear pear pear
melon melon
banana banana banana
spinach candy bar candy bar
egg egg egg
clove of garlic
corpse

As Hack121 does not appear to have pets, it is unclear why the first five items are all meat.

The dead lizard has no special properties in PDP-11 Hack. Its function in hack121 is just as an item of food. It has no other special functions. In Hack 1.0, it can relieve confusion, but has no effect on cockatrices: stoning by cockatrice hissing is an instadeath in all three of these versions of Hack. Both spinach and steak may randomly increase strength in hack121.

Weapons

Hack121 and PDP-11 Hack offer the same set of weapons. Hack 1.0 adds a few to these:

hack121 PDP-11 Hack 1.0
arrow arrow arrow
sling bullet sling bullet sling bullet
crossbow bolt crossbow bolt crossbow bolt
dart dart dart
rock
boomerang
mace mace mace
axe axe axe
flail flail flail
long sword long sword long sword
two handed sword two handed sword two handed sword
dagger dagger dagger
worm tooth
crysknife
spear spear spear
bow bow bow
sling sling sling
crossbow crossbow crossbow


Potions

Several potions in Hack121 have disappeared in later versions. Hack 1.0 adds one potion over PDP-11.

Hack121 PDP-11 Hack 1.0
restore strength restore strength restore strength
alcohol booze booze
second sight
forgetfulness
extra hit points
invisibility invisibility invisibility
fruit juice fruit juice fruit juice
healing healing healing
paralysis paralysis paralysis
monster detection monster detection
object detection object detection object detection
poison sickness sickness
confusion confusion confusion
gain strength gain strength
speed speed speed
blindness blindness blindness
gain level gain level gain level
extra healing extra healing extra healing
levitation


Scrolls

Available scrolls are as follows:

hack121 PDP11 Hack 1.0
enchant armor enchant armor enchant armor
destroy armor
losing
curse levels
confuse monster confuse monster
destroy monsters
scare monsters scare monster
ressurection [sic]
blank paper
remove curse remove curse remove curse
enchant weapon enchant weapon enchant weapon
create monster create monster damage weapon
damage weapon damage weapon create monster
rust armor
taming
genocide genocide genocide
destroy armor
light light light
teleportation transportation teleportation
gold detection gold detection gold detection
food detection
identify identify identify
magic mapping magic mapping magic mapping
amnesia
fire fire fire
punishment
charge wand

For PDP-11 Hack, the "scroll of losing" takes away the hero's entire inventory and scatters it about the level; while the "scroll of curse levels" appears to curse the hero himself, causing shopkeepers to be angry and all picked-up items to become cursed. The scroll of remove curse will rescind this effect, and in these versions it is not itself affected by curses.

Wands

Available wands are as follows:

Hack121 PDP-11 Hack 1.0
light light light
trap detection secret door + trap detection secret door detection
create monster create monster create monster
exhaustion
wishing
wonder
digging different location different location
striking striking
slow monster slow monster slow monster
speed monster speed monster speed monster
undead turning undead turning
different location polymorph polymorph
frighten monster
cancellation cancellation cancellation
teleport monster teleport monster teleport monster
make invisible
different location digging digging
monster invisibility
polymorph different location different location
magic missile magic missile magic missile
fire fire fire
sleep sleep sleep
cold cold cold
death death death
confusion
door closing

In Hack121 the wand of wonder is a random wand of another type which changes each time you zap it. In D&D a wand of wonder works as a random wand of another type. Note: In iLarn (and in [1] ULarn)a wand of wonder prevents the player from falling down holes when in the main inventory. It could serve the same purpose here, as this would not be very apparent to most players.

Rings

Available rings are as follows. For hack121, the order has been changed to match the other two versions.

Hack121 PDP-11 Hack 1.0
adornment adornment adornment
teleportation teleportation teleportation
regeneration regeneration regeneration
searching searching searching
see invisible see invisible see invisible
stealth stealth stealth
floating levitation
poison resistance poison resistance poison resistance
aggravate monster aggravate monster aggravate monster
hunger hunger hunger
monster creation
berzerking
another chance
fire and cold resistance fire resistance fire resistance
cold resistance cold resistance
protection from magic protection from shape-changers protection from shape changers
conflict
gain strength gain strength gain strength
increase damage increase damage increase damage
protection protection protection
increase hit points
warning
teleport control

It is uncertain if the hack121 ring of protection from magic has any connection to the ring of protection from shape changers in the other versions.

Gems

Hack121 appears to have gems, but their function is uncertain. In PDP-11 Hack, they only add to the player's score; neither of these Hacks has unicorns. Hack 1.0 has gems in their modern form.

Other objects

The remaining objects in each game seem to have no connection to each other. Hack121 has these objects:

PDP-11 Hack has only the "amulet of Frobozz", which may be the forerunner of the Amulet of Yendor.

Hack 1.0 has these objects:

References