So I was playing around with Basilisk II 0.8
Moderators: Cat_7, Ronald P. Regensburg
So I was playing around with Basilisk II 0.8
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.
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.
Re: So I was playing around with Basilisk II 0.8
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
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
Re: So I was playing around with Basilisk II 0.8
The changes were quite small, it's just hard for me to test on mac os, as my macbook has no ethernet...
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...
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..
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...
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.
Re: So I was playing around with Basilisk II 0.8
Wont a USB ethernet adapter do the trick? I use one on my Samsung Hackbook as the built-in ethernet device is not supported.The changes were quite small, it's just hard for me to test on mac os, as my macbook has no ethernet...
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
- adespoton
- Forum All-Star
- Posts: 4285
- Joined: Fri Nov 27, 2009 5:11 am
- Location: Emaculation.com
- Contact:
Re: So I was playing around with Basilisk II 0.8
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
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
Re: So I was playing around with Basilisk II 0.8
Keep in mind this is for BasilsikII 0.8 .....
This is more a 'wow it works'
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?
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");
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.
Re: So I was playing around with Basilisk II 0.8
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
http://store.apple.com/us/product/MC704 ... r?fnode=58
Best,
Cat_7
Re: So I was playing around with Basilisk II 0.8
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.
- 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
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).
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).
Re: So I was playing around with Basilisk II 0.8
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.
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.
Re: So I was playing around with Basilisk II 0.8
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.
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...
It's looking better! This is that OS 8.0 boot floppy, but it's running!
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
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...
It's looking better! This is that OS 8.0 boot floppy, but it's running!
don't do today what you can put off until tomorrow.
Re: So I was playing around with Basilisk II 0.8
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
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
Re: So I was playing around with Basilisk II 0.8
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!
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!
don't do today what you can put off until tomorrow.
Re: So I was playing around with Basilisk II 0.8
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...
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.
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.
Re: So I was playing around with Basilisk II 0.8
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]
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]
Re: So I was playing around with Basilisk II 0.8
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.
Re: So I was playing around with Basilisk II 0.8
awesome!!!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]
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!
don't do today what you can put off until tomorrow.
Re: So I was playing around with Basilisk II 0.8
And I see going back you can view changes going forward here.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.
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.
Re: So I was playing around with Basilisk II 0.8
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...
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.
Re: So I was playing around with Basilisk II 0.8
Hi,
Yes, please upload your version.
Best,
Cat_7
Yes, please upload your version.
Best,
Cat_7
Re: So I was playing around with Basilisk II 0.8
don't do today what you can put off until tomorrow.
Re: So I was playing around with Basilisk II 0.8
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
I always hoped this would happen!.
Next SheepShaver with pcap networking? Would it be difficult to implement in SheepShaver?
Best,
Cat_7
Re: So I was playing around with Basilisk II 0.8
I could always look at sheepshaver...
don't do today what you can put off until tomorrow.
Re: So I was playing around with Basilisk II 0.8
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
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
Re: So I was playing around with Basilisk II 0.8
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.
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..
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.