Since my first post on DOS versions of LHarc/LHA, I’ve found a few more versions of the software. Six of them appear to be original/official, and all of those are Japanese-language: 1.13d, 2.05b, 2.13, 2.52, 2.54, and 2.55.
And I found quite a few new modified or hacked versions, two of which I’ll discuss: “v1.14a” and “v2.01a”.
All of the versions mentioned here should have links on the File Formats wiki.
My updated list is below.
Updated list of versions
Here are the qualifying versions I’m aware of for DOS:
Name/ver/reltype/lang Date Reference ====================================================== LHarc? 0.01 [1.13c lharc.man] LHarc? 0.02 [1.13c lharc.man] LHarc? 0.03 [1.13c lharc.man] LHarc? 0.04 [1.13c lharc.man] LHarc? 0.05 [1.13c lharc.man] LHarc? 0.06 [1.13c lharc.man] LHarc? 0.06b [1.13c lharc.man] LHarc? 0.07 [1.13c lharc.man] LHarc? 0.07a [1.13c lharc.man] LHarc? 0.07c [1.13c lharc.man] LHarc 1.00 rel E 1989-03-04 [1.13c lharc.man] LHarc 1.01 [1.13c lharc.man] LHarc 1.12 test E 1989-04-23 [1.13c lharc.man] LHarc 1.12b rel E 1989-04-29 [1.13c lharc.man] LHarc 1.13 test E 1989-05-04 [1.13c lharc.man] LHarc 1.13b [1.13c lharc.man] LHarc 1.13c rel E 1989-05-31 [1.13d lharc.man] LHarc 1.13d rel JE 1989-12-22 [1.13d lharc.man] LH 2.02a 1990-11-18 [2.05 history.doc] LH 2.02b 1990-11-21 [2.05 history.doc] LH 2.02c 1990-12-03 [2.05 history.doc] LH 2.02d 1990-12-25 [2.05 history.doc] LH 2.02e 1990-12-27 [2.05 history.doc] LH 2.02f 1990-12-29 [2.05 history.doc] LH 2.03 1991-01-03 [2.05 history.doc] LH 2.03a 1991-01-04 [2.05 history.doc] LH 2.04 1991-01-18 [2.05 history.doc] LH 2.04a 1991-01-20 [2.05 history.doc] LHa 2.05 test JE 1991-01-27 [2.10 history.eng] LHa 2.05a 1991-02-06 [2.13 history.eng] LHa 2.05b test J 1991-02-07 [2.13 history.eng] LHa 2.06 E 1991-02-16 [2.13 history.eng] LHA 2.10 rel E 1991-02-24 [2.13 history.eng] LHA 2.11 rel E 1991-03-03 [2.13 history.eng] LHA 2.12 rel E 1991-03-21 [2.13 history.eng] LHA 2.12a test 1991-04-15 [2.13 history.eng] LHA 2.12b test 1991-07-03 [2.13 history.eng] LHA 2.13c test 1991-07-13 [2.13 history.eng] LHA 2.13 rel JE 1991-07-20 [2.55b history.doc] LHA 2.14 test 1992-03-20 [2.55b history.doc] LHA 2.50 test 1992-07-26 [2.55b history.doc] LHA 2.51 1992-08-10 [2.55b history.doc] LHA 2.52 test J 1992-09-07 [2.55b history.doc] LHA 2.53 1992-09-11 [2.55b history.doc] LHA 2.54 J 1992-10-04 [2.55b history.doc] LHA 2.55 test J 1992-11-15 [2.55b history.doc] LHA 2.55a 1992-11-22 [2.55b history.doc] LHA 2.55b JE 1992-11-24 [2.55b history.doc] LHA 2.60 test 1994-06-10 [2.66 changes.txt] LHA 2.61 test 1994-06-12 [2.66 changes.txt] LHA 2.63 test 1994-07-07 [2.66 changes.txt] LHA 2.64 test 1994-12-03 [2.66 changes.txt] LHA 2.65 test 1994-12-20 [2.66 changes.txt] LHA 2.66 test J 1994-12-30 [2.66 changes.txt] LHA 2.67 test 1995-05-24 [LHA32 2.67.00 changes.w32]
And one version for 32-bit Windows console:
LHA32 2.67.00 test J 1995-10-08
Notes on the Japanese versions
If you want the Japanese versions to look reasonably correct when you run them, like this:
… I suggest using the DOSBox-X DOS emulator. After starting DOSBox-X, run “
chcp 932” first, to switch to the Japanese character set. Then run the LHA.EXE or LHARC.EXE program. If you want to go back to the default character set, try “
chcp 437“, or restart DOSBox-X.
Tamper detection feature
The LHA software makes no effort to validate itself when you run it normally, but interestingly, LHA v2.x does have a validation feature. It’s invoked by using the “t” (test) command on the LHA.EXE file itself. If it passes the test, it prints “This file seems to be ORIGINAL…”. If it fails, it prints either “No file found” or “Broken archive”.
Unfortunately, this feature doesn’t exist in LHarc v1.x, which is what most of the interesting hacks are based on.
While it would presumably be easy to make a modified version that falsely claims to be an original, the only non-original version I found that actually does that is the popular “2.55E” English translation by Hitoshi Ozawa.
I’ve found many files that fail the test, and almost all of them look non-malicious. A common reason for failure is the use of executable compression, such as PKLITE or LZEXE.
I’m not sure how I overlooked this one before, but in addition to the fake 1.14β, there is also a fake 1.14a.
Like 1.14β and LHice, it’s a hack of version 1.13c.
Regarding the trio of LHice 1.14, LHarc 1.14β, and LHarc 1.14a, I can’t guess whether they were all made by the same person, three different people, or what.
LHice was the first of the three to be released, but I don’t know which of 1.14β and 1.14a was next. A careful study of them might reveal the answer.
Something to notice in the 1.14a screenshot is at the lower right where it says “AUTO-LZH.BAT”. Don’t worry about what it’s for; the problem is that it’s incorrect. In the real software (and in 1.14β), it is “AUTOLARC.BAT”. In LHice, it is “AUTO-ICE.BAT”. This makes it pretty obvious that at least this part of the 1.14a hack was derived from the LHice hack of LHarc v1.13c, not directly from the real LHarc 1.13c.
I found a handful of copies of the mysterious “v2.01a” mentioned last time. So it definitely does exist. But it’s also definitely an illegitimate hack of v1.13c. It seems to have fooled a few people that it probably shouldn’t have. Including, y’know, Wikipedia.
I have only found the bare LHARC.EXE executable file, never packaged with any accompanying documentation.
The file size is exactly the same as v1.13c, and the only differences are cosmetic: the “usage” message, some diagnostic messages, and the progress meter.
I see no evidence that it’s connected to LHice and friends. Though, without documentation, I guess there’s not much evidence against it, either.
For what it’s worth, it fixes a typo in one of the messages in the original software:
"Cotinue process? [Y/N] " → "Continue process? "
The person who did this wasn’t dedicated enough to figure out how to increase the string length, so he/she sacrificed the “[Y/N]” prompt to make room.
Having resolved v2.01a, I think I can definitively state that LHarc v1.13d was the last official DOS version of LHarc named “LHarc”, no matter if you go by release date, or by version number.
A thought about character sets
All four of the English-language hacked versions that I’ve discussed (LHice, LHarc v1.14β, v1.14a, v2.01a) use non-ASCII characters in some way. Maybe for the line-drawing characters, or the “β” (technically it’s a “ß” being used as a surrogate for “β”), or especially for the progress meter.
But this software was made by a Japanese guy. In most cases, these characters would not have worked correctly on computers that were configured to support Japanese.
Sure, it’s possible that he would have used such special characters in the English-language versions of his software. But there would have been drawbacks to that, and none of the real versions do it. It’s an easy red flag to look for.
English patches for v2.66 and v2.67
There exist Japanese-to-English patches for LHA 2.66 and LHA32 2.67. The patches convert the error messages to English, though the “usage” message remains Japanese.
The distribution files to look for are “lha266e.exe” and “lha267e.exe”. They only contain instructions for patching the file, not the actual patched file.
Every copy of the 2.66 patch that I’ve seen has an obvious clerical error:
00008A50 70 65 64 00 3A 20 25 73 0A 00 45 6E 74 65 72 20 00008A60 72 63 68 69 76 65 20 66 69 6C 65 20 6E 61 6D 00008A70 65 20 20 20 20 20 20 20 20 20 00 00 45 6E 74 65
There is a missing byte at the beginning of the “8A60” line. It should be:
00008A60 61 72 63 68 69 76 65 20 66 69 6C 65 20 6E 61 6D
The patches are possibly official. I tried the 2.66 patch, and it seems to work as advertised. However, it does not pass the “LHA t LHA.EXE” self-test, regardless of whether I fix the clerical error. (Though it’s possible I didn’t apply the patch correctly — there’s no other way to verify it.)
Still no versions named “LH”. Still no pre-1.0 versions. If any of those versions are out there somewhere, maybe the language barrier is making them hard to find. The change log seems to say that LH appeared on a disk accompanying “C-Magazine”.
The LH versions start at version number 2.02. Maybe that was to avoid confusion with the fake v2.01a DOS version. But there were other third-party 2.00/2.01 versions as well, such as some Atari versions.
Though LHA 2.67 is implied to exist by the LHA32 2.67 documentation, I wouldn’t be surprised if it doesn’t.
One thought on “Updated survey of LHarc and LHA”
there was LH 1.9x versions for -lh2- and -lh3- method.