Well after extensive testing of various CFLAGS settings it turns out that “-O2 -flto -ffast-math -mfpmath=387” gives the best overall settings for PCem.
So yeah me and leileilol went through a dozen+ iterations to arrive at this fun conclusion.
So I’ve only included 2 executables, a debug and the -O2 build.
You can download it here.
I haven’t made any changes to the networking code, and even with a LOT of fighting got OS/2 Warp 3.0 Connect to install.
Plus I fixed my gopher!
I made a mistake, and built both exe’s as debug. I updated the archive, those who downloaded it, will want to do so again!
You can download the build here: PCem-build-334-pcap-slirp.7z
This includes more different core binaries, and mostly fixes the NE2000 to no longer panic and fault out when something dumb tries to probe it, by writing the wrong values in the wrong places.
For the curious build 334 is right here. We didn’t make the feature cut for version 10, so hopefully it’ll make 11. I’ll provide an unofficial build once v10 is announced, along with hopefully better networking back end modules, expanding things from pcap & SLiRP.
SLiRP tcp redirects now working
PCem is different from other emulators in that when it starts up, reboots it’ll tear itself apart, and re-kick all the components. Normally other emulators do this once, and as a result I never noticed that slirp_exit doesn’t actually purge the socket state. And calling the socket teardown call causes a mbuf explosion in the code. Sadly GDB is pretty useless trying to debug it, since it’s claiming all the structure members don’t exist. Very strange.
Luckily I could duplicate the debug feature to go though current socket redirects, and close the sockets on the Windows side with a simple closesocket.
In this version I’ve setup the following TCP port redirects:
ExternalPORT Internal Port
I still haven’t messed with the rc file, so there is no GUI config, instead you have to do it in the text files. I have some notes on the whole thing on the pcem forum here.
Download the executables and source here:
And for those interested, the diff against mainline 328 is here.
So PCem is an incredible emulator for the IBM PC platform. One thing that has been missing, and really missed has been networking. So a while ago, SA1988 came up with a patch that incorporated the BOCHS ne2k.cc into PCem.
So as requested, I took the copy of SLiRP I’ve used in SIMH, Cockatrice and Previous, and got it working in PCem.
Telnet from MS-DOS
This has to be one of the easier ports since PCem doesn’t use threads. But yes, it appears to work, although I haven’t done any major testing.
For those who want to experiment, here is a binary/source blob of the project. Right now we are just past the OMG it compiled phase to OMG it SENT and RECEIVED data phase.
If anyone wants to play, the NE2000 is set to 0x300 IRQ 10.
And you need to manually add the following to your pcem.cfg file:
netinterface = 1
netcard = 1
And you should be good to go. I think.
And yes, it’ll run QuakeWorld!
IBM PS/1 2011..
But it doesn’t work. Well for me. But rest assured that the other drivers work, and even better it feels that the dynamic support has gotten faster, and some faster Pentium models have even been thrown into the deal!
Download my latest build here.
It’s in the current source dump here.
I never had one back in the day, so I have to see if I can find glide for DOS and some kind of demo thing.
Considering Quake III is now reported to work, I guess I should just break down and install Windows ME or something equally horrible.
It’s in the current source, right now, but I figured I’d build it and give it a shot.
The dynamic core consumes MUCH less CPU power. The only current downside seems to be a 56kb/sec memory leak (I guess some dynamic code block isn’t being discarded). But I have to say it’s REALLY cool to be running DOOM v1.1 on MS-DOS 5.0 and it’s running at 0% CPU utilization on my Xeon.
And as always the ‘normal’ non dynamic version is just fantastic.
I’ve only tested it with DOOM, and it’s worked great. Give it a try?
There isn’t a big announcement, yet, but the changelog is here.
Personally I like PCem over DOSBox as it emulates a more faithful representation of an 80’s or 90’s PC.
While checking out the PCem source repository, I noticed this little addition:
Innovation SSI-2001 emulation. Using ReSID-FP.
Well, now that is pretty interesting!
Innovation SSI-2001 board
The SSI-2001 card dates back from when people were starting to try to make the PC into a gaming platform. While some people were adding chips not used in other platforms, Innovation went the direction of adding a Commodore SID onto an ISA card, giving the PC the sound capabilities of a Commodore 64. Sadly the card failed to catch on (The Commodore curse?) and it only saw a hand full of games that supported it.
- Bad Blood
- Battle Chess II
- BattleTech: The Crescent Hawks’ Revenge
- F-19 Stealth Fighter
- Falcon A.T.
- Joe Montana Football
- Lord of the Rings Volume 1
- Red Storm Rising
- Super Jeopardy
- Ultima VI
From googling around this is the only games I’m aware of.
I recompiled PCem, and enabled the SS1-2001, and loaded up Ultima VI. It works perfectly well. And to be honest I like it more than the Adlib! emulation.