Just downloaded it. I don't have my Visual Basic Express with me here but I'll be analyzing it soon.
Currently, I'm taking a not very deep look at the code. Your work is excellent, always remember that.
But like any programmer (including me and Bill Gates) you work has some errors. I spotted some in the first look.
First, I told you to
separate the I/O logic from User Interface but you didn't do it completely. Your User-interface code (frmMain.vb) opens registry keys and file streams. It shouldn't. You User Interface code should do none of these. It is the duty of LGP Stream class or DeLGP class. (Hey, I don't see a DeLGP class yet.) The only duty is be an interface between user and LGP Stream/DeLGP classes. Be warned: If you deviate from this rule, you'll end up being entangled with bugs that you cannot easily find its source. (Besides, you won't be able to easily extend your program to support drag-and-drop, command-line parameters and shortcuts. But this not as important as strange bugs.)
Second,
you must not use any form of Unicode in your file I/O, not even
UTF-7 and
UTF-8. The reason is: a single Unicode character can occupy more than one byte. You are developing a software for a game that is created in 1995-1998, so you should only use
ASCII encoding in file I/O.
Windows 1252 can also be a temporary encoding solution. Meanwhile, your user interface must use Unicode format to work well on all computers will all languages all over the world. You need to constantly convert between ASCII and UFT-8 but that's easy and convenient.
Third, do not cause unnecessary inconvenience for your users. For example, your Open dialog box should always remember that last folder. Try opening mulltiple LGP files outside Final Fantasy VII folder in a row and you'll know what I mean. If you wish, you can add a shortcut to Final Fantasy VII folder in the Open dialog box (in its shortcut bar) but always remember the last folder that is opened.
I'll start analyzing the code soon. I'll test your code with all the LGP files in FF7 and then I'll report in.
EDIT: In the mean time, you'd better take a look at this:
http://www.joelonsoftware.com/articles/Unicode.html