v17 compatibility & bug list

Discussion of development and patch submission.
G-Man
Posts: 1
Joined: Mon 04 Jan, 2021 2:29 pm

Re: v17 compatibility & bug list

Post by G-Man »

Working:

Code: Select all

Solaris 2.5.1
	Shuttle HOT-557, Pentium 200MMX, 128MB RAM, IDE, ATI Graphics Pro Turbo (Mach64 GX)(4MB), SB 16, Microsoft 2-button mouse (serial)

Solaris 2.6
	Shuttle HOT-557, Pentium 200MMX, 128MB RAM, IDE, ATI Graphics Pro Turbo (Mach64 GX)(4MB), SB 16, Microsoft 2-button mouse (serial)

Solaris 7.0
	Shuttle HOT-557, Pentium 200MMX, 128MB RAM, IDE, ATI Graphics Pro Turbo (Mach64 GX)(4MB), SB 16, Microsoft 2-button mouse (serial)
Attachments
Screenshot from 2021-01-12 16-47-28.png
Screenshot from 2021-01-12 16-47-28.png (23.59 KiB) Viewed 3803 times
Screenshot from 2021-01-12 16-54-38.png
Screenshot from 2021-01-12 16-54-38.png (33.67 KiB) Viewed 3803 times
Screenshot from 2021-01-12 17-05-12.png
Screenshot from 2021-01-12 17-05-12.png (42.43 KiB) Viewed 3803 times
caiot5
Posts: 3
Joined: Sat 09 Jan, 2021 3:41 am

Re: v17 compatibility & bug list

Post by caiot5 »

Well, hello Sarah (and of course other contributors), first things first: I want to thank you for your HUGE efforts of coding PCem.
I know that it is a really complex thing, and you guys (and girls) did an amazing job.
However I would just report that the Dynamic Recompiler of v17 looks completely broken (or kind of) on macOS.
All the machines that relies on Dynarec (such as Pentium-class machines) are REALLY slow.
I can confirm that without Dynarec it works the same (or better) than v16 did.
I know that there is no official support for macOS because the lack of interest on it and I know that you must have a ton of more important things to do instead of troubleshooting PCem for a OS that just a few PCem users actually use.
So it is just to report it.
I'll just keep using v16 for now.

Thanks, peace ^^
Caio
User avatar
digger
Posts: 2
Joined: Sun 01 Mar, 2020 4:47 pm

Re: v17 compatibility & bug list

Post by digger »

JosepMa wrote:
Fri 01 Jan, 2021 4:46 pm
Re: SeaBIOS: Back when I checked, it did support i440BX, so now that there's the GA686BX, maybe it could be added. Also given that it's open source, it should be easier to get good support than for closed-source legacy bioses. Finally, don't forget there's also an VGAbios. (don't know what does it emulate)

Re: FreeDOS: Obviously it requires the "legacy" one, since PCem emulates legacy hardware.
First of all: high, everyone! :D This is my first post in the PCem forum.

Anyway, about that VGA BIOS that is included with SeaBIOS: from what I have understood, it can be used as a generic alternative for when you build a coreboot image with a SeaBIOS payload for actual hardware, such as a laptop supported by coreboot. You can of course opt to extract the vendor-specific BIOS image from the laptop's factory-shipped BIOS before you replace it with coreboot, but that image would be a binary blob, so people who want their BIOS blob-free can opt to build their coreboot/SeaBIOS image with the open source VGA BIOS instead. The downside of that of course is that it only supports the generic IBM VGA functionality, since that is the lowest common denominator with which all VGA-compatible GPUs are compatible at the hardware register level. All SVGA and higher resolution VESA/VBE stuff would require custom BIOS code for each video chipset. But people who want a BIOS free of binary blobs usually don't mind, since they typically only need the BIOS to boot into the OS, at which point the OS-specific video drivers take over. General VGA compatibility is usually sufficient for that.

But all of this does mean that the open source VGA BIOS that is part of the SeaBIOS project is designed to also work with actual physical VGA-compatible video cards, not just emulated or virtualized ones.

A while back, I tried emulating a PC with an IBM VGA card in PCem, and booting it using the VGA BIOS from the SeaBIOS project, but I couldn't get it to work. I got a black screen. I'm not sure why it didn't work. One possible reason might be that the ROM image was compiled with modern x86 instructions that are not supported by older 386 and 486 CPUs.

Has anybody else been more successful with this? It would be quite useful if we could make available an open source generic VGA BIOS image with a license compatible with that of PCem. One that would be a drop-in replacement for the official IBM VGA BIOS that PCem of course doesn't include for legal reasons. It would be a significant step towards being able to distribute a fully functional and ready-to-use ROM image of an emulated (vintage or legacy) PC for use with PCem. All the other ingredients already seem to be there. SeaBIOS already works with some of the machine types that PCem can emulate. Combined with the XT-IDE BIOS and such a VGA BIOS, we'd be all set, right?
EluanCM
Posts: 112
Joined: Tue 27 Oct, 2015 2:07 pm
Location: Brazil
Contact:

Re: v17 compatibility & bug list

Post by EluanCM »

VGABios is not supposed to be used with "real" hardware, which is what PCem emulates (this is stated in its manual). Using it would require changes to PCem.
UPerschke
Posts: 58
Joined: Wed 25 May, 2016 7:43 pm

X-Scooter (or XScooter or X Scooter, not sure)

Post by UPerschke »

Banshee: Distorted character models, both with and without recompiler.
Voodoo2: Working, both with and without recompiler.
Voodoo3: Working

Cannot compare to a real Banshee.
Could not find any pics online for comparison either.

OS: Win98SE
DirectX: 7.0a

Voodoo2 driver
Voodoo2 Driver kit Version: 3.02.02
Glide Driver Version: 2.56.00.0459
Glide3 Driver Version: 3.03.00.0670
Voodoo2 D3D Driver Build Number: 4.12.01.1151
Voodoo2 Control Panel Applet: 4.12.01.0082
OpenGL(r) Driver Version: 1.0.0.0508 ICD
Voodoo3 driver
Voodoo3(tm) Driver kit: 1.07.00-WHQL
Voodoo3 DirectX(r) Driver Version: 4.12.01.0666
Voodoo3 Win9x 2D/3D Display Drivers: 4.12.01.0666
Glide(tm) 2.X Driver: 2.61.00.0658
Glide 3.X Driver: 3.10.00.0658
OpenGL(r) Driver Version: 1.0.0.0734 ICD
Banshee driver
Voodoo Banshee(tm) Driver kit: 1.04.00
Voodoo Banshee Win9x 2D/3D Display Drivers: 4.12.01.1222
Voodoo Banshee Glide(tm) 2.X Driver: 2.61.00.0518
Voodoo Banshee Glide 3.X Driver:3.10.00.0518
Voodoo Banshee Control Panel: 4.12.01.1552
OpenGL(r) Driver Version: 1.0.0.0508 ICD
Config
gameblaster = 0
gus = 0
ssi2001 = 0
voodoo = 0
model = fic_va503p
cpu_manufacturer = 0
cpu = 10
fpu = builtin
cpu_use_dynarec = 1
cpu_waitstates = 0
gfxcard = banshee
video_speed = 5
sndcard = sb16
cpu_speed = 21
disc_a =
disc_b =
hdd_controller = ide
mem_size = 131072
cdrom_drive = 200
cdrom_channel = 2
zip_channel = -1
hdc_sectors = 63
hdc_heads = 16
hdc_cylinders = 4096
hdd_sectors = 63
hdd_heads = 16
hdd_cylinders = 4096
hde_sectors = 0
hde_heads = 0
hde_cylinders = 0
hde_fn =
hdf_sectors = 0
hdf_heads = 0
hdf_cylinders = 0
hdf_fn =
hdg_sectors = 0
hdg_heads = 0
hdg_cylinders = 0
hdg_fn =
hdh_sectors = 0
hdh_heads = 0
hdh_cylinders = 0
hdh_fn =
hdi_sectors = 0
hdi_heads = 0
hdi_cylinders = 0
hdi_fn =
drive_a_type = 7
drive_b_type = 7
bpb_disable = 0
cd_speed = 48
cd_model = pcemcd
joystick_type = 3
mouse_type = 3
enable_sync = 1
netcard =
lpt1_device = none
vid_resize = 0
video_fullscreen_scale = 0
video_fullscreen_first = 1

[Joysticks]
joystick_0_nr = 2
joystick_1_nr = 0
joystick_0_axis_0 = 0
joystick_0_axis_1 = 1
joystick_0_button_0 = 0
joystick_0_button_1 = 1
joystick_0_button_2 = 2
joystick_0_button_3 = 3
joystick_0_button_4 = 4
joystick_0_button_5 = 5
joystick_0_button_6 = 6
joystick_0_button_7 = 7

[SDL2]
screenshot_format = png
screenshot_flash = 1
custom_width = 640
custom_height = 480
fullscreen = 0
fullscreen_mode = 0
scale = 1
scale_mode = 1
vsync = 0
focus_dim = 0
alternative_update_lock = 0
render_driver = auto

[GL3]
input_scale = 1.000000
input_stretch = 0
shader_refresh_rate = 0.000000

[GL3 Shaders]
shaders = 0
Screenshots
Voodoo2 player select.jpg
Voodoo2 player select.jpg (130.71 KiB) Viewed 2718 times
Voodoo2 ingame.jpg
Voodoo2 ingame.jpg (138.89 KiB) Viewed 2718 times
Banshee player select.jpg
Banshee player select.jpg (120.76 KiB) Viewed 2718 times
Banshee ingame 1.jpg
Banshee ingame 1.jpg (136.47 KiB) Viewed 2718 times
Banshee player select.jpg
Banshee player select.jpg (120.76 KiB) Viewed 2718 times
Edit: Added Voodoo3 result + driver information
Attachments
Banshee ingame 2.jpg
Banshee ingame 2.jpg (126.28 KiB) Viewed 2718 times
Last edited by UPerschke on Sun 21 Mar, 2021 10:27 am, edited 4 times in total.
UPerschke
Posts: 58
Joined: Wed 25 May, 2016 7:43 pm

EA F1 Championship Season 2000

Post by UPerschke »

Banshee: OS freeze at start - Both main binary and f1config.exe
Voodoo2: Working, but presumably CPU bottlenecked

Recompiler: No difference if enabled or disabled
Ctrl+Alt+Del: No impact
Hard Reset: Working
OS: Win98SE
DirectX: 7.0a

Voodoo2 driver
Voodoo2 Driver kit Version: 3.02.02
Glide Driver Version: 2.56.00.0459
Glide3 Driver Version: 3.03.00.0670
Voodoo2 D3D Driver Build Number: 4.12.01.1151
Voodoo2 Control Panel Applet: 4.12.01.0082
OpenGL(r) Driver Version: 1.0.0.0508 ICD
Banshee driver
Voodoo Banshee(tm) Driver kit: 1.04.00
Voodoo Banshee Win9x 2D/3D Display Drivers: 4.12.01.1222
Voodoo Banshee Glide(tm) 2.X Driver: 2.61.00.0518
Voodoo Banshee Glide 3.X Driver:3.10.00.0518
Voodoo Banshee Control Panel: 4.12.01.1552
OpenGL(r) Driver Version: 1.0.0.0508 ICD]
Config
gameblaster = 0
gus = 0
ssi2001 = 0
voodoo = 0
model = fic_va503p
cpu_manufacturer = 0
cpu = 10
fpu = builtin
cpu_use_dynarec = 1
cpu_waitstates = 0
gfxcard = banshee
video_speed = 5
sndcard = sb16
cpu_speed = 21
disc_a =
disc_b =
hdd_controller = ide
mem_size = 131072
cdrom_drive = 200
cdrom_channel = 2
zip_channel = -1
hdc_sectors = 63
hdc_heads = 16
hdc_cylinders = 4096
hdd_sectors = 63
hdd_heads = 16
hdd_cylinders = 4096
hde_sectors = 0
hde_heads = 0
hde_cylinders = 0
hde_fn =
hdf_sectors = 0
hdf_heads = 0
hdf_cylinders = 0
hdf_fn =
hdg_sectors = 0
hdg_heads = 0
hdg_cylinders = 0
hdg_fn =
hdh_sectors = 0
hdh_heads = 0
hdh_cylinders = 0
hdh_fn =
hdi_sectors = 0
hdi_heads = 0
hdi_cylinders = 0
hdi_fn =
drive_a_type = 7
drive_b_type = 7
bpb_disable = 0
cd_speed = 48
cd_model = pcemcd
joystick_type = 3
mouse_type = 3
enable_sync = 1
netcard =
lpt1_device = none
vid_resize = 0
video_fullscreen_scale = 0
video_fullscreen_first = 1

[Joysticks]
joystick_0_nr = 2
joystick_1_nr = 0
joystick_0_axis_0 = 0
joystick_0_axis_1 = 1
joystick_0_button_0 = 0
joystick_0_button_1 = 1
joystick_0_button_2 = 2
joystick_0_button_3 = 3
joystick_0_button_4 = 4
joystick_0_button_5 = 5
joystick_0_button_6 = 6
joystick_0_button_7 = 7

[SDL2]
screenshot_format = png
screenshot_flash = 1
custom_width = 640
custom_height = 480
fullscreen = 0
fullscreen_mode = 0
scale = 1
scale_mode = 1
vsync = 0
focus_dim = 0
alternative_update_lock = 0
render_driver = auto

[GL3]
input_scale = 1.000000
input_stretch = 0
shader_refresh_rate = 0.000000

[GL3 Shaders]
shaders = 0
Last edited by UPerschke on Sun 07 Feb, 2021 7:09 am, edited 2 times in total.
UPerschke
Posts: 58
Joined: Wed 25 May, 2016 7:43 pm

Eidos F1 World Championship

Post by UPerschke »

Banshee: OS freeze at start
Voodoo 2: Working

Same conditions as in my previous reply.
Last edited by UPerschke on Sun 07 Feb, 2021 7:08 am, edited 1 time in total.
UPerschke
Posts: 58
Joined: Wed 25 May, 2016 7:43 pm

I-Magic iF22

Post by UPerschke »

Banshee: Screen goes black then OS freeze (mouse cursor visible)
Voodoo 2: Working

Patch 3.3 was installed.

Otherwise same conditions as in my EA F1 Championship Season 2000 reply.
amalahama
Posts: 3
Joined: Wed 10 Jul, 2019 7:33 am

Re: v17 compatibility & bug list

Post by amalahama »

Hi,

Trying Digital Integration Hind in 3dfx mode, it does not work, PCem closes unexpectedly and PCEM.LOG show the following error:

Code: Select all

voodoo_fb_writel : bad LFB format 00000014
model
[Super 7] FIC VA-503+
CPU: Pentium 166
Video: S3 Virge with Voodoo 1
User avatar
kode54
Posts: 8
Joined: Thu 16 Aug, 2018 7:32 am

Re: v17 compatibility & bug list

Post by kode54 »

I have the arm64 recompiler working on macOS, but I ran into a different issue:

Code: Select all

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
abort() called
terminating with uncaught exception of type NSException
Just fyi, to get things working thus far:

1) I had to add an __APPLE__ case to the allocator to add MAP_JIT to the flags.
2) I had to add pthread_jit_write_protect_np(0/1) calls around blocks that wrote to the MAP_JIT memory, this function toggle is per thread, and the blocks default to execute but read-only.
3) I needed to regen the build files with autoreconf -i, and needed to doctor them.
4) The configure.ac needed to detect host_cpu of "arm" and set CPU=arm64. This should probably be specific to host darwin.
5) The build needed the off64_t overrides, since that doesn't exist here. Offsets seem to be 64 bit, though.
6) DEFAULT_INCLUDES needed to be changed to include /opt/homebrew/include, since somehow Homebrew doesn't override that for my environment.
7) codegen_allocator_clean_blocks needed a separate cache wipe function for macOS ARM: sys_cache_control(kCacheFunctionPrepareForExecution, &mem_block_
alloc[block->offset], MEM_BLOCK_SIZE);

The only issue seems to be that wxMac thing.

Incidentally, MAP_JIT is needed when building for 10.14 SDK and 10.14+ on Intel, too, but the pthread_jit function calls are not needed.

EDIT: I managed to make it run long enough to get into Windows 98 SE, by forcing it into fullscreen mode using ./pcem --fullscreen to run it. It seems to work, but it fails to run Final Reality with 3Dfx mode.
El DOS
Posts: 2
Joined: Wed 21 Apr, 2021 10:35 pm

Re: v17 compatibility & bug list

Post by El DOS »

Hi, all! My first post here will be a problem report - namely, I have issues with S3 card emulationon PCEM v17, installed from Gentoo repository.

Emulated HW:
- FIC VA-503+
- Mobile Pentium MMX 150, dynamic recompiler is always enabled for these CPUs
- 64 MB RAM
- Phoenix S3 Trio64 or S3 ViRGE/DX, 4MB VRAM, Fast VLB/PCI

Guest SW:
- MS-DOS 6.22 + Windows 3.11 for Workgroups (fresh install, no addons, no CONFIG.SYS / AUTOEXEC.BAT edits), resolution 1024x768, 64k colors, small fonts
- Critical Mass v1.0 game (you can use a free demo version to reproduce the problem, download the ZIP from here: https://archive.org/details/CriticalMass_1020)
- for S3 Trio64 - tried drivers 1.70.04 from http://www.mediafire.com/file/p2faljwg5 ... 4.zip/file
- for S3 ViRGE - tried drivers 1.05.05 and 1.05.09, got same results

Problem with S3 Trio64:
-trying to launch the MS DOS prompt from within Windows (icon in the Program Manager's Main group) locks the emulation (it freezes). No such problems with S3 ViRGE or with Windows VGA driver.

Problem with S3 ViRGE:
- Critical Mass game window is badly distorted (see the attached screenshot), looks like the 'x' coordinates of some operations are wrong. No such problems with S3 Trio64, or with Windows VGA driver.

I have tried to change various parts of the emulated system (like the CPU, screen mode, DR-DOS instead of MS-DOS, etc.), but results were always the same.
Attachments
glitch.png
glitch.png (123.71 KiB) Viewed 1233 times
mgtroyas
Posts: 3
Joined: Sun 16 Aug, 2020 2:20 pm

Re: v17 compatibility & bug list

Post by mgtroyas »

Hello all,

I'm experiencing some texture corruption with Voodoo acceleration on Dungeon Keeper 2. Some textures momentarily are swapped to others also used ingame.

Code: Select all

Emulated HW:
Asus P/I-P55T2P4
Pentium MMX 233
64MB RAM
SoundBlaster AWE32
3dfx Voodoo3 3000 drivers V1.07.00 (but also with Voodoo2 and Banshee, with their respective latest stable drivers from falconfly.3dfx.pl)

Guest SW:
Windows 98 SE
Dungeon Keeper II 1.7 patch
D3D acceleration
I recorded a video as it's difficult to capture on a screenshot:
https://streamable.com/7a4ujv

If I run the game with software renderer (no D3D acceleration) it doesn't happen.

Edit: another image corruption, this case in Bio Menace (DOS game) running on Windows 98. Similar (but not same) happens on reboot to DOS from Win98 (perhaps happens on real hardware too?):

https://streamable.com/h2xr2r
Post Reply