Difference between revisions of "Jay Fenlason's Hack"
m (Category:History) |
Ray Chason (talk | contribs) (Symbols for hack121 monsters; some corrections to bestiary; object list) |
||
Line 3: | Line 3: | ||
'''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]]. | '''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 unknown. No source for this game has ever been published. Three derivatives are known to exist: | + | The exact content of the original Hack is unknown. No source code for this game has ever been published. Three derivatives are known to exist: |
− | * "hack121" is a DOS | + | * "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. |
* 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 35: | Line 35: | ||
== Bestiary == | == Bestiary == | ||
− | The bestiaries of hack121 and PDP-11 Hack are listed below, along with the Hack 1.0 bestiary for comparison. | + | 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 === | === Main monster list === | ||
Line 45: | Line 45: | ||
! Hack121 !! PDP-11 Hack !! Hack 1.0 | ! Hack121 !! PDP-11 Hack !! Hack 1.0 | ||
|- | |- | ||
− | |bat||bat (B)||bat (B) | + | |bat (b)||bat (B)||bat (B) |
|- | |- | ||
− | |lizard||gnome (G)||gnome (G) | + | |lizard (l)||gnome (G)||gnome (G) |
|- | |- | ||
− | |goblin||hobgoblin (H)||hobgoblin (H) | + | |goblin (g)||hobgoblin (H)||hobgoblin (H) |
|- | |- | ||
− | |jackal||jackal (J)||jackal (J) | + | |jackal (j)||jackal (J)||jackal (J) |
|- | |- | ||
− | |kobold||kobold (K)||kobold (K) | + | |kobold (k)||kobold (K)||kobold (K) |
|- | |- | ||
− | |pickpocket||leprechaun (L)||leprechaun (L) | + | |pickpocket (p)||leprechaun (L)||leprechaun (L) |
|- | |- | ||
− | |giant rat||giant rat (r)||giant rat (r) | + | |giant rat (r)||giant rat (r)||giant rat (r) |
|- | |- | ||
− | |acid blob||acid blob (a)||acid blob (a) | + | |acid blob (a)||acid blob (a)||acid blob (a) |
|- | |- | ||
− | |evil eye||floating eye (E)||floating eye (E) | + | |evil eye (e)||floating eye (E)||floating eye (E) |
|- | |- | ||
− | |hurkle||homunculus (h)||homunculus (h) | + | |hurkle (h)||homunculus (h)||homunculus (h) |
|- | |- | ||
− | |neevil||imp (i)||imp (i) | + | |neevil (n)||imp (i)||imp (i) |
|- | |- | ||
− | |orc||orc (O)||orc (O) | + | |orc (o)||orc (O)||orc (O) |
|- | |- | ||
− | |yellow light||yellow light (y)||yellow light (y) | + | |yellow light (y)||yellow light (y)||yellow light (y) |
|- | |- | ||
− | |zombie||zombie (Z)||zombie (Z) | + | |zombie (z)||zombie (Z)||zombie (Z) |
|- | |- | ||
− | |giant ant||giant ant (A)||giant ant (A) | + | |giant ant (A)||giant ant (A)||giant ant (A) |
|- | |- | ||
− | |fog cloud||fog cloud (f)||fog cloud (f) | + | |fog cloud (f)||fog cloud (f)||fog cloud (f) |
|- | |- | ||
− | |robber||nymph (N)||nymph (N) | + | |robber (R)||nymph (N)||nymph (N) |
|- | |- | ||
− | |stalactoid||piercer (p)||piercer (p) | + | |stalactoid (s)||piercer (p)||piercer (p) |
|- | |- | ||
− | |queevolt||quasit (Q)||quasit (Q) | + | |queevolt (q)||quasit (Q)||quasit (Q) |
|- | |- | ||
− | |quivering blob||quivering blob (q)||quivering blob (q) | + | |quivering blob (Q)||quivering blob (q)||quivering blob (q) |
|- | |- | ||
− | |grabber||violet fungi (v)||violet fungi (v) | + | |grabber (G)||violet fungi (v)||violet fungi (v) |
|- | |- | ||
− | |nepto||giant beetle (b)||giant beetle (b) | + | |nepto (N)||giant beetle (b)||giant beetle (b) |
|- | |- | ||
− | |centaur||centaur (C)||centaur (C) | + | |centaur (c)||centaur (C)||centaur (C) |
|- | |- | ||
− | |cockatrice||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||jaguar (j)||jaguar (j) | + | |jaguar (J)||jaguar (j)||jaguar (j) |
|- | |- | ||
− | |killer bee||killer bee (k)||killer bee (k) | + | |killer bee (K)||killer bee (k)||killer bee (k) |
|- | |- | ||
− | |viper||snake (S)||snake (S) | + | |viper (v)||snake (S)||snake (S) |
|- | |- | ||
− | |ice ball||freezing sphere (F)||freezing sphere (F) | + | |ice ball (i)||freezing sphere (F)||freezing sphere (F) |
|- | |- | ||
− | |giant bear||owlbear (o)||owlbear (o) | + | |giant bear (B)||owlbear (o)||owlbear (o) |
|- | |- | ||
− | |oxidizer||rust monster (R)||rust monster (R) | + | |oxidizer (O)||rust monster (R)||rust monster (R) |
|- | |- | ||
− | |unox||giant scorpion (s)||scorpion (s) | + | |unox (u)||giant scorpion (s)||scorpion (s) |
|- | |- | ||
− | |teleporter||teleporter (t)||tengu (t) | + | |teleporter (t)||teleporter (t)||tengu (t) |
|- | |- | ||
− | |wraith||wraith (W)||wraith (W) | + | |wraith (w)||wraith (W)||wraith (W) |
|- | |- | ||
− | |snowman||long worm (w)||long worm or wumpus (w) | + | |snowman (S)||long worm (w)||long worm or wumpus (w) |
|- | |- | ||
− | |octopus||large dog (d)||large dog (d) | + | |octopus (0)||large dog (d)||large dog (d) |
|- | |- | ||
− | |xyloman||leocrotta (l)||leocrotta (l) | + | |xyloman (x)||leocrotta (l)||leocrotta (l) |
|- | |- | ||
− | |faker||mimic (M)||mimic (M) | + | |faker (F)||mimic (M)||mimic (M) |
|- | |- | ||
− | |minotaur||minotaur (m)||''found at end of table'' | + | |minotaur (m)||minotaur (m)||''found at end of table'' |
|- | |- | ||
− | |troll||troll (T)||troll (T) | + | |troll (T)||troll (T)||troll (T) |
|- | |- | ||
− | |ugod||ugod (u)||unicorn (u) | + | |ugod (U)||ugod (u)||unicorn (u) |
|- | |- | ||
− | |xerp||yeti (Y)||yeti (Y) | + | |xerp (X)||yeti (Y)||yeti (Y) |
|- | |- | ||
− | |phase shifter||invisible stalker (I)||stalker (I) | + | |phase shifter (P)||invisible stalker (I)||stalker (I) |
|- | |- | ||
− | |hydra||umber hulk (U)||umber hulk (U) | + | |hydra (H)||umber hulk (U)||umber hulk (U) |
|- | |- | ||
− | |vampire||vampire (V)||vampire (V) | + | |vampire (V)||vampire (V)||vampire (V) |
|- | |- | ||
− | |wumpus||xorn (X)||xorn (X) | + | |wumpus (W)||xorn (X)||xorn (X) |
|- | |- | ||
− | |rock lobster||xerp (x)||xan (x) | + | |rock lobster (L)||xerp (x)||xan (x) |
|- | |- | ||
− | |zelomp||zelomp (z)||zruty (z) | + | |zelomp (Z)||zelomp (z)||zruty (z) |
|- | |- | ||
− | |chameleon||chameleon (:)||chameleon (:) | + | |chameleon (:)||chameleon (:)||chameleon (:) |
|- | |- | ||
− | |dragon||dragon (D)||dragon (D) | + | |dragon (D)||dragon (D)||dragon (D) |
|- | |- | ||
− | |energar||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||purple worm (P)||purple worm (P) | + | |mega-worm (M)||purple worm (P)||purple worm (P) |
|- | |- | ||
− | |demon||demon (&)||demon (&) | + | |demon (d)||demon (&)||demon (&) |
|- | |- | ||
| || ||minotaur (m) | | || ||minotaur (m) | ||
Line 170: | Line 170: | ||
! Hack121 !! PDP-11 Hack !! Hack 1.0 | ! Hack121 !! PDP-11 Hack !! Hack 1.0 | ||
|- | |- | ||
− | |vampire bat|| || | + | |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) | ||
Line 181: | Line 181: | ||
|- | |- | ||
| ||large dog (d)||large dog (d) | | ||large dog (d)||large dog (d) | ||
+ | |- | ||
+ | | ||giant eel (;)|| | ||
+ | |- | ||
+ | | ||ghost (tab)|| | ||
+ | |- | ||
|} | |} | ||
+ | |||
+ | As hack121 is a port to MS-DOS, it uses the IBM graphics set; the @ in the above table actually appears as a smiley-face character. | ||
+ | |||
+ | 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 [[Hack 1.0.1|1.0.1]], and this version did not have giant eels. Giant eels do appear in [[Hack 1.0.2]], and it's possible that Dr. Brouwer got the idea from the PDP-11 Hack. | ||
== Available Objects == | == 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. 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. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !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: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !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, if any, is unknown. 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. It is not known at this time if spinach has any effect on strenth in hack121. | ||
+ | |||
+ | === Weapons === | ||
+ | |||
+ | Hack121 and PDP-11 Hack offer the same set of weapons. Hack 1.0 adds a few to these: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !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. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !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: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !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: | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | !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 | ||
+ | |- | ||
+ | | ||polymorph||polymorph | ||
+ | |- | ||
+ | |frighten monster|| || | ||
+ | |- | ||
+ | |cancelation||cancellation||cancellation | ||
+ | |- | ||
+ | |teleport monster||teleport monster||teleport monster | ||
+ | |- | ||
+ | | || ||make invisible | ||
+ | |- | ||
+ | |''different location''||digging||digging | ||
+ | |- | ||
+ | |monster invisibility|| || | ||
+ | |- | ||
+ | |polymorph|| || | ||
+ | |- | ||
+ | |magic missile||magic missile||magic missile | ||
+ | |- | ||
+ | |fire||fire||fire | ||
+ | |- | ||
+ | |sleep||sleep||sleep | ||
+ | |- | ||
+ | |cold||cold||cold | ||
+ | |- | ||
+ | |death||death||death | ||
+ | |- | ||
+ | | ||confusion|| | ||
+ | |- | ||
+ | | ||door closing|| | ||
+ | |} | ||
+ | |||
+ | The exact function of the wand of wonder is uncertain; in D&D a wand of wonder works as a random wand of another type. | ||
+ | |||
+ | === Rings === | ||
+ | |||
+ | Available rings are as follows. For hack121, the order has been changed to match the other two versions. | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | !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: | ||
+ | |||
+ | * the sphere of power | ||
+ | * mirror | ||
+ | * cross | ||
+ | * tinder box | ||
+ | * lantern | ||
+ | * torch | ||
+ | * flask of oil | ||
+ | * shield (which is not a type of armor in this game) | ||
+ | |||
+ | 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: | ||
+ | |||
+ | * whistle | ||
+ | * magic whistle | ||
+ | * expensive camera | ||
+ | * ice box | ||
+ | * heavy iron ball | ||
+ | * iron chain | ||
+ | * enormous rock | ||
+ | * the amulet of Yendor | ||
+ | |||
[[Category:History]] | [[Category:History]] |
Revision as of 01:41, 14 July 2006
NetHack Versions |
|
|
|
|
|
|
|
|
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 unknown. No source code for this game has ever been published. Three derivatives are known to exist:
- "hack121" is a DOS binary available at Ali Harlow's website as hack121.zip. No source code for this program is known to exist.
- 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:
- 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".
Contents
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) |
As hack121 is a port to MS-DOS, it uses the IBM graphics set; the @ in the above table actually appears as a smiley-face character.
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 it's possible that Dr. Brouwer got the idea from the PDP-11 Hack.
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. 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, if any, is unknown. 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. It is not known at this time if spinach has any effect on strenth 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 | |
polymorph | polymorph | |
frighten monster | ||
cancelation | cancellation | cancellation |
teleport monster | teleport monster | teleport monster |
make invisible | ||
different location | digging | digging |
monster invisibility | ||
polymorph | ||
magic missile | magic missile | magic missile |
fire | fire | fire |
sleep | sleep | sleep |
cold | cold | cold |
death | death | death |
confusion | ||
door closing |
The exact function of the wand of wonder is uncertain; in D&D a wand of wonder works as a random wand of another type.
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:
- the sphere of power
- mirror
- cross
- tinder box
- lantern
- torch
- flask of oil
- shield (which is not a type of armor in this game)
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:
- whistle
- magic whistle
- expensive camera
- ice box
- heavy iron ball
- iron chain
- enormous rock
- the amulet of Yendor