Ok, I found out that, if I disable most of the fixes of H.Sie through the HsieOptionsSelector.exe, the game doesn't crash. Might be that a specific fix is causing issues. Will probably spend the afternoon enabling fixes until I find one that crashes the game.
Edit: It did take quite a while, but not the whole afternoon. I have determined that the problem lies in the Diesel Damage Fix. Which is unfortunate, because it is a fix I would like to have in my game. Do you have any recommendation on what to do?
Edit2:
Quote:
Quote:
I am indeed a little bit surprised that the diesel fix worked for 3 years (as far as I know) and now suddenly causes crashes. But of course I cannot guarantee that my work is without errors. I completely retired from SH3 modding and even from SH3 - and thus the only tip I can give you (if my work really is the cause of the problem): Disable the fix.
Hopefully, there is a good assembler guru available that can help.
Good bye.
|
Hi h.sie,
your "Diesel Damage Fix" is 100% o.k. I'm using it since releas of patch V16B1 without any problems. It's exactly as BL!TZKR!EG wrote the changed "msvcr71.dll" which causes the reported CTDs. I've changed that dll to the original msvcr71.dll from Stock-SH3 and the "Diesel Damage Fix" is running well. Hope this will be fixed by the LSH3-Team.
Greetings
rowi58
|
This post at
https://www.subsim.com/radioroom/sho...=220285&page=2 seems to indicate that I should replace msvcr71.dll with the original. Will do that and see what happens.
Edit3: Ok, I'm stupid. I noticed the files didn't do anything, then I remembered that I had to tell wine to use the native msvcr71 library (as indicated by the second guide I linked here). Now the patch works without crashing. Will now try using more mods.
Edit4: Naval academy works, but career doesn't. It fails at the loading screen to enter the career:
Code:
wine: Unhandled page fault on read access to 0x00000000 at address 0x7c342969 (thread 0055), starting debugger...
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x7c342969).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:006b GS:0063
EIP:7c342969 ESP:0033e3dc EBP:0033e3e8 EFLAGS:00210246( R- -- I Z- -P- )
EAX:00000000 EBX:00000003 ECX:00000003 EDX:00000000
ESI:00000000 EDI:00000000
Stack dump:
0x0033e3dc: 176681e8 1b680ad8 17675c88 00000000
0x0033e3ec: 0066d865 00000000 cfaf6044 00000003
0x0033e3fc: cfaf6044 1b680ad8 0033e4cc 17898824
0x0033e40c: 0066e9a3 cfaf6044 0127e0ed 00000000
0x0033e41c: 1b680ad8 cfaf6044 004b9443 1b680ad8
0x0033e42c: cfaf6044 0075f140 00000000 00000000
Backtrace:
=>0 0x7c342969 EntryPoint+0x6ca() in msvcr71 (0x0033e3e8)
0x7c342969 EntryPoint+0x6ca in msvcr71: repne scasb %es:(%edi)
Modules:
Module Address Debug info Name (65 modules)
PE 340000- 3be000 Deferred kernel
PE 3c0000- 3da000 Deferred filemanager
PE 3e0000- 3f4000 Deferred intro
PE 400000- 63a000 Deferred sh3
PE 640000- 64c000 Deferred messagenet
PE 650000- 658000 Deferred missionengine
PE 660000- 68a000 Export simdata
PE 690000- 6a4000 Deferred statemachine
PE 6b0000- 6c5000 Deferred utils
PE 6d0000- 6d7000 Deferred movietex.act
PE 6e0000- 6e8000 Deferred property
PE f60000- f67000 Deferred anim.act
PE f70000- f77000 Deferred bezierwaypoint.act
PE f80000- f95000 Deferred camerabehavior.act
PE fa0000- fa8000 Deferred cameramanager.act
PE fb0000- fbb000 Deferred effectmanagers.act
PE fc0000- fe4000 Deferred envsim.act
PE ff0000- ff8000 Deferred eventcamera.act
PE 1000000- 1009000 Deferred lipssync.act
PE 1010000- 1084000 Deferred multiplayer.act
PE 1090000- 10a0000 Deferred particles.act
PE 10a0000- 10c4000 Deferred sh3collisions.act
PE 10d0000- 10f4000 Deferred sh3controllers.act
PE 1100000- 114d000 Deferred sh3sim.act
PE 1150000- 1162000 Deferred sh3sound.act
PE 1170000- 11b9000 Deferred sound.act
PE 11c0000- 11cb000 Deferred statemachinectl.act
PE 10000000-10008000 Deferred drawlib
PE 30000000-30072000 Deferred binkw32
PE 64b40000-64b59000 Deferred shcore
PE 7a820000-7a824000 Deferred opengl32
PE 7b420000-7b5dd000 Deferred kernel32
PE 7bc10000-7bcbb000 Deferred ntdll
PE 7c340000-7c396000 Export msvcr71
PE 7dc80000-7dcae000 Deferred uxtheme
PE 7df00000-7df04000 Deferred winex11
PE 7e250000-7e26a000 Deferred imm32
PE 7e280000-7e2bb000 Deferred usp10
PE 7e2c0000-7e41a000 Deferred comctl32
PE 7e430000-7e453000 Deferred msvfw32
PE 7e460000-7e51b000 Deferred winmm
PE 7e460000-7e51b000 Deferred msacm32
PE 7e540000-7e592000 Deferred avifil32
PE 7e5b0000-7e5b4000 Deferred ucrtbase
PE 7e6a0000-7ef76000 Deferred shell32
PE 7f060000-7f0b5000 Deferred shlwapi
PE 7f0d0000-7f15d000 Deferred rpcrt4
PE 7f160000-7f2af000 Deferred ole32
PE 7f2e0000-7f3d3000 Deferred msvcp71
PE 7f440000-7f444000 Deferred iphlpapi
PE 7f470000-7f474000 Deferred ws2_32
PE 7f4a0000-7f4af000 Deferred wsock32
PE 7f4d0000-7f5b2000 Deferred user32
PE 7f6d0000-7f6d7000 Deferred gdi32
PE 7f800000-7f804000 Deferred wined3d
PE 7f950000-7fc19000 Deferred d3d9
PE 7f9c0000-7f9c4000 Deferred advapi32
PE 7ffd0000-7ffdd000 Deferred version
PE f57f0000-f590a000 Deferred oleaut32
PE f7620000-f7623000 Deferred winepulse
PE f7650000-f767a000 Deferred mmdevapi
PE f7a00000-f7a08000 Deferred shfolder
PE f7a10000-f7a68000 Deferred dsound
PE f7a60000-f7a80000 Deferred mpr
PE f7a90000-f7b16000 Deferred wininet
Threads:
process tid prio (all id:s are in hex)
0000000e services.exe
00000023 0
00000020 0
0000001b 0
00000013 0
00000010 0
0000000f 0
00000011 winedevice.exe
00000018 0
00000017 0
00000016 0
00000012 0
00000019 plugplay.exe
0000001d 0
0000001c 0
0000001a 0
0000001e winedevice.exe
00000026 0
00000022 0
00000021 0
0000001f 0
00000024 explorer.exe
00000029 0
00000028 0
00000027 0
00000025 0
00000034 SH3Cmdr.exe
00000035 0
00000046 S3F.exe
0000004f 0
0000004e 0
0000004b 0
0000004a 15
00000049 15
00000048 0
00000047 0
00000054 (D) Z:\home\zerk\Software\sh3-sf\gwx-sh3\sh3.exe
00000059 15
00000058 15
00000057 0
00000056 0
00000055 0 <==
System information:
Wine build: wine-4.0 (Debian 4.0-2)
Platform: i386 (WOW64)
Version: Windows 7
Host system: Linux
Host version: 4.19.0-12-amd64
The problem with this instruction:
Code:
repne scasb %es:(%edi)
I think is that it tries to indirectly address %edi, rather than register addressing it. So instead of using the data in %edi as an offset in a memory segment, it treats the data contained in %edi as an address to the memory location of that offset. Since %edi contains 0x00000000, the computer tries to access 0x00000000 to access that offset, which is invalid and therefore segfaults. I don't know how that occurred (and disassembling the previous instructions probably won't help, because I wouldn't grasp what was happening and why and how it could be fixed)
Looks like msvcr71 is problematic again. Disabling H.sie patch gives the same result. It should be 4GB patched and it crashes somewhere between 1/2 to 3/4 of the loading bar. Since I haven't ever started a career before, I'll have to test different setups to see if the problem lies in SH3, GWX, the mods, or Commander.
Does the part with the compatibility mode also apply to Wine? I always regarded Wine as being able to run legacy and new software alike.