Jump to content

Windows 98 3rd edition?


janus zeal

Recommended Posts

I have investigated the Advanced Inf DelDirs command. However it doesn't work quite well. Most of the time folders are not deleted. So I came up with this for MDAC uninstall. Notice advpack.dll is called for the Advanced Inf instructions:

...
HKLM,%KEY_RUNONCE%,"MDACPostRun",,"%25%\rundll32.exe advpack.dll,LaunchINFSection %17%\mdac28.inf,MDAC.PostUninstall"
HKLM,%KEY_OPTIONAL%\MDAC,Installed,,"0"

[MDAC.PostUninstall]
DelFiles = MDAC.Files.Sys,MDAC.Files.ADO,MDAC.Files.MSADC,MDAC.Files.OleDB
RunPostSetupCommands = MDAC.Remove.PostSetupCommands:5

[MDAC.Remove.PostSetupCommands]
"%25%\command.com /c rd /s /q ""%28730%\System\ADO"""
"%25%\command.com /c rd /s /q ""%28730%\System\MSADC"""
"%25%\command.com /c rd /s /q ""%28730%\System\OLE DB"""

Is this a safe method to uninstall folders?

Hello.

The best way (imo) to delete folders using INF files is to use the rundll32 advpack.dll,DelNodeRunDLL32 command.

For example:

[MDAC.Remove.PostSetupCommands]
rundll32 advpack.dll,DelNodeRunDLL32 %28730%\System\ADO
rundll32 advpack.dll,DelNodeRunDLL32 %28730%\System\MSADC
rundll32 advpack.dll,DelNodeRunDLL32 %28730%\System\OLE DB

Hope this helps.

P.S. The DelDirs command will ONLY work on "empty" folders; while DelNodeRunDLL32 will delete ALL folders and subfolders regardless of whether or not the target folder is empty...

Edited by Liverpool FC
Link to comment
Share on other sites


Thanks for your help Liverpool FC. Welcome on MSFN :thumbup

I have MDAC almost finished now as concerns the MDAC 2.8 SP1 stuff. However to completely cover Windows 98SE Setup Files I'll continue work on Jet 4.0 SP8 + updated ODBC Drivers.

I admit not very spectecular to begin with. However these MDAC components are not integrated so hard in the Windows system. So an easy target for testing.

When setup seems rock solid I can work on Internet Explorer and DirectX. That means option to install Windows 98SE without Internet Explorer, OR install complete updated Internet Explorer 6. And if you change mind later having your system running you can change it anyway.

Edited by hp38guser
Link to comment
Share on other sites

I have also begun work on a "third edition", but I have a few questions:

1. Which CABs must retain their names?

2. Is it possible to install by just running setup program in a directory full of the contents of the CABS unpacked (i.e. the few thousand separate files much like in i386 of NT-based windows instead of separate CAB files)

3. Is it possible to pack all files together in one large CAB file and use that to install?

Virtual PC 2004 is a free download from Micro$oft. It will be very useful to use for testing purposes.

So far I have approximately 320Mb of files from all the unpacked cabs, and am figuring out which ones to update, remove, and add; along with the associated INF-editing, this is no easy task!

Link to comment
Share on other sites

Would good old batch files and wininit.ini be useful to perform an option the user selects, the required files could then be just rars split into the relevant packs available to select (982me etc). The options menu being available on first bootup after a basic install., or on first runup after setup is complete.

Perhaps save any major headaches with the cab files

Link to comment
Share on other sites

Would good old batch files and wininit.ini be useful to perform an option the user selects, the required files could then be just rars split into the relevant packs available to select (982me etc). The options menu being available on first bootup after a basic install., or on first runup after setup is complete.

Perhaps save any major headaches with the cab files

Thats what i was thinking, except i was going to try to make my own image-based install, then have other rars decompress on first boot. this might cause hardware/driver problems though, so idk. wininit and batch files sounds good. ^_^

Link to comment
Share on other sites

I have also begun work on a "third edition", but I have a few questions:

1. Which CABs must retain their names?

2. Is it possible to install by just running setup program in a directory full of the contents of the CABS unpacked (i.e. the few thousand separate files much like in i386 of NT-based windows instead of separate CAB files)

3. Is it possible to pack all files together in one large CAB file and use that to install?

Virtual PC 2004 is a free download from Micro$oft. It will be very useful to use for testing purposes.

So far I have approximately 320Mb of files from all the unpacked cabs, and am figuring out which ones to update, remove, and add; along with the associated INF-editing, this is no easy task!

Q1: I don't know the answer to this, but I will assume ALL the major CABs must be present... (i.e., BASEx.cab, MINIx.CAB, DRIVERx.cab, WIN98_XX.cab). An exception to this would be WIN98_OL.CAB.

Q2: If installing using Microsoft's own (Windows 98) SETUP.EXE, I believe the answer to your question would be "no".

Q3: If you're talking about packing "external" (non native windows files such as drivers/3rd party apps), then YES. Otherwise the answer would be "no"... The simplest and easiest solution would be to place all the updated files into the Windows 98 setup directory (the folder containing all the CAB files). I've been modding my Win98 setup for years, and this has always been my preferred method. I've tried just about all other methods mentioned here and elsewhere but none seem to work correctly, if at all.

As for installing device drivers, I place these files in a separate cabinet (e.g. DRIVER.CAB). The same goes for installing other custom apps. Works like a charm IF everything is in place...

Edited by Liverpool FC
Link to comment
Share on other sites

I'm making progress, altough very slow.

What's this about?

- MDAC 2.8 SP1 + security updates

- Jet 4.0 SP8 + security updates

- TweakUI 1.33

Basicly this is a demonstration how we could integrate custom components into Windows 98SETUP. It works quite well, altough not perfect. This is caused by other Windows components interfering with it currently.

Note this is for Dutch Windows 98SE. Unpack files into 98SETUP directory, leaving the Directory structure intact. You should now have an extra folder "apps" inside 98SETUP directory.

To test on any other language of Windows 98SE, don't copy over setuppp.inf but edit the file manually by simply commenting out mdacinst.inf under [load_inf] section.

If all is placed right Setup should give extra options under Tools Section!

IntegratorProjectNL-080906.zip

Please give me feedback on this

Link to comment
Share on other sites

I have also begun work on a "third edition", but I have a few questions:

1. Which CABs must retain their names?

2. Is it possible to install by just running setup program in a directory full of the contents of the CABS unpacked (i.e. the few thousand separate files much like in i386 of NT-based windows instead of separate CAB files)

3. Is it possible to pack all files together in one large CAB file and use that to install?

Virtual PC 2004 is a free download from Micro$oft. It will be very useful to use for testing purposes.

So far I have approximately 320Mb of files from all the unpacked cabs, and am figuring out which ones to update, remove, and add; along with the associated INF-editing, this is no easy task!

Q1: I don't know the answer to this, but I will assume ALL the major CABs must be present... (i.e., BASEx.cab, MINIx.CAB, DRIVERx.cab, WIN98_XX.cab). An exception to this would be WIN98_OL.CAB.

Q2: If installing using Microsoft's own (Windows 98) SETUP.EXE, I believe the answer to your question would be "no".

Q3: If you're talking about packing "external" (non native windows files such as drivers/3rd party apps), then YES. Otherwise the answer would be "no"... The simplest and easiest solution would be to place all the updated files into the Windows 98 setup directory (the folder containing all the CAB files). I've been modding my Win98 setup for years, and this has always been my preferred method. I've tried just about all other methods mentioned here and elsewhere but none seem to work correctly, if at all.

As for installing device drivers, I place these files in a separate cabinet (e.g. DRIVER.CAB). The same goes for installing other custom apps. Works like a charm IF everything is in place...

Thanks for the reply. I've been doing some investigation, and it seems that only MINI.CAB and PRECOPY1/2.CAB need to retain their filenames since they are hardcoded into the setup executable. MINI.CAB is actually a stripped-down Windows 3.11, which provides a GUI shell for the main setup program w98setup.bin. PRECOPY1.CAB (spanned over to PRECOPY2.CAB) contains the main SETUPPP.INF file and LAYOUT.INF, LAYOUT1.INF, and LAYOUT2.INF. The LAYOUT*.INF files determine the location of each file that exists in the 98 distribution, so it should be possible to use any sort of layout for the files. The strange thing is that these INF files, supposedly generated by MakeCAB, contain references to themselves being in PRECOPY1.CAB and PRECOPY2.CAB, and I don't understand how that is possible. Perhaps they were added afterwards, but how M$ was able to determine the filesizes is still a mystery to me...

I am well aware of the method of placing files "free-floating" in the directory with the CABs, but that is not the best solution. I want to repack the CABs so they contain the updated files already, and also remove some useless files. Thus "Windows 98 Third Edition", not "Windows 98 Second Edition + etc."

Link to comment
Share on other sites

I've figured it out now. The generation of the CAB set has to be done in several passes.

On the first pass, layout*.inf will be present in the source, but just as a dummy file.

The generated INF is then split into portions 64k or less (limitation on INF file size) and reinserted into the source, then MakeCAB is run again.

Now, the layout*.inf can reference themselves.

Below is the description file I have so far. I have annotated it with files that definitely need to be updated.

In addition, I would like a comprehensive list of all the updated files that are available, so that I can replace the existing version with a newer one.

Edit: Couldn't attach it, nor put 6000+ lines in my post :(

http://rapidshare.de/files/28846750/MAKE98TE.txt.html

Edited by LLXX
Link to comment
Share on other sites

Would good old batch files and wininit.ini be useful to perform an option the user selects, the required files could then be just rars split into the relevant packs available to select (982me etc). The options menu being available on first bootup after a basic install., or on first runup after setup is complete.

Perhaps save any major headaches with the cab files

Thats what i was thinking, except i was going to try to make my own image-based install, then have other rars decompress on first boot. this might cause hardware/driver problems though, so idk. wininit and batch files sounds good. ^_^

Batch files would also enable us to have a selective install without preadded system and program bloat, it could also gives us the ability to choose win95 or me shell, have or replace internet explorer with firefox,off by 1 (lower security risks) choose beween media player or media player classic and have a firewall choice add other things here. If it is modular users only need to have the packages they choose to and do not need to download setup cabs which they might never use and certainly would not want sitting in their system folder doing nothing apart from increasing os folder size ( the relevant updated additional system files being added as required, the core ones at a basic level during first setup). Plus we dont tread on any eula issues)

Just my pennies worth

If Carling did an 98TE operating system

Link to comment
Share on other sites

It looks like my rebuilt install of 98se wasn't done properly...

I put all the files in a directory "Win98" of ISO, and added the original boot-image from my 98SE CD. Saved the ISO and attempted to boot it in Virtual PC. Everything goes as normal until the "Windows is preparing Setup" dialog box - the progress indicator reaches 100% and then stops there, although there is continuing disk activity. After 10 minutes it is still at the same situation.

After rebooting the virtual machine, it boots the CD but freezes at loading Setup. Subsequent tries give the same result.

What is causing this? Is it a badly built install, corrupted ISO, or fault of Virtual PC?

Link to comment
Share on other sites

also, is there a point to this, because of the Seven Years Later Project? http://www.msfn.org/board/index.php?showtopic=53392
That project seems to have died.

It's been resurrected!

I'd be interested if any progress is made integrating any additional drivers into a clean unattended Win98 setup, in particular the best thing would be to set a path (say: %CDROM%\drivers\) and any drivers that get dumped in that folder are included in the drivers that Windows looks for when installing all the hardware. This is the last hurdle before making the absolute ultimate unattended boot cd edition of Windows 98.

But apart from that, the Windows 98 seven years later project will do everything else on the Windows 98 3rd edition wish list. No point duplicating effort, a lot went into mine! The project is being updated as we speak ...

Link to comment
Share on other sites

It looks like my rebuilt install of 98se wasn't done properly...

I put all the files in a directory "Win98" of ISO, and added the original boot-image from my 98SE CD. Saved the ISO and attempted to boot it in Virtual PC. Everything goes as normal until the "Windows is preparing Setup" dialog box - the progress indicator reaches 100% and then stops there, although there is continuing disk activity. After 10 minutes it is still at the same situation.

What is causing this? Is it a badly built install, corrupted ISO, or fault of Virtual PC?

I think your problem is cabinet chaining. Setup thinks it's decompressing the precopy cabs but instead is decompressing all 300+ megs worth of files. Solution: In pass two (when inserting the updated layout.inf files) you need to compress only the precopy* cabs (so you need two ddf files, one for the full pass and one for just making precopy*.cab).

Edited by glaurung
Link to comment
Share on other sites

Thanks, but I figured it out already. Now it doesn't freeze at that point.

However, if I use my own layout INFs generated by MakeCAB/Diamond, I get strange errors such as not being able to find license agreement etc. even though the required files are certainly extracted and copied to wininst0.400. If I use the existing layout INFs, everything proceeds normally :}

Possibly it has to do with the file ordering and how I split the files (64k limit for INFs, that's why there's layout.inf, layout1.inf, and layout2.inf)

Link to comment
Share on other sites

However, if I use my own layout INFs generated by MakeCAB/Diamond, I get strange errors such as not being able to find license agreement etc. even though the required files are certainly extracted and copied to wininst0.400. If I use the existing layout INFs, everything proceeds normally confused.gif

Possibly it has to do with the file ordering and how I split the files (64k limit for INFs, that's why there's layout.inf, layout1.inf, and layout2.inf)

My best guess is that at some point in the process, setup is only able to see the first layout file, or something stupid like that. So, the list of files in the layout*.infs need to be in the same order as in the original factory generated ones.

The way to do this is to use a relational ddf for the first pass. Makecab gives details; basically you list all the files to compress in the order that they are to be put into cabs (using the same order as the originals, which you get by listing the contents of the cabs using extract). Then you list all the files again, this time in the order in which they are to be put in the inf file list that makecab generates.

There's a command to insert stuff into the inf as its being generated, .infwrite I think. You can use it at the break points between the layout.infs in the second half of the .ddf, to make your job of slicing and dicing the generated layout.inf into three easier, but the documentation is wrong in this as in several other points: it will not insert a commented line in the inf (drove me nuts for a while until I figured that out).

The only "gotcha" to a relational ddf is that you can't have any duplicate files in the compression list, but there are duplicate files (three of them, IIRC) between precopy* and base*. Maybe Microsoft generated the inf using a tool they never released to the public. What you can do is make copies of those duplicate files with dummy names. In pass one, compress the dummy copies to precopy. Then replace the dummy names with the original names when you're cutting the layout.inf into three parts, and in pass two, compress the real files to precopy.

Oh, and you don't need the checksums that are in the original layout files for a couple of dozen files out of the six thousand, which is a good thing since the makecab documentation is even more obscure than usual in explaining how you can insert stuff like checksums after a single specified file.

As you may be able to tell, I've been down the road you're on myself. Don't worry, it is possible to do this and have an updated set of install files that will do an install with no errors.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...