-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
239 lines (179 loc) · 10.9 KB
/
README
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
This is the fifth public version of Cockatrice (update six?)
This version is compiled with GCC 8.1.0 with the -Os flag, as distributed as:
i686-8.1.0-win32-sjlj-rt_v6-rev0
**** THERE IS A BUG IN PARSING PREF FILES, PUT AN EMPTY LINE or a HASH as the
last entry, and everything will be fine!!!!!!!!!!!!!! ****
WHATS NEW? Well the bigges thing is a SDL sound change from rakslice fixing
audio playback of when MacOS would pick strange formats, and not trying to match
it, but forcing SDL to stick to one format as needed. Real Audio, Retrun to Zork,
and many more games now work (Including flash player, KHAAAN!!!)
I also added the ability to force the clock behind allowing timebombed installers
to live like it's 1998
Ive tried to iron out a few prefs bugs, so some of the mysterious
crashing should be over. Ive also integrated DrMinGW in this Win32
build to dump out some debug logs if there is any issues. I've also change
the GCC to build -Ofast as the new recommended level for building neutral
fast applications, and include all the debug information.
Because it's compiled in, it won't upset your normal JIT debugger (assuming
you even have one).
In any event, if you are having issues, give me the CPU type, OS, and
the rpt file, and I can at least have a guess as to why it's crashing.
Enclosed is two executables, the SDL dll that I'm using
(although there is nothing special about it), and all the DLLs associated
with Dr MinGW.
08/22/2013 05:03 AM 124,520 symsrv.dll
02/20/2014 10:13 AM 1,256,112 dbghelp.dll
11/12/2015 06:49 AM 216,064 mgwhelp.dll
11/12/2015 06:49 AM 23,040 exchndl.dll
12/19/2018 01:49 PM 339,968 SDL.dll
03/24/2010 11:32 AM 224,768 qemu-img.exe
02/10/2016 01:01 AM 35,790 ethlist.exe
10/28/2020 01:46 PM 3,914,844 CockatriceIII.exe
To create a new disk image, I've enclosed the qemu-img program.
Just run it something like this:
qemu-img.exe create -f raw scsi0.disk 2000M
and it'll create a 2,000 MB file suitable for Cockatrice III
To further aid people in getting started I threw in a minimal
System 7 & System 8 install in the archive directory.
10/02/2016 01:09 AM 300,061 blank_2gb.7z
09/02/2016 11:53 PM 1,896,688 min7.7z
09/02/2016 11:59 PM 8,868,401 min8.7z
These will extract out to scsi0.disk, so don't overwrite that unless
you want to.
The previous release of Cockatrice, greatly improved
networking speed and stability. I can now copy several GB worth of
data over AppleTalk, while before this was dreadfully slow and unstable.
I've also started to expand the SCSI code to better support the buffer
demands of Basilisk II, so you can now format disks 2GB without it
crashing. I have also started to add primative CD-ROM support, in addition
to the SCSI disk files. The SCSI device #6 is hard coded to be a CD-ROM.
There is no 'hot' insertation method, and ignore/lock are ignored for now.
Simply use the following statement in your config file:
scsi6 <diskfilename>
But at this time, ISO-9660 filesystems will not mount. Only *SOME*
HFS volumes will. I have also made available on sourceforge a 'util' CD
that contains among other things the disk tool from A/UX that can format
any disk. You can find it at:
https://sourceforge.net/projects/cockatrice/files/Utils/
I highly recommend using it if you are starting for the first time. To
force your virtual MAC to boot from the CD use the statements:
disk6 CDUtils.iso
bootdriver -33
bootdisk 6
And this will ensure that the CD-ROM gets boot priority. I've found that
the Macintosh Quadra 800 ROM is the best for running System 7 and 8.
My BasiliskII_Prefs is as follows:
-------------------------------------------------------------------
#screen win/1152/870
screen win/1000/600
#ether slirp
ether {FFFFFFFF-FFFF-7777-FFFF-FFFFFFFFFFFF}
rom Quadra800.rom
bootdrive 0
bootdriver -33
#ramsize 67108864
ramsize 268435456
frameskip 2
modelid 29
cpu 4
fpu true
nocdrom false
nosound false
nogui false
idlewait false
scsi0 OS7.disk
scsi6 CDUtils.iso
disk xfer.dsk
#disk rtz.disk
yearoffset 7
#
-------------------------------------------------------------------
This way my SCSI disk boots instead of trying to boot from the
transfer.hfv volume, which is the default behavour.
is the syntax to add a disk into position 0 of the SCSI bus.
Another 'feature' is that for 68040 emulation you can now disable the
numerical coprocessor. You may find this desierable as it is quite buggy
and things like the scrollbars will function in OS 8.
= Networking
As always, pcap is present, This will allow you to use native networking.
Although this is more geared to wired networking. For wireless, use SLiRP.
There is no tun/tap networking in this version.
To setup the Windows networking, run the program ethlist to determin the
network adapters available in your computer.
C:\BasiliskII\mingw>ethlist.exe
Network devices:
Number NAME (Description)
0 {FFFFFFFF-FFFF-7777-FFFF-FFFFFFFFFFFF} (Local Area Connection)
Press Enter to continue...
In this example there is a single interface. But due to the nature of
Windows, the index number could easily change, but the GUID is what pcap
is expecting and for now that is what you have to specifiy in the
BasiliskII_Prefs file.
In this example you would add the line:
ether {FFFFFFFF-FFFF-7777-FFFF-FFFFFFFFFFFF}
And then you shold be good to go.
When you start Cockatrice, you should then see something similar to this:
C:\BasiliskII\mingw>CockatriceIII.exe
Basilisk II V0.5 by Christian Bauer et al.
Reading ROM file...
Setting up for a 68040, With FPU and 32bit addressing
SCSI Unit 0:scsi0.disk geometry: 50 sectors, 2621440 cylinders, 16 heads
EtherInit with [PCAP]
Pcap version [WinPcap version 4.1.3 (packet.dll version 10, 2, 0, 5002), based on libpcap version 1.0 branch 1_0_rel0b (20091008)]
Ethernet address fe fd 00 00 6e 60
Building packet filter.........!
SDL_Audio inited 16bit, 44100Hz, 2 channels
SDL_Video 600x1000 8bit deep/size 1
Patching a 32-bit clean ROM (version $067c or higher)
On Windows 10 with the newer pcap it will constantly print the following message:
'FATAL Bad Memory Block.'
However as far as I can tell this is 'cosmetic' aka non fatal message from WinPcap.
Linux and OS X users just need to specify the name of their
ethernet interfaces. WIFI ADAPTERS WILL NOT WORK!!! Instead use SLiRP.
You may also need to run this as the root user. In a future release I'll
try a stab at the user mode support, although I think that is a Windows
only thing.
= SLiRP
To use the SLiRP (ie user mode NAT) you simply use the statement
ether slirp
And if your MacOS uses DHCP it'll figure out the configuration
on it's own. Otherwise use the folowing address:
IP 10.0.2.15
NetMask 255.255.255.0
Gateway 10.0.2.2
DNS 10.0.2.3
YOU CANNOT PING ANYTHING ON YOUR NETWORK OR THE INTERNET
with SLiRP mode. This is normal, and expected. If you must ping something
to ensure the stack is working, ping 10.0.2.2. It is the only thing that can ping.
I've done my best to make the SLiRP as stable as possible, but it's possible
that it may fail frm time to time.
But I've downloaded 150MB files at 450KB/sec without issue.
Plenty of things are missing from this version, as it is derived from
BasiliskII version 0.8. I am striving to make it 100% SDL reliant for
system calls, but for now the os x/Linux and MinGW are more tied to UNIX,
while the Visual C++ version is more agnostic. But for now I'm only
happy with the GCC/Clang built versions. But the Visual C++ build is making
great progress
I've mostly tested with os 8.0 for internet stuff, and 7.11 for using
AppleTalk to communicate with Shoebill, and Windows NT AppleTalk servers.
For System 7.1.1 without AppleTalk or OpenTransport I just set the modelid
to 5, and restrict the CPU to 3
Various other ROMs either have booting issues from SCSI, or other errors that
BasiliskII's ROM patches cannot compensate for.
= Y2K and going back in time.
Installers like RealAudio only work in the late 90's they will refuse to work.
I added a config line of:
yearoffset 0
Change it to any number and it'll remove that many billion ticks away from
the offset allowing you to travel back in time.
As of 2020 a 7 sends me back to 1998. Maybe if there is enough need I can
refine it to setting the year/month/date...
-------
C:\Cockatrice\temp\Cockatrice-v0.0-5>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/Program\ Files\ (x86)/mingw-w64/i686-8.1.0-win32-sjlj-rt_v6-rev0/mingw32/bin/../libexec/gcc/i686-w64-mingw32/8.1.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw810/i686-810-win32-sjlj-rt_v6-rev0/mingw32 --enable-shared --enable-static --enable-targets=all --enable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-sjlj-exceptions --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch-32=i686 --with-arch-64=nocona --with-tune-32=generic --with-tune-64=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-pkgversion='i686-win32-sjlj-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-win32-sjlj-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-win32-sjlj-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/i686-810-win32-sjlj-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/i686-810-win32-sjlj-rt_v6-rev0/mingw32/opt/lib -L/c/mingw810/prerequisites/i686-zlib-static/lib -L/c/mingw810/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: win32
gcc version 8.1.0 (i686-win32-sjlj-rev0, Built by MinGW-W64 project)