Reply 640 of 1046, by SA1988
but the fact that any Win16 or DOS program won't successfully open on NT.
When clicking on Write (Win16) from inside NT, nothing happens (except that log), Write doesn't appear.
but the fact that any Win16 or DOS program won't successfully open on NT.
When clicking on Write (Win16) from inside NT, nothing happens (except that log), Write doesn't appear.
Yes, but all that log means is that V86 mode was entered at some point. In itself it is not an indication of a problem.
Still, I hope a fix for making NTVDM work on NT is coming soon 😉.
PCem has moved to http://pcem-emulator.co.uk. There is also a forum now, which is probably better for support and development discussions than trying to cram anything else into this increasingly unwieldy thread.
Request for new forum: Like Toni Wilen did on the WinUAE forums, make a "wanted" thread for documentation/schematics/etc.
http://eab.abime.net/showthread.php?t=38691
I find this most helpful when looking to fill requests for emulation project.
Still hunting down your most wanted...
*looking again at PCem 0.8 changelog* damn, you're putting the hurt on MESS with all those supported graphics/sound cards. Well, we'll catch up eventually 😀
"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen
Stiletto
wrote:you're putting the hurt on MESS with all those supported graphics/sound cards.
What does that mean?
Btw, it's still great to have a PCI-enabled S3 Virge than an ISA-enabled one in MESS at the moment.
wrote:What does that mean?
It's an idiom, like "kicking mess's ass"
Sorry if It's a bit off topic here, but is this PCem thread still active now that it has move to its new website? 😒
(I've been thinking about it this way as I would either rather let this thread die or have it locked...)
New forum innit.
This thread's probably still good for release announcements, but I'd rather not have to track too much discussion in it.
wrote:New forum innit.
This thread's probably still good for release announcements, but I'd rather not have to track too much discussion in it.
Thank you very much for telling me. I'll probably sign up at the forums on your site. Until there is a release announcement made by you, I'd rather let this forum thread go idle.
There is a new update out now which includes joystick support. I tried to compile it myself, made some progress, but can't get past all the errors. I'm sure I am doing something wrong.
Any chance someone could compile under windows the new pcem 8.1 and post it?
Errors here to...
therock247uk@DELL-PC /c/users/therock247uk/desktop/PCem-0202ec1f468e/PCem-0202ec
1f468e/src
$ make -f makefile.mingw
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c 386.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c 808x.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c acer386sx.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c ali1429.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c amstrad.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c cdrom-ioctl.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c config.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c cpu.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c dac.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c device.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c dma.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c fdc.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c gameport.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c headland.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c i430vx.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c ide.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c io.c
io.c: In function 'io_init':
io.c:23:51: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_inb[c][0] = port_inw[c][0] = port_inl[c][0] = NULL;
^
io.c:23:33: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_inb[c][0] = port_inw[c][0] = port_inl[c][0] = NULL;
^
io.c:24:51: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_outb[c][0] = port_outw[c][0] = port_outl[c][0] = NULL;
^
io.c:24:33: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_outb[c][0] = port_outw[c][0] = port_outl[c][0] = NULL;
^
io.c:25:51: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_inb[c][1] = port_inw[c][1] = port_inl[c][1] = NULL;
^
io.c:25:33: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_inb[c][1] = port_inw[c][1] = port_inl[c][1] = NULL;
^
io.c:26:51: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_outb[c][1] = port_outw[c][1] = port_outl[c][1] = NULL;
^
io.c:26:33: warning: assignment from incompatible pointer type [enabled by defau
lt]
port_outb[c][1] = port_outw[c][1] = port_outl[c][1] = NULL;
^
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c jim.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c keyboard.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c keyboard_amstra
d.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c keyboard_at.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c keyboard_olim24
.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c keyboard_pcjr.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c keyboard_xt.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c lpt.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c mcr.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c mem.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c model.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c mouse.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c mouse_ps2.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c mouse_serial.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c neat.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c nvr.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c olivetti_m24.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c opti.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c pc.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c pci.c
pci.c: In function 'pci_init':
pci.c:76:30: warning: assignment from incompatible pointer type [enabled by defa
ult]
pci_card_read[c] = pci_card_write[c] = pci_priv[c] = NULL;
^
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c pic.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c piix.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c pit.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c ppi.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c rom.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c serial.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sis496.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_ad1848.c
sound_ad1848.c: In function 'ad1848_init':
sound_ad1848.c:199:31: warning: incompatible implicit declaration of built-in fu
nction 'pow' [enabled by default]
attenuation = pow(10, attenuation / 10);
^
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_adlib.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_adlibgold
.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_cms.c
g++.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_dbopl.cc
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_emu8k.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_gus.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_mpu401_ua
rt.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_opl.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_pas16.c
g++.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_resid.cc
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_sb.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_sb_dsp.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_sn76489.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_speaker.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_ssi2001.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c sound_wss.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c soundopenal.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c timer.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c um8881f.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c um8669f.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_ati_eeprom.
c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_ati_mach64.
c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_ati18800.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_ati28800.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_ati68860_ra
mdac.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_cga.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_cl5429.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_ega.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_et4000.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_et4000w32.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_et4000w32i.
c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_hercules.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_icd2061.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_ics2595.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_mda.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_olivetti_m2
4.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_oti067.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_paradise.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_pc1512.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_pc1640.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_pc200.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_pcjr.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_s3.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_s3_virge.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_sdac_ramdac
.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_stg_ramdac.
c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_svga.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_svga_render
.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_tandy.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_tgui9440.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_tkd8001_ram
dac.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_tvga.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_unk_ramdac.
c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_vga.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c vid_voodoo.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c video.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c wd76c10.c
gcc.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c win.c
g++.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c win-d3d.cc
win-d3d.cc: In function 'void d3d_init_objects()':
win-d3d.cc:143:68: warning: pointer of type 'void *' used in arithmetic [-Wpoint
er-arith]
uint32_t *p = (uint32_t *)(dr.pBits + (y * dr.Pitch));
^
win-d3d.cc: In function 'void d3d_blit_memtoscreen(int, int, int, int, int, int)
':
win-d3d.cc:264:64: warning: pointer of type 'void *' used in arithmetic [-Wpoint
er-arith]
memcpy(dr.pBits + ((yy - y1) * dr.Pitch), &(((uint32_t
*)buffer32->line[yy + y])[x]), w * 4);
^
win-d3d.cc: In function 'void d3d_blit_memtoscreen_8(int, int, int, int)':
win-d3d.cc:339:77: warning: pointer of type 'void *' used in arithmetic [-Wpoint
er-arith]
uint32_t *p = (uint32_t *)(dr.pBits + (yy * dr.Pitch));
^
g++.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c win-d3d-fs.cc
win-d3d-fs.cc: In function 'void d3d_fs_init_objects()':
win-d3d-fs.cc:165:68: warning: pointer of type 'void *' used in arithmetic [-Wpo
inter-arith]
uint32_t *p = (uint32_t *)(dr.pBits + (y * dr.Pitch));
^
win-d3d-fs.cc: In function 'void d3d_fs_blit_memtoscreen(int, int, int, int, int
, int)':
win-d3d-fs.cc:350:64: warning: pointer of type 'void *' used in arithmetic [-Wpo
inter-arith]
memcpy(dr.pBits + ((yy - y1) * dr.Pitch), &(((uint32_t
*)buffer32->line[yy + y])[x]), w * 4);
^
win-d3d-fs.cc: In function 'void d3d_fs_blit_memtoscreen_8(int, int, int, int)':
win-d3d-fs.cc:441:77: warning: pointer of type 'void *' used in arithmetic [-Wpo
inter-arith]
uint32_t *p = (uint32_t *)(dr.pBits + (yy * dr.Pitch));
^
g++.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c win-ddraw.cc
win-ddraw.cc: In function 'void ddraw_blit_memtoscreen(int, int, int, int, int,
int)':
win-ddraw.cc:168:54: warning: pointer of type 'void *' used in arithmetic [-Wpoi
nter-arith]
memcpy(ddsd.lpSurface + (yy * ddsd.lPitch), &(((uint32_t *)buffer32
->line[y + yy])[x]), w * 4);
^
win-ddraw.cc:202:76: warning: pointer of type 'void *' used in arithmetic [-Wpoi
nter-arith]
p = (uint32_t *)(ddsd.lpSurface + (yy * ddsd.lPitch));
^
win-ddraw.cc: In function 'void ddraw_blit_memtoscreen_8(int, int, int, int)':
win-ddraw.cc:243:76: warning: pointer of type 'void *' used in arithmetic [-Wpoi
nter-arith]
p = (uint32_t *)(ddsd.lpSurface + (yy * ddsd.lPitch));
^
win-ddraw.cc:248:59: warning: pointer of type 'void *' used in arithmetic [-Wpoi
nter-arith]
p = (uint32_t *)(ddsd.lpSurface + (4 * ddsd.lPitch));
^
win-ddraw.cc:282:76: warning: pointer of type 'void *' used in arithmetic [-Wpoi
nter-arith]
p = (uint32_t *)(ddsd.lpSurface + (yy * ddsd.lPitch));
^
g++.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c win-ddraw-fs.cc
win-ddraw-fs.cc: In function 'void ddraw_fs_blit_memtoscreen(int, int, int, int,
int, int)':
win-ddraw-fs.cc:212:54: warning: pointer of type 'void *' used in arithmetic [-W
pointer-arith]
memcpy(ddsd.lpSurface + (yy * ddsd.lPitch), &(((uint32_t *)buffer32
->line[y + yy])[x]), w * 4);
^
win-ddraw-fs.cc: In function 'void ddraw_fs_blit_memtoscreen_8(int, int, int, in
t)':
win-ddraw-fs.cc:282:86: warning: pointer of type 'void *' used in arithmetic [-W
pointer-arith]
uint32_t *p = (uint32_t *)(ddsd.lpSurface + (yy * ddsd.
lPitch));
^
g++.exe -O3 -march=i686 -fomit-frame-pointer -D RELEASE_BUILD -c win-joystick.cc
In file included from c:\users\therock247uk\desktop\mingw-pcem\mingw\include\win
nt.h:34:0,
from c:\users\therock247uk\desktop\mingw-pcem\mingw\include\win
def.h:253,
from c:\users\therock247uk\desktop\mingw-pcem\mingw\include\win
dows.h:48,
from c:\users\therock247uk\desktop\mingw-pcem\mingw\include\rpc
.h:2,
from c:\users\therock247uk\desktop\mingw-pcem\mingw\include\obj
base.h:3,
from c:\users\therock247uk\desktop\mingw-pcem\mingw\include\din
put.h:17,
from win-joystick.cc:1:
win-joystick.cc: In function 'void joystick_init()':
win-joystick.cc:45:38: error: 'DIDEVTYPE_JOYSTICK' was not declared in this scop
e
if (FAILED(lpdi->EnumDevices(DIDEVTYPE_JOYSTICK, joystick_enum_callback
, NULL, DIEDFL_ATTACHEDONLY)))
^
make: *** [win-joystick.o] Error 1
therock247uk@DELL-PC /c/users/therock247uk/desktop/PCem-0202ec1f468e/PCem-0202ec
1f468e/src
$
The PCem developer, Sarah, has made excellent and innovative additions to her emulator, including experimental direct3d support! Attached the latest binary along with its dependencies (DLL files). For development only, not from the stable branch.
BUILD GUIDE:
Download latest pcem: https://bitbucket.org/pcem_emulator/pcem
Install mingw32/gcc4.6.2 along with dx8.0 headers/libs for mingw (copy dx8 headers to /usr/include/directx/ and libs to /usr/lib/)
openal: openal-soft-1.15.1 built by cmake-gui and mingw32-make install (optionally "add SSE" to CFLAG during cmake configuration)
freealut: also built by cmake-gui and mingw32-make install
copy openal and freealut headers to /usr/include/ and libraries to /mingw/lib/
add line to pcem makefile.mingw:
CFLAGS+=-I/usr/include -I/usr/include/directx
change directory to /PCem/src/ and build binary:
make -f Makefile.mingw
The following files necessary to run PCem (two DLL files generated by above cmake procedure):
openal32.dll, libalut.dll, pcem.exe, and two binary files from mingw, libgcc_s_dw2-1.dll and libstdc++-6.dll. In addition, ROMs are copied to their corresponding directory under /roms/ (copy this directory structure from the source code archive). The "mainboard bios" may require configuration to boot from a floppy or hard disk image, otherwise it may not see a drive upon boot.
Edit: binary removed.
Posting compiled builds publicly made from the repository is discouraged for possible confused-end-user complications in bug reporting. It's why I never shared my builds.
It's a good point. I edited the above post, too. My intention was mainly to post the guide. 😀
I have one question does this use Direct3D emulation ?
Because there is no Pentium processor, unless some one makes the BIOS for it.
That's not how Pentium support would work. This was discussed back on page 7.
PCEm. Another PC emulator.
oh wait. DOSFAN1994 IS JOHNNYNOONE/WINDOWS95FAN