So I was playing around with Basilisk II 0.8

About BasiliskII, a 68k Mac emulator for Windows, MacOSX, and Linux that can run System 7.x through MacOS 8.1.

Moderators: Cat_7, Ronald P. Regensburg

neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

So I was playing around with Basilisk II 0.8

Post by neozeed »

On linux, and much to my amazement, a few minor tweaks, mostly to configure and the generated makefile, it compiles and runs! Of course the #1 reason why Id bother with such an ancient version is the size, the later versions are so massive, it looks overwhelming to start messing around with.

For the heck of it I dropped in a latter uae core, from a newer version of Basilisk II, and that seems to be working as well. Although when I look at [urlhttps://github.com/tycho/basiliskii/blob/master/src/uae_cpu/cpu_emulation.h]online source repositories[/url], it looks like they stopped merging UAE's CPU at 0.8.11?

Is there a good historical location of BasiliskII builds? I know it gets really confusing, especially with the magical 142, and the introduction of the JIT.. Although I wonder if anyone has tried to use the recent WinUAE CPU that has full 030 and 040 including MMU (it boots AMIX and is used in pervious to boot NeXTSTEP..)

I did some hacking on 0.8 and added some libpcap support, much like what I did to Shoebill, and I'm able to map drives to and from Basilisk II, Windows NT, and all that.. Its not terribly fast when it comes to network stuff, but it didn't crash either.

Ive been testing with System 7.1 and 8.0, and scroll bars don't work on 8.0 otherwise it seems ok...

I'm more surprised that GCC 4.7 compiles it, and it runs.
don't do today what you can put off until tomorrow.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: So I was playing around with Basilisk II 0.8

Post by Cat_7 »

Hi,

Great to see you try some new stuff with Basilisk. But I know of no overview of builds, certainly not of the pre-jit builds and not of Linux builds.

I believe the erstwhile developer (gwenole beauchesne) stopped importing newer uae cpu source when he started with the JIT. Current versions mostly have the same functionality across platforms (except recently, as OSX users became a majority and several developments were focused toward that platform).

For the Windows versions of Basilisk departing from the 142 build meant that a lot of functionality was lost. Some time ago I dabbled with adding e.g., startup sound support and floppy and scsi support from the source of the 142 build. Floppy access is easily added to both Basilisk and SheepShaver, while SCSI access for SheepShaver trips on the fact that newer SCSI hardware was never fully emulated.

The 142 source originally built with Visual Studio version 5 and some additional tools. Isn't that appealing to you? I also got it to compile with what I believe was VS 2008 later (that is the 142 version which is available in this forum). Other JIT versions build up to GCC 4.6 if remember correctly. This has something to do with the position of the return instruction in assembly no longer being placed at the end of code.
The JIT was borrowed from Qemu, which itself of course moved on to a newer JIT architecture.

To get around the dependency on the basilisk ethernet driver (it doesn't support 64 bit Windows), I tried to add winpcap support to the more recent basilisk and sheepshaver source, but failed as I really don't know where to begin. Networking the windows versions is real pain, as is CD rom access btw. ;-)

Official git is here: https://github.com/cebix/macemu

Best,
Cat_7
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

The changes were quite small, it's just hard for me to test on mac os, as my macbook has no ethernet... :oops:

It seems that until shoebill nobody really tried to emulate the hardware.. I was wondering how much of a difference, hardware wise was there between the early quadras and a macII? Is there even any real technical details on these things?

I guess there must be some reason the mac's were never really emulated correctly, and I guess shimming things into the ROM was just too easy.

It is kind of cool having a couple virtual macs, talking to an NT server over a cisco network. although going all the way and installing exchange seems a little crazy. I may do it anyways... :mrgreen:

Oh yeah, is there any good network stuff to do? Games or anything network aware?

Every time I used a mac back in the OS 6/7 days they were all standalone.. and when I got a box to run A/UX on, I just used it as a Unix box..
don't do today what you can put off until tomorrow.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: So I was playing around with Basilisk II 0.8

Post by Cat_7 »

The changes were quite small, it's just hard for me to test on mac os, as my macbook has no ethernet... :oops:
Wont a USB ethernet adapter do the trick? I use one on my Samsung Hackbook as the built-in ethernet device is not supported.

I tried networking with the network-aware game Bolo. But believe it requires Appletalk.
I would love to see you add winpcap support to Basilisk for Windows ;-)

Best,
Cat_7
User avatar
adespoton
Forum All-Star
Posts: 4227
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: So I was playing around with Basilisk II 0.8

Post by adespoton »

I seem to recall Bolo having a patch for TCP/IP only; it did indeed require Appletalk by default. But I also remember playing Bolo over the Internet in 1995, as well as over a local Appletalk network. I seem to recall you needed an IP address for the remote user to play it over TCP/IP instead of Appletalk.

USB ethernet adapter is definitely the solution if you're willing to invest in it. It also has the benefit that if you want, you can stick a line monitor in the middle and watch your TX/RX on blinking LEDs :)
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

Keep in mind this is for BasilsikII 0.8 ..... :mrgreen:

This is more a 'wow it works'

Code: Select all

Binary files BasiliskII-0.8/BasiliskII and BasiliskII-0.8-pcap/BasiliskII differ
diff -ruN BasiliskII-0.8/src/Unix/configure BasiliskII-0.8-pcap/src/Unix/configu
re
--- BasiliskII-0.8/src/Unix/configure	1999-11-04 05:04:14.000000000 +0800
+++ BasiliskII-0.8-pcap/src/Unix/configure	2014-10-01 09:22:58.000000000 +0
800
@@ -2139,6 +2139,8 @@
 
 fi
 
+no_x="xno"
+
 if [ "x$no_x" = "xyes" ]; then
   { echo "configure: error: You need X11 to run Basilisk II." 1>&2; exit 1; }
 fi
@@ -2187,7 +2189,8 @@
 #define $ac_tr_lib 1
 EOF
 
-  LIBS="-lpthread $LIBS"
+#snealily we add pcap in here too......
+  LIBS="-lpthread -lpcap $LIBS"
 
 else
   echo "$ac_t""no" 1>&6
@@ -2281,10 +2284,13 @@
 
   LIBS="-lPTL $LIBS"
 
+ac_t="yes"
+
 else
   echo "$ac_t""no" 1>&6
 
-      { echo "configure: error: You need pthreads to run Basilisk II." 1>&2; ex
it 1; }
+#      hhh{ echo "configure: error: You need pthreads to run Basilisk II." 1>&2
; exit 1; }
+      { echo "configure: error: You need pthreads to run Basilisk II." 1>&2;  }
     
 fi
 
diff -ruN BasiliskII-0.8/src/Unix/Linux/ether_linux.cpp BasiliskII-0.8-pcap/src/
Unix/Linux/ether_linux.cpp
--- BasiliskII-0.8/src/Unix/Linux/ether_linux.cpp	1999-11-03 18:56:31.0000
00000 +0800
+++ BasiliskII-0.8-pcap/src/Unix/Linux/ether_linux.cpp	2014-09-29 23:41:58.0000
00000 +0800
@@ -26,6 +26,12 @@
 #include <errno.h>
 #include <stdio.h>
 
+#include <pcap.h>
+pcap_t *pcap;
+const unsigned char *data;
+struct pcap_pkthdr h;
+
+
 #include "cpu_emulation.h"
 #include "main.h"
 #include "macos_util.h"
@@ -115,15 +121,33 @@
 		return;
 
 	// Is it Ethertap?
-	is_ethertap = (strncmp(name, "tap", 3) == 0);
+	is_ethertap = (strncmp(name, "eth", 3) == 0);
 
 	// Open sheep_net or ethertap device
 	char dev_name[16];
+	char errbuf[PCAP_ERRBUF_SIZE];
 	if (is_ethertap)
+		{
+		memset(errbuf,0,sizeof(errbuf));
+		if((pcap=pcap_open_live(name,1518,1,0,errbuf))==0)
+			{printf("ethernet.c: pcap_open_live error on %s!\n",name
+);exit(-1);}
+//		Make pcap nonblocking
+//		Normally you would want this, but because of how
+//		the threads work and using pcap directly
+//		it works better if it doesn't block	
+//		if (pcap_setnonblock(pcap,1,errbuf))
+//		 {printf("Error going into nonblocking.\n[%s]\n", errbuf);
+//		 exit(-1);}
+		}
+	fd=pcap_get_selectable_fd(pcap);
+
+/*	if (is_ethertap)
 		sprintf(dev_name, "/dev/%s", name);
 	else
 		strcpy(dev_name, "/dev/sheep_net");
 	fd = open(dev_name, O_RDWR);
+*/
 	if (fd < 0) {
 		sprintf(str, GetString(STR_NO_SHEEP_NET_DRIVER_WARN), dev_name, 
strerror(errno));
 		WarningAlert(str);
@@ -138,7 +162,7 @@
 	}
 
 	// Set nonblocking I/O
-	ioctl(fd, FIONBIO, &nonblock);
+	//ioctl(fd, FIONBIO, &nonblock);
 
 	// Get Ethernet address
 	if (is_ethertap) {
@@ -149,6 +173,7 @@
 		ether_addr[3] = p >> 16;
 		ether_addr[4] = p >> 8;
 		ether_addr[5] = p;
+	printf("Ethernet address %02x %02x %02x %02x %02x %02x\n", ether_addr[0]
, ether_addr[1], ether_addr[2], ether_addr[3], ether_addr[4], ether_addr[5]);
 	} else
 		ioctl(fd, SIOCGIFADDR, ether_addr);
 	D(bug("Ethernet address %02x %02x %02x %02x %02x %02x\n", ether_addr[0],
 ether_addr[1], ether_addr[2], ether_addr[3], ether_addr[4], ether_addr[5]));
@@ -231,13 +256,14 @@
 
 int16 ether_add_multicast(uint32 pb)
 {
-	if (ioctl(fd, SIOCADDMULTI, Mac2HostAddr(pb + eMultiAddr)) < 0) {
+/*	if (ioctl(fd, SIOCADDMULTI, Mac2HostAddr(pb + eMultiAddr)) < 0) {
 		D(bug("WARNING: Couldn't enable multicast address\n"));
 		if (is_ethertap)
 			return noErr;
 		else
 			return eMultiErr;
 	} else
+*/
 		return noErr;
 }
 
@@ -248,10 +274,11 @@
 
 int16 ether_del_multicast(uint32 pb)
 {
-	if (ioctl(fd, SIOCDELMULTI, Mac2HostAddr(pb + eMultiAddr)) < 0) {
+/*	if (ioctl(fd, SIOCDELMULTI, Mac2HostAddr(pb + eMultiAddr)) < 0) {
 		D(bug("WARNING: Couldn't disable multicast address\n"));
 		return eMultiErr;
 	} else
+*/
 		return noErr;
 }
 
@@ -319,11 +346,13 @@
 	// Copy packet to buffer
 	uint8 packet[1516], *p = packet;
 	int len = 0;
+/*****
 	if (is_ethertap) {
 		*p++ = 0;	// Ethertap discards the first 2 bytes
 		*p++ = 0;
 		len += 2;
 	}
+*****/
 	for (;;) {
 		int w = ReadMacInt16(wds);
 		if (w == 0)
@@ -343,9 +372,14 @@
 #endif
 
 	// Transmit packet
+        if (pcap_sendpacket(pcap, packet, len) < 0) {
+                printf("WARNING: Couldn't transmit packet\n");
+                return excessCollsns;
+/*
 	if (write(fd, packet, len) < 0) {
 		D(bug("WARNING: Couldn't transmit packet\n"));
 		return excessCollsns;
+*/
 	} else
 		return noErr;
 }
@@ -358,12 +392,13 @@
 static void *receive_func(void *arg)
 {
 	for (;;) {
-
-		// Wait for packets to arrive
-		struct pollfd pf = {fd, POLLIN, 0};
-		int res = poll(&pf, 1, -1);
-		if (res <= 0)
-			break;
+	data=pcap_next(pcap,&h);
+	if(data)
+		{
+		if((memcmp(data+6,ether_addr,6))==0)
+			{}
+		else
+		{
 
 		// Trigger Ethernet interrupt
 		D(bug(" packet received, triggering Ethernet interrupt\n"));
@@ -372,7 +407,9 @@
 
 		// Wait for interrupt acknowledge by EtherInterrupt()
 		sem_wait(&int_ack);
+		}
 	}
+		}//end for
 	return NULL;
 }
 
@@ -387,10 +424,14 @@
 
 	// Call protocol handler for received packets
 	uint8 packet[1516];
-	for (;;) {
+	//for (;;) {		//why do we loop like crazy, once is enough
+	for (int i=0;i<1;i++) {
 
 		// Read packet from sheep_net device
-		ssize_t length = read(fd, packet, is_ethertap ? 1516 : 1514);
+		//ssize_t length = read(fd, packet, is_ethertap ? 1516 : 1514);
+		ssize_t length = h.caplen;
+		memset(packet,0x0,sizeof(packet));
+		memcpy(packet,data,length);
 		if (length < 14)
 			break;
 
@@ -404,16 +445,22 @@
 
 		// Pointer to packet data (Ethernet header)
 		uint8 *p = packet;
+/*****
 		if (is_ethertap) {
 			p += 2;			// Ethertap has two random bytes
 before the packet
 			length -= 2;
 		}
+*****/
 
 		// Get packet type
 		uint16 type = ntohs(*(uint16 *)(p + 12));
 
 		// Look for protocol
 		NetProtocol *prot = find_protocol(type);
+/*
+		if((prot==NULL) || (prot->handler==0))
+			printf("whoops!\n");
+*/
 		if (prot == NULL)
 			continue;
 
@@ -434,9 +481,10 @@
 		r.a[4] = ether_data + ed_ReadPacket;			// Point
er to ReadPacket/ReadRest routines
 		D(bug(" calling protocol handler %08lx, type %08lx, length %08lx
, data %08lx, rha %08lx, read_packet %08lx\n", prot->handler, r.d[0], r.d[1], r.
a[0], r.a[3], r.a[4]));
 		Execute68k(prot->handler, &r);
-	}
+	} 
 
 	// Acknowledge interrupt to reception thread
 	D(bug(" EtherIRQ done\n"));
+	ClearInterruptFlag(INTFLAG_ETHER);		//Do we have to?
 	sem_post(&int_ack);
 }
diff -ruN BasiliskII-0.8/src/Unix/sys_unix.cpp BasiliskII-0.8-pcap/src/Unix/sys_
unix.cpp
--- BasiliskII-0.8/src/Unix/sys_unix.cpp	1999-11-01 07:18:37.000000000 +0
800
+++ BasiliskII-0.8-pcap/src/Unix/sys_unix.cpp	2014-09-16 11:56:10.000000000 +0
800
@@ -31,10 +31,14 @@
 #include <linux/major.h>
 #include <linux/kdev_t.h>
 #include <linux/unistd.h>
+#include <values.h>  //for MAX_INT
 
-#ifdef __NR__llseek
+#ifdef __NR__llseek___NOTGOINGTOHAPPEN
 _syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, loff_t *, res, uint, wh
);
+#error
 #else
+#include <sys/types.h>
+#include <sys/unistd.h>
 static int _llseek(uint fd, ulong hi, ulong lo, loff_t *res, uint wh)
 {
 	if (hi)
@@ -120,8 +124,9 @@
 void SysAddFloppyPrefs(void)
 {
 #if defined(__linux__)
-	PrefsAddString("floppy", "/dev/fd0H1440");
-	PrefsAddString("floppy", "/dev/fd1H1440");
+//	PrefsAddString("floppy", "/dev/fd0H1440");
+//	PrefsAddString("floppy", "/dev/fd1H1440");
+	PrefsAddString("floppy", "/dev/null");
 #elif defined(__NetBSD__)
 	PrefsAddString("floppy", "/dev/fd0a");
 	PrefsAddString("floppy", "/dev/fd1a");
Of course I'm looking for ethX since I'm on linux but the better thing would be to add a new statement to look for, and leave the tuntap stuff alone. I'm using generic libpcap calls, not even the 'new style' of dynamically loading... So it's all statically linked. It's interesting that with BasiliskII's threads, it works better in blocking mode.

I should see about adding a tap interface on my macbook, and see if I can get to VM's to see eachother.

Any recommendations on a USB Ethernet adapter?
don't do today what you can put off until tomorrow.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: So I was playing around with Basilisk II 0.8

Post by Cat_7 »

I tried several in a friendly shop, taking my hackbook with me, but the original Apple device is the only USB ethernet adapter I got working:
http://store.apple.com/us/product/MC704 ... r?fnode=58

Best,
Cat_7
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

Oh good they make one! I'll pick one up next time I'm around central.
don't do today what you can put off until tomorrow.
User avatar
sentient06
Mac Mechanic
Posts: 188
Joined: Tue Mar 29, 2011 8:57 pm
Location: London, UK

Re: So I was playing around with Basilisk II 0.8

Post by sentient06 »

neozeed, I don't want to deviate too much from the subject, but I guess it would interest you. Take a look in the Mini vMac, if you didn't already, check this FAQ:

http://minivmac.sourceforge.net/faq.html

The author gives a few details about the differences between Mac II and later macs and how he is planning on continuing the project by adding support for newer models. Mini vMac is more of a "proper" emulator than Basilisk, in the sense that it emulates more pieces of hardware while Basilisk patches them. The next version is supposed to support Mac II, and there is an alpha available for tests.

I understand that the biggest difference between Mac IIs and Quadras is the processor, and I suppose Basilisk emulates a wide range of processors, right? I am not sure if the Mini vMac developer wants to create new code for it (he probably does).
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

I guess the thing about basilisk that interests me is that it uses the UAE cpu core, which Toni Wilen, of WinUAE fame has managed to get pretty solid 030 and 040 emulation to the point where he can run Linux and AMIX in Winuae. And other people using his core have managed to boot up NeXTSTEP....

I've been playing around with older versions of Basilisk as it seems to me, the simpler versions are easier to get some handle on, and they feel far more stable (pre 142 stuff). Although their build process leaves a LOT to be desired.
don't do today what you can put off until tomorrow.
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

I don't suppose anyone has any old versions of Basilisk II squirrelled away? The reason why I ask is that while bulding on Linux and OS X, the cpuopti program actually runs and does it's thing.

Code: Select all

gcc -arch i386  -o obj/cpuopti obj/cpuopti.o
g++ -arch i386 -I../include -I. -I../uae_cpu -DHAVE_CONFIG_H  -DENABLE_MON=0 -DENABLE_XF86_DGA=0 -DENABLE_FBDEV_DGA=0 -DENABLE_XF86_VIDMODE=0 -DENABLE_GTK=0 -DENABLE_ESD=0 -DREGPARAM="__attribute__((regparm(3)))" -DX86_ASSEMBLY -D_REENTRANT -DDATADIR=\"/usr/local/share/BasiliskII\" -DPART_1 -S -g   -fomit-frame-pointer cpuemu.cpp -o cputmp1.s
obj/cpuopti <cputmp1.s >cpufast1.s || mv cputmp1.s cpufast1.s
rm -f cputmp1.s
gcc -arch i386  -c cpufast1.s -o obj/cpufast1.o
But in the Visual C++ 5.0 dump of build 142 thee is a project for vc5opti, but there is no vc5opti.cpp in the archive. I know I'm even more crazy building this with Visual C++ 5.0 but I suspect trying to build it with anything modern won't end well.

For those who don't know, cpuopti re-orders and does some basic optimazation to the GAS files. There was apparently a version for Visual C and MASM but it looks lost. There is just a mention of it here, and the filename was BasiliskII_win32_src_26122000.zip


In other news...

Image

It's looking better! This is that OS 8.0 boot floppy, but it's running! :mrgreen:
don't do today what you can put off until tomorrow.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: So I was playing around with Basilisk II 0.8

Post by Cat_7 »

Hi,

I got some windows source from 2001, and it contains an opti.bat, with this content:
REM A batch file to to optimize uae cpu core.

REM cd Release
REM copy cpuemu.asm cpuemu0.asm
REM ..\vc5opti\Release\vc5opti.exe cpuemu.asm
REM ml /c /coff cpuemu.asm
REM cd ..

REM cd Release
REM ml /c /coff cpuemuop.asm
REM copy cpuemuop.obj cpuemu.obj
REM cd ..

cd BasiliskII___Win32_Win9x
copy cpuemu.asm cpuemu0.asm
..\vc5opti\Release\vc5opti.exe cpuemu.asm
..\masm\ml /c /coff cpuemu.asm
cd ..

I have vc5opti folder containing a dsp. .dsw and vc5opti.vc5.unsupported.dsp, but no .cpp file.

Have you seen this link?
http://m.delphiforums.com/macemulation/messages/1262/1
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

It helps in getting rid of the fetch/execute loop and
specflag checks in every iteration....

I need to run upstairs to see if I have that assembly file, I guess it could be enough to see what it is doing, as I do want to move the CPU core to newer and newer versions....

The ultimate thing would be to match the Pervious import of WinUAE, with the full 68040/030 support.
edit

anyways I got it to build and 'run' with Visual C++ 5.0 ... holy crap it's SLOW. I went to then leapfrog from 5.0 to 7.0 (aka Visual Studio 2003), and it's a bazillion times faster. It's so fast, i can't double click the mouse! :mrgreen:
don't do today what you can put off until tomorrow.
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

so apparently winpcap with windows wants to be non blocking, while under linux and OS X(well as far as I can tell, I still have no ether) work without it...

Code: Select all

// Set nonblocking I/O
//		Make pcap nonblocking
//		Normally you would want this, but because of how
//		the threads work and using pcap directly
//		it works better if it doesn't block	
//	but it is needed for Windows... go figure.
#ifdef WIN32
		if (pcap_setnonblock(pcap,1,errbuf))
		 {printf("Error going into nonblocking.\n[%s]\n", errbuf);
		 exit(-1);}
#endif

Now to convert all the pthread to sdl thread and I'll have something to show, even if the windows timers seem to still be misfiring. quicktime doesn't play right... but it runs fine on linux and OS X.
don't do today what you can put off until tomorrow.
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: So I was playing around with Basilisk II 0.8

Post by superpete »

I've been following the thread on your blog and figured you'd come here :)

I have a small collection of Basilisk II Win32 versions at https://drive.google.com/folderview?id= ... sp=sharing

Unfortunately the oldest source I have is from 18/6/2000, which I'm pretty sure would match the 0.8 version you already have. Once upon a time I would have had earlier builds but sadly its a few too many HDD crashes and moves ago...

[Edit: Fixed Link]
superpete
Inquisitive Elf
Posts: 27
Joined: Sat Nov 26, 2011 3:08 am

Re: So I was playing around with Basilisk II 0.8

Post by superpete »

Ooo it looks like Christian Bauer's Github repo contains the CVS commits from back in 1999 - so commit 8e491572ca420b22ff0366e594ce5b9248928e91 (https://github.com/cebix/macemu/commit/ ... 9248928e91) should be version 0.7.
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

superpete wrote:I've been following the thread on your blog and figured you'd come here :)

I have a small collection of Basilisk II Win32 versions at https://drive.google.com/folderview?id= ... sp=sharing

Unfortunately the oldest source I have is from 18/6/2000, which I'm pretty sure would match the 0.8 version you already have. Once upon a time I would have had earlier builds but sadly its a few too many HDD crashes and moves ago...

[Edit: Fixed Link]
awesome!!!

BasiliskII_win32_src_18062000.zip

has the vc5opti.cpp !

I wonder if the VC5 build is usable with it, because without it, it runs like a stone.. Visual C++ 2005 was even faster than 2003, I didn't bother with 6 or 2002..

But wow thanks for vc5opti.cpp! :mrgreen:
don't do today what you can put off until tomorrow.
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

superpete wrote:Ooo it looks like Christian Bauer's Github repo contains the CVS commits from back in 1999 - so commit 8e491572ca420b22ff0366e594ce5b9248928e91 (https://github.com/cebix/macemu/commit/ ... 9248928e91) should be version 0.7.
And I see going back you can view changes going forward here.

The big thing though is that you had the old versions of the Windows port which wasn't rolled into BasiliskII at that point.
don't do today what you can put off until tomorrow.
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

I found a solution to the slirp problem! Netscape kinda worked while internet explorer would crash the stack in no time..

Now I can use either and I get about 60 to 80kb sec. Internet Explorer 4 is so much faster!

Also I found optimizing for space rather than speed gave a tremendous boost to speed.

I want to change the pcap to demand load so I don't need a pcap and non pcap version.

I'll upload it for anyone who cares... There is still plenty of bugs to squish... Features to remove others to add...
don't do today what you can put off until tomorrow.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: So I was playing around with Basilisk II 0.8

Post by Cat_7 »

Hi,

Yes, please upload your version.

Best,
Cat_7
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

Ok, here we go!!


https://sourceforge.net/projects/cockatrice/

Including source!
don't do today what you can put off until tomorrow.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: So I was playing around with Basilisk II 0.8

Post by Cat_7 »

Great! Native networking through pcap is a fresh breeze through Basilisk land.
I always hoped this would happen!.

Next SheepShaver with pcap networking? Would it be difficult to implement in SheepShaver?

Best,
Cat_7
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

I could always look at sheepshaver...
don't do today what you can put off until tomorrow.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: So I was playing around with Basilisk II 0.8

Post by Cat_7 »

I'll post your build in the Basilisk for Windows sticky.

Finally, with pcap networking we can replace the flaky Appletalk support solution through the Basilisk ethernet driver, which didn't work in 64 bit windows.

Best,
Cat_7
neozeed
Apple Corer
Posts: 293
Joined: Sun Aug 25, 2013 3:25 am
Location: Hong Kong

Re: So I was playing around with Basilisk II 0.8

Post by neozeed »

Cat_7 wrote:I'll post your build in the Basilisk for Windows sticky.

Finally, with pcap networking we can replace the flaky Appletalk support solution through the Basilisk ethernet driver, which didn't work in 64 bit windows.

Best,
Cat_7

I'm also dying to know if the OS X stuff works regarding pcap... You should be able to use

ether en0

and go from there.... Unfortunately where I live/work is so far away from the apple store I still don't have ethernet. I guess it's hard to imagine there is 'backwater woods' in Hong Kong but here I am. :mrgreen:

Everything is 32bit to keep the bitwise stuff all in alignment as there is some code 15+ years old...

I also have some more minor updates, I found another slirp instability (oh geez!!) but now I can drag windows around while things are downloading and not crash. Also something that has always really annoyed me is that before Shoebill had ethernet I would barely be able to download in Basilisk, then mount the disk under sheepshaver (dont even think of trying to download in sheep with slirp) as Sheep could mount partitioned diskfiles, while Basilisk can't.

Well it turns out the code to read partitions is in Basilisk, and has been since forever! It's just used on CD-ROM's of all things (actually there is quite a LOT of code dealing with CD's that I'm tempted to just completely remove. Does anyone actually have hybrid ISO's or use CD-Player stuff in 2014 and beyond?!), So a minor change to the find_hfs_partition procedure, and now I can mount HFS ISO's (mounted as disk files) and the first HFS partition of a Shoebill HFS/UFS disk just fine.

Also I think I gutted the serial port stuff wrong, I got a nice overflow from Zterm, and a good crash... Although at some point I'd love to take DOSBox's virtual modems and tie them to Shoebill so I can download with Zmodem on something with an address book. Don't get me wrong that Public Address thing is kinda cool, but also kinda a PITA to have to type in stuff over and over.. :twisted:

I was also thinking of having some presets that pick up depending on what ROM you throw in there, or at least recommended stuff.. Although all I've found is that the Quadra 800 seems to be a nice rounded model, the 700 though seems faster, probably because it has no appletalk and needless to say the way Basilisk works the OS can't patch it... I'm pretty sure Quadra 700's can AppleTalk, right???

I've been trying to find a good 68040LC rom that I can use without the UAE FPU as I think there is some issues in there, when trying to stress things. Although it may just be time to start pushing to update the UAE core like I wanted to.
don't do today what you can put off until tomorrow.
Post Reply