menu95.exe, extracting Delphi forms and other resources

Menu95.exe was shipped with nearly every Twilight release since May 1997. Menu95 allows easy acces and installation of software released on Twilight, ease of use was a fundamental part of the series succes. When we look closer at the menu, could we find something that we didn’t know before? Time to enter the world of decompilation and inspect every part that Menu95.exe has to offer. The menu to be dissected in this article was taken from Twilight 26.

Introduction

Since release 10 Twilight featured a graphical menu called menu95.exe. This application provided easy access and installation to most of the software on the disc. It replaced the 16-bit menu.exe that worked under DOS. Menu95 looks like this:

menu95 release 26 screenshot

Features

The design of Menu95 is simple and straigtforward. This is exactly why it works for most computer-savy users: it works just like you would expect. The window-size is fixed, back in they day it was pretty big.

Some features of the GUI:

  • Games, Apps and Various split in tabs,
  • Install button for easy install to the harddrive and Start menu,
  • Disk space monitor and space-needed indication.
  • Search option
  • Pictures and specifications on every game and application.
  • General and detailed release information
  • Cool graphics, matching the CD artwork.

Technical specifications

The menu was made with the Delphi computer language. This means it can be easily de-compiled (deconstructed), revealing every aspect of the application as a seperate part. Doing this might uncover some extra information that the menu developers had inserted during build. Are there any easter eggs?

Decompiling

With a software tool called “Resource Hacker” we can see the components Menu95 is made of:  images, windows, texts and logic. Resource Hacker does an amazing job in exporting these resources, as you will see shortly. We’ve found this:

  • Small cover images from releases 10 to 26
  • An RTF file called TLINFO, displayed in a popup window when clicking the TL logo.
  • Delphi windows-forms, with Timage controls: the “26TH RELEASE” is stored in THOOFDMENU.dfm
  • Structured data of every release: this is shown when selecting a different release in the list under “26TH RELEASE”.
  • Table definitions for the .001 file. This file is a bundle of other files (a winrar file).
  • Not so special strings for warnings and error messages and various default images and cursors.

Results

Show and tell: lets review the separate parts and hidden treasures: TLINFO, Release images, winrar-tables and the Delphi forms.

 

TLINFO.rtf

This file contains a standard text intended for the user of the CD or DVD. It’s verbose, explaining fixes for various possible problems. It’s useful information, especially if there’s no internet available. A snippet:

Welcome, once again, to another great release of Twilight! We hope you’ll all enjoy this great collection of software!

CD Contents

The contents is divided into three sections: Games, Apps and Various. This accomodates for easy browsing in the area you’re interested in.

Games

[………]

tlcd@ThePentagon.com

we will keep you informed at

http://www.twilight-cd.com

Till next time, bye bye.

The Twilight Crew

 

 

Release images

These files where embedded as .GIF images, a low-lossless image format. The cd cover is printed using a higher resolution version of the same image. These are some TLCOVER files from the menu:

TLCOVER010  TLCOVER015  TLCOVER018  TLCOVER020  TLCOVER022  TLCOVER026

 

Tables

A tranlation between the .001 file and the games.oo1 file on the first CD (CD A). The second cd just contains folders, not using the RAR container. As shown below, the file crew.rar is stored in the RAR container. The RAR container is probably used to reduce file size.

000DF9C8  63 72 65 77 2E 72 61 72 00 00 00 00 00 00 00 00   crew.rar••••••••
000DF9D8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ••••••••••••••••
000DF9E8  67 61 6D 65 73 2E 30 30 31 00 00 00 00 00 00 00   games.001•••••••
000DF9F8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ••••••••••••••••
000DFA08  30 00 00 00 61 00 6F 00 65 76 69 6C 6B 6E 69 65   0•••a•o•evilknie
000DFA18  2E 72 61 72 00 00 00 00 00 00 00 00 00 00 00 00   .rar••••••••••••
000DFA28  00 00 00 00 00 00 00 00 67 61 6D 65 73 2E 30 30   ••••••••games.00
000DFA38  31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   1•••••••••••••••
000DFA48  00 00 00 00 00 00 00 00 B9 00 6F 00 33 5D 8C 02   ••••••••¹•o•3]Œ•
000DFA58  66 6F 66 2E 72 61 72 00 00 00 00 00 00 00 00 00   fof.rar•••••••••
000DFA68  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ••••••••••••••••
000DFA78  67 61 6D 65 73 2E 30 30 31 00 00 00 00 00 00 00   games.001•••••••
000DFA88  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ••••••••••••••••
000DFA98  14 5E FB 02 41 39 93 01 6D 61 78 32 2E 72 61 72   •^û•A9“•max2.rar

Delphi Forms

Last but not least menu95 holds some unencrypted / unobfuscated Delphi forms. These can be exported and edited by a Delphi editing tool. One still exists as of today, called Delphi XE3. It largely has the same or less functionality/usability as Borland Delphi 4. It’s a shame the language is so ill-treated by it’s new owners “Embercadero”.

Back to the forms: you can edit them with Delphi XE3. Below you can see the structure of the form, where it is easy to move and change components. The important parts are the images. Resource Hacker made it easy to export the Delphi forms, but the images on the form are stored in a hexidecimal “TImage” format. This format cannot easily be changed to BMP, although they are BMP images.

delphiform

Delphi XE3 also doesn’t have a feature for exporting images. Yet, it’s possible to change the layout of the form and thus removing the previous releases slider. Using a screenshot and MSPAINT, the header images can be extracted.  Here are the header images from the Delphi form:

26threlease tllogo_delphi

 

Conclusion

Menu95 is a basic and straight-forward functioning application. It does exactly what it is supposed to and that with an intuitive user-interface. The decompilation process was easy and straightforward, using free or trial tools publicy available. Components inside the menu95 application do not have a distinguishing name: the images TL and 26TH RELEASE are called TImage1 and TImage2. Labels and buttons are called Label1, Label2, Button1, Button2, etcetera. There is nothing special about this application.

Being exceptionally un-special is what makes this menu useful even after 15 years of publication. Browsing still works, disk-space indication still works and it might even be the case that installation also works like a charm. On the other hand, many old games probably don’t work. Maybe Awesome Retro will test this one day.

Being not special means no special easter-eggs have been found. But the experience of decompiling was educational, easy and fun. Do try this at home soon. Menu95 from various editions will be shared on this website in the Downloads section.

One Response

  1. HcH
    HcH June 4, 2019 at 2:03 pm | | Reply

    Very nice read, interesting as well!

    I’ve been interested in how they made these menu’s myself back in the day.

    I found out it’s a hack of Smart-Projects’s “cdmenu”.

    The Smart-Projects website doesn’t offer the old 90’s archive of this menu and it’s PET maker, but I have them, email me if you want the original cdmenu development files.

    This is such a nice website, good memories.

Leave a Reply