PCem v12 released. Changes from v11 :
- New machines added – AMI 386DX, MR 386DX
- New graphics cards – Plantronics ColorPlus, Wyse WY-700, Obsidian SB50, Voodoo 2
- CPU optimisations – up to 50% speedup seen
- 3DFX optimisations
- Improved joystick emulation – analogue joystick up to 8 buttons, CH Flightstick Pro, ThrustMaster FCS, SideWinder pad(s)
- Mouse can be selected between serial, PS/2, and IntelliMouse
- Basic 286/386 prefetch emulation – 286 & 386 performance much closer to real systems
- Improved CGA/PCjr/Tandy composite emulation
- Various bug fixes
Thanks to Battler, leilei, John Elliott, Mahod, basic2004 and ecksemmess for contributions towards this release.
injecting networking was no more difficult than it was in version 10. It’s only a few changes to pc.c, if you look at the USENETWORKING define you’ll see them. The best notes are on the forum.
I haven’t changed or improved anything it still requires manual configuration.
Downloads are available on my site as pcem_v11_networking.7z. You’ll have to defeat the password protection, as always. I included the source, it ought to be trivial to rebuild.
*For anyone using an old version the ‘nvr’ directory is missing, so PC-em is unable to create new non volatile ram save files, meaning you always loose your BIOS settings. Sorry I missed that one.
I haven’t had time to follow it, but great news!
PCem v11 released. Changes from v10.1 :
- New machines added – Tandy 1000HX, Tandy 1000SL/2, Award 286 clone, IBM PS/1 model 2121
- New graphics card – Hercules InColor
- 3DFX recompiler – 2-4x speedup over previous emulation
- Added Cyrix 6×86 emulation
- Some optimisations to dynamic recompiler – typically around 10-15% improvement over v10, more when MMX used
- Fixed broken 8088/8086 timing
- Fixes to Mach64 and ViRGE 2D blitters
- XT machines can now have less than 640kb RAM
- Added IBM PS/1 audio card emulation
- Added Adlib Gold surround module emulation
- Fixes to PCjr/Tandy PSG emulation
- GUS now in stereo
- Numerous FDC changes – more drive types, FIFO emulation, better support of XDF images, better FDI support
- CD-ROM changes – CD-ROM IDE channel now configurable, improved disc change handling, better volume control support
- Now directly supports .ISO format for CD-ROM emulation
- Fixed crash when using Direct3D output on Intel HD graphics
- Various other fixes
Thanks to Battler, SA1988, leilei, Greatpsycho, John Elliott, RichardG867, ecksemmess and cooprocks123e for contributions towards this release.
Downloads are available for Windows & Linux.
- New machines – AMI XT clone, DTK XT clone, VTech Laser Turbo XT, VTech Laser XT3, Phoenix XT clone, Juko XT clone, IBM PS/1 model 2011, Compaq Deskpro 386, DTK 386SX clone, Phoenix 386 clone, Intel Premiere/PCI, Intel Advanced/EV
- New graphics cards – IBM VGA, 3DFX Voodoo Graphics
- Experimental dynamic recompiler – up to 3x speedup
- Pentium and Pentium MMX emulation
- CPU fixes – fixed issues in Unreal, Half-Life, Final Fantasy VII, Little Big Adventure 2, Windows 9x setup, Coherent, BeOS and others
- Improved FDC emulation – more accurate, supports FDI images, supports 1.2MB 5.25″ floppy drive emulation, supports write protect correctly
- Internal timer improvements, fixes sound in some games (eg Lion King)
- Added support for up to 4 IDE hard drives
- MIDI OUT code now handles sysex commands correctly
- CD-ROM code now no longer crashes Windows 9x when CD-ROM drive empty
- Fixes to ViRGE, S3 Vision series, ATI Mach64 and OAK OTI-067 cards
- Various other fixes/changes
Official download links:
PCem v10 for Windows
PCem v10 for Linux
I personally prefer PCem over DOSBox at the moment, as PCem runs the actual BIOS code, so it feels more like an actual vintage PC. PCem does need a significantly more powerful machine to push it thought.
Now in step with build 347.
I haven’t heard anything too wrong with my stuff, so no changes.
Build is located here: PCem-build-347-pcap-slirp.7z
One nice change is that IDE devices are reset between reboots, so us 386 and 486 fans (probably others) can now reboot and actually boot.
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.