Announcing Cockatrice III 0.5g

Now with better pcap filter in place. I had an issue with 86box and how NetBEUI wasn’t working. It didn’t hit me at the time but cold-brewed caught it, that the 86box didn’t have the multicast addresses in the default pcap filter.. We need the filter to not send EVERY packet to the VM, and to also filter out the VM’s own packets so it doesn’t loop and send traffic to itself (which hopefully would just get discarded, but there is no point doing it in the first place!)

Before I had it set to this:

(ether dst 09:00:07:ff:ff:ff) or (ether dst ff:ff:ff:ff:ff:ff)

It’s allowing one Multicast address for AppleTalk and the general ethernet broadcast address. Which is more or less okay but for everything else, you want to catch a wider net. The better choice is to use built in pcap macros:

((ether broadcast) or (ether multicast)

I can confirm that these do work for 86box, so I’ve copied the same into Cockatrice III. For those who wonder what the difference between Basilisk II & Cockatrice III is, I basically took a super old version of Basilisk II, ripped out as much platform code as I could, re-ported it to basic SDL, removed all the fancy clipboard/meta/drive sharing integration code, added a pcap network option to use the raw network for AppleTalk, and took the SCSI emulation from Previous so I can partition and format virtual ‘SCSI’ disks that I’ve even been able to use in a BlueSCSI!. I’ve sat down with a debugger some years ago and went through the SLiRP code catching as many faults when using Internet Explorer as I could, I think most of the ‘fix’ involved renaming clashing symbols, and while it’s not perfect it was a lot more stable than the default stuff. Although I haven’t touched it in years, and probably should look to borrowing a more modern version from elsewhere.

0.5g in action

Linking this thing with TDM GCC is becoming a bit of a challenge so in case I forget here is how I’m currently statically linking libgcc/libg++ along with winpthread. All it should need now is SDL & working WinSock which every Win32 should have!

c++ -o CockatriceIII.exe        obj/main.o obj/main_sdl.o obj/prefs.o obj/prefs_dummy.o obj/sys_unix_sdl.o obj/rom_patches.o obj/slot_rom.o obj/rsrc_patches.o obj/emul_op.o obj/macos_util.o obj/xpram.o obj/xpram_dummy.o obj/timer.o obj/timer_common.o obj/clip_dummy.o obj/adb.o obj/serial.o obj/serial_dummy.o obj/ether.o obj/sony.o obj/disk.o obj/cdrom.o obj/scsi.o obj/video.o obj/video_sdl.o obj/audio.o obj/extfs.o obj/user_strings.o obj/user_strings_unix.o obj/sdl_pcap.o obj/scsi_dummy.o obj/audio_sdl.o obj/prefs_editor_dummy.o obj/basilisk_glue.o obj/memory.o obj/newcpu.o obj/readcpu.o obj/cpustbl.o obj/cpudefs.o obj/cpuemu.o obj/fpu_ieee.o cockatricerc.o ..\slirp\libslirp.a ..\drmingw-0.7.7-win32\lib\libexchndl.a -Wl,-Bdynamic -lSDL -lws2_32  -liphlpapi -Wl,-Bstatic -lgcc -lstdc++ -lwinpthread -static -static-libgcc -static-libstdc++

I’ve been able to map to my internal servers just fine, and connect using Internet Explorer so I suppose everything is fine!

All the cool kids love github so here you got, you can get it from the latest releases:

Releases ยท neozeed/CockatriceIII (github.com)

I’ll have to re-sync sourceforge. Although I do keep more resources on sourceforge since it’s clearly a lot better at file hosting.

13 thoughts on “Announcing Cockatrice III 0.5g

  1. Wait, you wrote (well, forked?) Cockatrice?? Something else to thank you for!! I forget why I had to use it, but it was probably for the same reasons you decided to get it out there ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚

    • I originally wanted a more ‘stable’ version. I had Basilisk II crash on me while I was doing something else, and it was some large thing I’d put on the clipboard. So I had thought the emulation works well enough but it was all the fancy features that were killing it, so that started the journey of just cutting out as much as I could. The next big things was the SCSI ass through to the Pervious SCSI library as until Qemu’s emulation was up to running MacOS, it was the only way to quickly and easily partition disks for A/UX! I also had so many problems with ISO images not working on real hardware, as so many of them are just giant floppies. But this again let me actually test out proper CD-ROM images, so I know they’d boot.

      I’d been looking for a way to rebase the UAE CPU code, and maybe look at shifting it to either something far newer or different, but I took my time, and now Qemu is far superior so I kind of only use it for it’s pcap access. And making virtual hard disk images.

  2. Back in the day there was a A/UX only emulator, since deprecated called Shoebill. The author stated it WON’T run MacOS. I think he stopped working on it when QEMU progressed enough IIRC.

Leave a Reply