Skip to content

Commit

Permalink
Large update
Browse files Browse the repository at this point in the history
  • Loading branch information
JHRobotics committed Apr 10, 2023
1 parent 768b2d6 commit f973efa
Show file tree
Hide file tree
Showing 47 changed files with 1,705 additions and 261 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Treat all needed for boot freedos as binary (don't do CRNL<-->NL conversion)
boot/* binary
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "nocrt"]
path = nocrt
url = https://github.com/JHRobotics/nocrt
11 changes: 11 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
0.8.50
- Support for Windows 95 4.0.950
- "exact mode" removed, replace is batch mode, with simpler actions but offers
more powerful combinations
- Boot floppy now contain CD driver and utilities for create system disk and
copy files (fdisk, format, xcopy)
- improved TLB patches for 98 and Me (are more complicated, but should be but
more stable)
- more portable Win32/64 build (removed dependency on MSCRT.DLL) and default
path is now current work directory if program is running on NT

0.7.45
- CPU Speed Limit bug is now supported and fixed
- Using -millennium argument is no longer needed, Me patch is included in TLB set
Expand Down
261 changes: 147 additions & 114 deletions Makefile

Large diffs are not rendered by default.

48 changes: 45 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,41 @@ Patch will be run in interactive mode and the default strategy (*patch files, VM

![Successfuly working Windows 98 - AMD](/doc/amd-5-3500u.png)

### Patching installation media
## Operation modes

### Interactive mode
This is default mode, the program asking questions and user answear. You can just double click on EXE (or type `patch9x` to DOS command prompt) and program guide to you in patching process. For Linux build, the help is prinded if no arguments are given (default behaviour for UNIX programs) so you need specify *path*.

### Automatic mode
Same as interactive but don't ask anything. Can be enabled with `-auto` switch and *path* to CAB files or 9x WINDOWS/SYSTEM directory needs to be specified.

### Batch mode
In this mode program operate with single steps. Examples:

Extract `VMM32.VXD` from instalation media
```
patcher9x --cabs-extract D:\WIN98 VMM32.VXD
```

Extract VMM.VXD from VMM32.VXD
```
patcher9x --vxd-extract VMM32.VXD VMM.VXD
```

Patch individual File
```
patcher9x --patch-tlb VMM.VXD
```

Patch VXD archive
```
patcher9x --patch-all VMM32.VXD
```

## Boot floppy
Boot floppy now contain CD driver and few utilities to prepare system disk. If you wish run Windows Installer from boot floppy, add `/NM` switch to `setup.exe` (because of different memory manager, the setup cannot determine real RAM size). Utilities are listed in [boot/info.txt](boot/info.txt).

## Patching installation media
Copy the content of *win9x* folder (or *win95* - for Windows 95 or *win98* - for Windows 98)
from a CD / extract it from an ISO image. Then run:
```
Expand All @@ -78,10 +112,16 @@ If the patch is successful, you can copy the modified files back to the image. T

The Windows installer primarily takes files from the installation folder and if it can't find them, it'll scan the CAB archives instead.

For Windows 95, it is better to patch the installation media, or you will need to install the patch twice - after the first reboot and again after the installation of the net.
For Windows 95, it is better to patch the installation media, or you will need to install the patch twice - after the first reboot and again after the installation of the network.

**Please note, that file `VMM32.VXD` from installation IS NOT THE SAME as the file in `Windows/system` folder. Don't interchange them! See the _Patching process_ section to know more about the VMM files.**

## More informations

Check **patcher9x** thread at Vogons: https://www.vogons.org/viewtopic.php?f=24&t=88284

Check GPU driver for Windows 9x: https://github.com/JHRobotics/softgpu

## Build from source

To build from source you need:
Expand Down Expand Up @@ -112,6 +152,8 @@ make RELEASE=1 PROFILE=djgpp
make strip
```

MinGW compiled programs are linked with `msvcrt.dll` by default. To eliminate this depency (`msvcrt.dll` is missing all Windows 9x versions where isn't IE 4 or better), this project can use my [NOCRT](https://github.com/JHRobotics/nocrt) library. Use `make PROFILE=nocrt` or `make PROFILE=nocrt64` to compile program for Windows with depency only to `kernel32.dll`.

**Executable file name for most real operation systems is called `patcher9x`. For DOS, it is called `patch9x.exe` because file names are limited to 8+3 characters.**

## Patching process
Expand Down Expand Up @@ -149,4 +191,4 @@ If you want to know more about the code, see file [speed.inc](cpuspeed/speed.inc

## Development

In future I would like include ~~patch "CPU speed limit" (95, 98 FE)~~ and patch 48-bit LBA (95, 98, ME).
In future I would like include ~~patch "CPU speed limit" (95, 98 FE)~~ and patch 48-bit LBA (95, 98, ME). Memory limit patch I want include too.
Loading

0 comments on commit f973efa

Please sign in to comment.