Problems with Dynamic Recompiler in 64-bits Linux

Support and general discussion.
Post Reply
EluanCM
Posts: 112
Joined: Tue 27 Oct, 2015 2:07 pm
Location: Brazil
Contact:

Problems with Dynamic Recompiler in 64-bits Linux

Post by EluanCM »

Trying to install Windows 95 with the latest development version results in a bluescreen followed by a freeze at the very end of the installation process (right before beginning the printer configuration step).

Code: Select all

Invalid segment type for 0A6C! 0000
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=0
page 0 write to port 0008
write address 309, val=42
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0xffff
read addr 308
page 0 read from port 0008
read addr 309
page 0 read from port 0009
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=0
page 0 write to port 0008
write address 309, val=42
page 0 write to port 0009
write address 30a, val=33
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=12
wrote 0x12 to CR
asic write val=0xffff
asic write val=0xffff
asic write val=0xffff
asic write val=0xdeac
asic write val=0x8848
asic write val=0xaabb
asic write val=0x2500
asic write val=0xe0e0
read addr 307
page 0 read from port 0007
asic write val=0xff03
asic write val=0x00ff
asic write val=0x0022
asic write val=0x0011
asic write val=0x0000
asic write val=0xff00
asic write val=0xffff
asic write val=0xffff
asic write val=0x04ff
asic write val=0x0052
asic write val=0x0000
asic write val=0xac00
asic write val=0x48de
asic write val=0xbb88
asic write val=0x40aa
asic write val=0x0008
asic write val=0x0003
read addr 307
page 0 read from port 0007
asic write val=0x0004
write address 308, val=32
page 0 write to port 0008
write address 309, val=42
page 0 write to port 0009
write address 30a, val=1
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0x0004
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=34
page 0 write to port 0008
write address 309, val=42
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0x2020
read addr 308
page 0 read from port 0008
read addr 309
page 0 read from port 0009
write address 308, val=32
page 0 write to port 0008
write address 309, val=42
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=12
wrote 0x12 to CR
asic write val=0x2004
read addr 307
page 0 read from port 0007
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=34
page 0 write to port 0008
write address 309, val=42
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0x2020
read addr 308
page 0 read from port 0008
read addr 309
page 0 read from port 0009
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=34
page 0 write to port 0008
write address 309, val=42
page 0 write to port 0009
write address 30a, val=8
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=12
wrote 0x12 to CR
asic write val=0x2020
asic write val=0x2020
asic write val=0x2020
asic write val=0x2020
read addr 307
page 0 read from port 0007
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
RETF CS not present 903252004  2227 0000 7B00
RETF CS not present 903279561  2227 0000 7B00
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
NULL segment! rb 0117(0000F820):000093F8 26 00000000
NULL segment! rb 0117(0000F820):000093F8 26 00000000
onesec
RETF CS not present 935482040  215F 0000 7B00
onesec
onesec
onesec
onesec
onesec
Invalid segment type for 301C! 0000
Invalid segment type for 301C! 0000
Invalid segment type for 301C! 0000
Invalid segment type for 2FD4! 0000
Invalid segment type for 301C! 0000
NULL segment! rw 0117(0000F820):00001874 26 00000000
NULL segment! rw 0117(0000F820):00001874 26 00000000
NULL segment! rw 0117(0000F820):00001874 26 00000000
NULL segment! rw 0117(0000F820):00001874 26 00000000
NULL segment! rw 0117(0000F820):00001874 26 00000000
NULL segment! rw 0117(0000F820):00001874 26 00000000
NULL segment! rw 0117(0000F820):00001874 26 00000000
Invalid segment type for 301C! 0000
onesec
onesec
Invalid segment type for 272C! 0000
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=0
page 0 write to port 0008
write address 309, val=43
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0x0003
read addr 308
page 0 read from port 0008
read addr 309
page 0 read from port 0009
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=0
page 0 write to port 0008
write address 309, val=43
page 0 write to port 0009
write address 30a, val=33
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=12
wrote 0x12 to CR
asic write val=0xffff
asic write val=0xffff
asic write val=0xffff
asic write val=0xdeac
asic write val=0x8848
asic write val=0xaabb
asic write val=0x2500
asic write val=0xe0e0
read addr 307
page 0 read from port 0007
asic write val=0xff03
asic write val=0x00ff
asic write val=0x0022
asic write val=0x0011
asic write val=0x0000
asic write val=0xff00
asic write val=0xffff
asic write val=0xffff
asic write val=0x04ff
asic write val=0x0052
asic write val=0x0000
asic write val=0xac00
asic write val=0x48de
asic write val=0xbb88
asic write val=0x40aa
asic write val=0x0008
asic write val=0x0001
read addr 307
page 0 read from port 0007
asic write val=0x0004
write address 308, val=32
page 0 write to port 0008
write address 309, val=43
page 0 write to port 0009
write address 30a, val=1
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0x0004
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=34
page 0 write to port 0008
write address 309, val=43
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0x534f
read addr 308
page 0 read from port 0008
read addr 309
page 0 read from port 0009
write address 308, val=32
page 0 write to port 0008
write address 309, val=43
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=12
wrote 0x12 to CR
asic write val=0x2004
read addr 307
page 0 read from port 0007
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=34
page 0 write to port 0008
write address 309, val=43
page 0 write to port 0009
write address 30a, val=2
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=a
wrote 0x0a to CR
asic read val=0x534f
read addr 308
page 0 read from port 0008
read addr 309
page 0 read from port 0009
write address 300, val=0
wrote 0x00 to CR
CR write - invalid rDMA value 0
write address 308, val=34
page 0 write to port 0008
write address 309, val=43
page 0 write to port 0009
write address 30a, val=8
page 0 write to port 000a
write address 30b, val=0
page 0 write to port 000b
write address 300, val=12
wrote 0x12 to CR
asic write val=0x2020
asic write val=0x2020
asic write val=0x2020
asic write val=0x2020
read addr 307
page 0 read from port 0007
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
onesec
After rebooting, everything appears fine but sometimes random errors happen while using windows (bluescreens/illegal operations), but not yet when playing any game.

When using a Windows 98 SE boot cd, pcem hangs right after selecting to boot from the cd-rom in the initial Windows 98 SE boot menu, and the log file will grow indefinitely with "Divide exception at 0070(000700):1295" until the entire free space from the host hdd is consumed. Doesn't happen on all models and booting by other means and running the Windows 98 SE installer from there will result in the same problems as the Windows 95 installation.

Code: Select all

gameblaster = 0
gus = 0
ssi2001 = 0
voodoo = 0
model = endeavor
cpu_manufacturer = 0
cpu = 0
cpu_use_dynarec = 1
cpu_waitstates = 0
gfxcard = mach64gx
video_speed = 5
sndcard = sb16
cpu_speed = 9
has_fpu = 1
disc_a = 
disc_b = 
hdd_controller = ide
mem_size = 8192
cdrom_drive = 200
cdrom_enabled = 1
cdrom_channel = 1
cdrom_path = 
hdc_sectors = 63
hdc_heads = 16
hdc_cylinders = 2048
hdc_fn = /home/eluancm/programas/pcem_2017_10_21/_images/pcem_hd_teste.img
hdd_sectors = 0
hdd_heads = 0
hdd_cylinders = 0
hdd_fn = 
hde_sectors = 0
hde_heads = 0
hde_cylinders = 0
hde_fn = 
hdf_sectors = 0
hdf_heads = 0
hdf_cylinders = 0
hdf_fn = 
drive_a_type = 5
drive_b_type = 0
bpb_disable = 0
joystick_type = 0
mouse_type = 0
enable_sync = 1
lpt1_device = none
vid_resize = 0
video_fullscreen_scale = 1
video_fullscreen_first = 1
netcard = ne2000

[Joysticks]
joystick_0_nr = 0
joystick_1_nr = 0

[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

[ATI Mach64GX]
memory = 1

[Sound Blaster 16]
addr = 544
opl_emu = 1
Suggestion: would flushing the log file after every write with pclog() cause performance problems? That would make it easier to follow the logs in real time. Also the logs do not get flushed if I force kill pcem after it stops responding,

I am using GCC 5.4.0 x86_64. Compiling under windows with mingw works perfectly.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Problems with Dynamic Recompiler in 64-bits Linux

Post by SarahWalker »

EluanCM wrote:Suggestion: would flushing the log file after every write with pclog() cause performance problems?
Absolutely kills performance I'm afraid.

64-bit dynarec is on my list for v13 bugfixing, I'm aware it's regressed somewhat since v12.
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: Problems with Dynamic Recompiler in 64-bits Linux

Post by szadycbr »

I have tested latest source in 64 bit linux and it does crash win98 during boot, and PCem just turns off. I m not sure about, but i think i could run 98se on 64bit linux before, but now it crashes during boot. It's fine without recompiler, but knowing that there are problems i did install 32 bit linux and compile 32bit source, well, it does the same , and crash in same manner. i wonder , does 32bit win ver does the same? probably not, but i dont have windows nor any compiled windows ver, cos i can check in wine as it runs official PCem v12 well. Have no log at the moment , but if it interests anybody i can put it here, if it could help.
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: Problems with Dynamic Recompiler in 64-bits Linux

Post by szadycbr »

ahhh, all strange, the problems above were on linux AntiX 17 , now i did compile on 64bit q4os and it starts first time, second too, ehhh.
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: Problems with Dynamic Recompiler in 64-bits Linux

Post by szadycbr »

Again me, it sound like i only complain, but 3dmark99 on 64bit linux Wx builds, using voodoo 1 or 2 crashes after 3 sec. of test , freezing PCem and display big mess on the screen, that is happening from some time now, so not just recently. it does the same using CPU or GPU without recompiler. also nfs3 often crashes and freeze PCem using voodoo.
Ehh, Linux version is far behind windows, and i guess it wont change anytime soon. Any way, Thank You Sarah, and Everybody else, i m not demanding anything and i am grateful for all the work on this great project. (must say, cos it sounds like i am an ungrateful , demanding dick) :(
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Problems with Dynamic Recompiler in 64-bits Linux

Post by SarahWalker »

Rev 947 fixes the Windows 95 setup issue. Probably some other issues as well.
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: Problems with Dynamic Recompiler in 64-bits Linux

Post by szadycbr »

Thank You.
BTW, 430vx accept 486DX4 cpu, and with recompiler it causes much less garbage than Pentium cpu's on 64bit Linux.
Edit: almost no problems with 486. :P
Post Reply