MAME Reproducible CHDs

Changes On Branch jazz-nt
Login

Changes On Branch jazz-nt

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch jazz-nt Excluding Merge-Ins

This is equivalent to a diff from cdb0568949 to c15788dc4d

2026-01-30
17:42
Merge jazz-nt into trunk check-in: d219ed4a13 user: chungy tags: trunk
2026-01-20
05:56
Update all the NT recordings in accordance to Forum thread 2026-01-19T04:14:52z.

All the operating systems now install to a single FAT partition on the hard disk rather than multiple partitions (ARC and OS). It maintains that C: is the only disk partition in the OS, and if no other hard disks are present, D: is the CD-ROM drive. Closed-Leaf check-in: c15788dc4d user: chungy tags: jazz-nt

2026-01-08
22:15
Add detailed instructions on booting the WinNT images. check-in: 14050c352e user: chungy tags: jazz-nt
20:12
Add hard disk image for Windows NT 3.1 on mmr4000le. check-in: c15f7ea119 user: chungy tags: jazz-nt
2025-04-11
06:57
Hard disk image for FreeDOS 1.4 check-in: cdb0568949 user: chungy tags: trunk
2025-04-10
07:14
Shorten README text, removing "If viewing on GitHub"... check-in: 00f33dd80a user: chungy tags: trunk

Added jazz-nt/README.md.


















































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Windows NT on mmr4000le (MIPS R4000 CPU)

These are pre-made hard disk images for Windows NT 3.1, 3.51, and 4.0.
All these images were recorded with MAME 0.284 with the commit
`c80d828c` cherry-picked on top of the 0.284 release.

In order to recreate the disk, you must have the Windows NT 3.1, 3.51,
and 4.0 installation CD-ROMs, specifically the images defined in the
MAME generic_cdrom software list.  At a minimum, the following files
are needed:

 * `winnt31/en-us windows nt 3.10.528.1 1994.chd`
 * `winnt351/en-us windows nt workstation 3.51.1057.1.chd`
 * `winnt40/en-us windows nt workstation 4.0.1381.2.chd`

Images from other sources may not reflect these releases, and the
input recordings will likely desync.

## Running the installation input

In order to recreate the disks, hard disk images with the CHS geometry
set to 1040,16,63 must be created.

 1. Have the Windows NT images mentioned above available in some path.
 2. Create an empty CHD: `chdman createhd -o winnt31.chd --chs 1040,16,63`
 3. Run MAME’s mmr4000le driver with these parameters: `mame mmr4000le -nonvram_save -nvram_directory /dev/null -harddisk ./winnt31.chd -cdrom winnt31 -playback winnt31.inp -nothrottle -exit_after_playback`

Change the file names, especially for the `-cdrom` and `-playback`
parameters for the other versions as desired.

On vanilla MAME versions 0.274 through 0.284, you will need to specify
a file path to the Windows NT installation image.  Starting from
[commit
c80d828c](https://github.com/mamedev/mame/commit/c80d828cf1b122e1e6979cb8c61f25f532184163),
MAME has a generic_cdrom list and the `jazz.cpp` driver is connected
to it, making the shortname usable.

## Running a pre-installed hard disk

The mmr4000le driver requires some configuration in order to boot one
of these images and they are saved in the system’s nvram files.  The
paths to the operating system loader changes in each release, but
generally from a clean nvram boot:

 1. Select `Run setup`
 2. Select `Initialize system`
 3. Select `Set default configuration`
 4. You can press Enter through all the options.  The main thing you
    might want to change is screen resolution, it defaults to
    1280×1024.  A smaller resolution might be more comfortable.
 5. Select `Set default environment`
 6. The boot partition partition must be set to `2`.  You can press
    enter on the other options.
 7. *Semi-optional:* select `Set time`.  The clock sometimes starts up
    with an invalid triple-digit hour and Windows NT might boot up
    thinking the date is far in the past or far in the future (I’ve
    seen both the years 1601 and 6781 when ignoring this step).
 8. Select `Return to main menu`
 9. Select `Manage startup`
 10. Select `Add a boot selection`
 11. Press enter for `Scsi Hard Disk 0 Partition 2`
 12. Enter the osloader path.  It defaults to `\os\nt\osloader.exe`
     and this is fine for Windows NT 3.1.  Change to
     `\os\winnt351\osloader.exe` for Windows NT 3.51,
     `\os\winnt40\osloader.exe` for Windows NT 4.0.
 13. Answer `No` to “Is the operating system in the same partition as
     the osloader?”
 14. Select `Scsi Hard Disk` and SCSI ID `0`.  Enter the partition
     number `1`.
 15. For Windows NT 3.1 and 4.0, the operating system directory
     `\winnt` is fine.  For Windows NT 3.51, change it to `\winnt35`.
 16. *Optional:* Enter a name for the boot selection.  It default to
     having “Windows NT” filled out, and you may just accept that.
 17. Select `No` to “Do you want to initialize the debugger at boot
     time?”
 18. Select `Return to main menu`
 19. Select `Exit`

From this point, the computer will reboot and you should have a
Windows NT entry to boot.

Windows NT requires pressing Ctrl-Alt-Delete before logging on.
Depending on operating system and window manager, the literal sequence
might not be possible.  I suggest rebinding a key so that you can
press them.  I prefer to set my real right-control key to be the same
as left-alt, then I can press both control keys and delete.

## Methodology and motivation

While MAME from versions 0.219 through 0.284 already contain hard
disks for Windows NT 3.5, 3.51, and 4.0 on the “jazz” computer
(Microsoft’s codename for their own MIPS workstations), they predate
MAME’s inclusion of the operating system installation media itself,
making the source a little unknown.  They were also installed in 2020
and the file systems reflect that with 2020 dates throughout the
system.

Preferring to have provably reproducible images, I have set out to
make new images, with the date and time set to be identical to the
files on the Windows NT installation CD-ROMs themselves, this is
assisted by recording with MAME under the `faketime` command.  Having
file dates in the 1990s looks a lot more natural for these versions
than a 2020 date.

I initially wanted to use NTFS for the operating system partition on
all the versions, but I found that only NT 3.1 accepts this
configuration for some reason, 3.51 and 4.0 insist on being FAT, even
with the ARC files existing on an independent partition.  For
consistency, all these operating systems are installed onto FAT.  Each
was given only a half-gigabyte drive, but with a dearth of software
available for Windows NT on MIPS, it should not an issue.  A secondary
hard disk can also be installed to expand the utility as needed.

Emulation was halted after the GUI installation phase.  The first boot
of the system in Event Viewer will reflect the time you start the
emulator up, rather than the installation time.  The `winmsd` program
can reflect the true installation time.

At the time of writing (January 2026), I have been unable to
successfully install Windows NT 3.5, neither with the image included
in MAME nor multiple alternative CDs, including the one with debugging
symbols not stripped out.  I do not believe this to be an issue with
the installation media, but with MAME’s emulation.  How the existing
3.5 hard disk was created, I do not know; it is possible MAME has
suffered a regression, but strange that the other versions work.

### No server versions

MAME includes installation CD-ROMs for the server editions of Windows
NT, and they can be installed on mmr4000le.  As of January 2026, the
driver does not support networking and providing server pre-installs
would wind up with an operating system effectively like the client
counterpart, only with worse foreground application performance.

If and when mmr4000le becomes capable of networking, it will be
desirable to set server configuration yourself and a pre-made disk
image may not be useful.
Added jazz-nt/winnt31.inp.

cannot compute difference between binary files

Added jazz-nt/winnt351.inp.

cannot compute difference between binary files

Added jazz-nt/winnt40.inp.

cannot compute difference between binary files