-
Notifications
You must be signed in to change notification settings - Fork 0
My old project of amputating features of Basilisk II, and re-porting it to SDL, along with fake SCSI
License
neozeed/CockatriceIII
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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)
About
My old project of amputating features of Basilisk II, and re-porting it to SDL, along with fake SCSI
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published