HELP!: Who can fix Micrografx Picture Publisher 8?

Questions about Wine on Linux
Locked
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

My most important graphics program for drawing and complex photo editing is Micrografx Picture Publisher 8. Unfortunately it does not run in WINE on modern hardware. I examined it with DependencyWalker but found no solution.

As a collector and hardware researcher of music keyboards and soundtoys, for reference I keep on my harddisk some 10000 downloaded old eBay pages (consisting each of a HTML page and directory with media contents) and have some 100000 own digicam photos of hardware details etc. Yet I used for this Picture Publisher 8 on my main PC (Colani bigtower) for major photo rework jobs, but because the highend Win98SE machine (AMD K6-3@550MHz, 768MB RAM) became completely overloaded with this work (160GB harddrive full to the brim and FAT32 too slow), I installed an additional modern ITX mainboard with AMD 2400G and 8TB harddrive running Linux Mint 20.1 with KDE 5 Plasma and WINE 6.3 (using PlayOnLinux to switch versions).

After installing Micrografx Picture Publisher 8 (German version) in WINE 6.3, the canvas does not react on drawing, so first you need to disable DirectDraw mode in "Display" menu(?). Then you need to disable the active mask and set the drawing mode of the brush to standard (initially something wrong is selected) and choose a colour (other than white) to draw something. The bad thing is that the file requester causes a crash so you can not save your work (you may try a screenshot). Also some other things like clicking on blur/sharpen tool crashes.

bugs

(Because my install is in German language, the actual menu item names may differ.)

- Most severe is, you can not save your work, because the file requester crashes (halfway visible, buttons and contents missing). But "export" as JPG (which uses a different file requester?) does function ok. On my Win98SE PC it rarely crashed too during saving (very annoying), so I conclude there may be a race condition bug in the program triggered by slow responding OS or file system.

- Clicking the blur/sharpen/brighten/darken drawing tools makes it crash.

- Closing the "make website"(?) window makes it crash.

- Moving the toolbar menus around causes temporary coloured pixel garbage.

- Running the installer makes the blue desktop background stay in front of a popup requester, so you can not click "ok" to finish the successful installation. But killing it with ALT F4(?) seems to work ok.

- Drawing works only when you disable the DirectDraw mode in "Display"(?) menu. Else picture contents gets scrambled e.g. by moving the window.

Version "Picture Publisher 7" is very similar and in WINE has the same bugs except that it does not need the disable DirectDraw workaround.

diagnosis

Apparently SHELL32.DLL and WINSPOOL.DRV fail. They are loaded by MGXBRWSR.DLL and by PP80.EXE. Also MGX42.DLL fails when using some functions.

Running DependencyWalker 2.2 for "Micrografx Picture Publisher 8" on Linux using WINE 6.3 starts with:

"Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module."

Inserting a SHELL32.DLL from 2007 (works in Win98SE) =>DependencyWalker compains about missing KRNL386.EXE (refered by KERNEL32.DLL), which seems to be a 16bit module. It also complains about missing dependencies to other 16bit stuff (which is not supported by 64bit Linux kernels on my AMD 2400G). Also "Micrografx Picture Publisher 5" is 16bit and hence can not run at all, so I only analyzed version 8.

(I initially had tried to transplant the installation folder from my Win98SE system, which did not work. So I tried severe registry surgery by exporting .REG files and hand-editing all paths (my Win98SE is on drive E:). Because it is German, I also had to replace the folder name "Programme" with "program files" to work in WINE. I also had to copy all DLLs named mgx*.dll and lt*.dll(?) from windows\system folder. However attempting JPG export had opened a blank window (no preview) and failed. So I finally searched my install CD and cleanly installed from the original installer, which makes JPG work but the bugs stay the same.)

This is a quick summary of the DependencyWalker output on WINE. The complete outputs are very lengthy, so I won't post them here unless anybody convinces me that they will be useful to solve the problem.

Code: Select all

System Information:

Dependency Walker:	2.2.6000 (32-bit)
Operating System:	Microsoft Windows 98 (32-bit)
OS Version:	4.10.2222 A (Second Edition)
Processor:	x86 Family 23 Model 17 Stepping 0, AuthenticAMD, ~3600MHz
Number of Processors:	8, Mask: 0x000000FF
Computer Name:	JUCHHE
User Name:	co_windler
Local Date:	Donnerstag, 8. April 2021
Local Time:	06:31:59 Mitteleuropäische Sommerzeit (GMT+02:00)
OS Language:	0x0407: German (Germany)
Memory Load:	31%
Physical Memory Total:	2.147.483.647 (2048 MB)
Physical Memory Used:	0
Physical Memory Free:	2.147.483.647
Page File Memory Total:	4.294.443.007
Page File Memory Used:	18.446.744.073.709.027.328
Page File Memory Free:	4.294.967.295
Virtual Memory Total:	2.147.352.575
Virtual Memory Used:	65.536
Virtual Memory Free:	2.147.287.039
Page Size:	0x00001000 (4.096)
Allocation Granularity:	0x00010000 (65.536)
Min. App. Address:	0x00010000 (65.536)
Max. App. Address:	0x7FFEFFFF (2.147.418.111)
Apparently SHELL32.DLL and WINSPOOL.DRV fail. Both are called by COMDLG32.DLL and are loaded by MGXBRWSR.DLL (handles file requester?) and by PP80.EXE. Also MGX42.DLL (part of Microsoft Foundation Classes/MFC) fails in some functions.

# SHELL32.DLL has 7 red dependencies:

SHCreateItemFromIDList
SHCreateShellItemArray
SHCreateShellItemArrayFromDataObject
SHGetFolderPathW
SHGetIDListFromObject
SHGetItemFromObject
SHParseDisplayName

# WINSPOOL.DRV has 2 red dependencies:

GetDefaultPrinterW
GetDefaultPrinterA

Replacing SHELL32.DLL and WINSPOOL.DRV with Win98SE parts fails because of dependencies to KRNL386.EXE which is 16bit.

# open file (file requester): =>program crash

Code: Select all

00:01:59.099: Loaded "c:\prog~fbu\micr~ong\system4\browser\MGXBRWSR.DLL" at address 0x492D0000.  Cannot hook module.
00:01:59.134: DllMain(0x492D0000, DLL_PROCESS_ATTACH, 0x00000000) in "c:\prog~fbu\micr~ong\system4\browser\MGXBRWSR.DLL" called.
00:01:59.139: DllMain(0x492D0000, DLL_PROCESS_ATTACH, 0x00000000) in "c:\prog~fbu\micr~ong\system4\browser\MGXBRWSR.DLL" returned 1 (0x1).
00:01:59.305: First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\SHELL32.DLL" at address 0x7DD0BB02.
00:01:59.307: Second chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\SHELL32.DLL" at address 0x7DD0BB02.
00:01:59.313: Exited "c:\program files\micrografx\picture publisher 8\PP80.EXE" (process 0xF4) with code -1073741819 (0xC0000005).
Here SHELL32.DLL fails.

# click on blur tool: => program crash

Code: Select all

00:01:16.036: First chance exception 0xC0000005 (Access Violation) occurred in "c:\program files\micrografx\picture publisher 8\PP80.EXE" at address 0x433CF37C.
00:01:16.039: First chance exception 0xC0000005 (Access Violation) occurred in "c:\program files\micrografx\picture publisher 8\PP80.EXE" at address 0x433CF37F.
00:01:16.041: First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\MGX42.DLL" at address 0x5F40331D.
00:01:16.043: First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\MGX42.DLL" at address 0x5F40331F.
00:01:16.046: Second chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\MGX42.DLL" at address 0x5F40331F.
00:01:16.051: Exited "c:\program files\micrografx\picture publisher 8\PP80.EXE" (process 0xF0) with code -1073741819 (0xC0000005).
# close website template window: => program crash

Code: Select all

00:00:58.249: DllMain(0x44640000, DLL_PROCESS_DETACH, 0x00000000) in "c:\program files\micrografx\picture publisher 8\wizards\WEBSTYLE.PPW" called.
00:00:58.252: First chance exception 0xC0000008 (Invalid Handle) occurred in "c:\windows\system32\NTDLL.DLL" at address 0x7BC23ED9.
00:00:58.256: DllMain(0x45040000, DLL_PROCESS_DETACH, 0x00000000) in "c:\program files\micrografx\picture publisher 8\WIZTOOLS.DLL" called.
00:00:58.259: DllMain(0x45040000, DLL_PROCESS_DETACH, 0x00000000) in "c:\program files\micrografx\picture publisher 8\WIZTOOLS.DLL" returned 1 (0x1).
00:00:58.263: Unloaded "c:\program files\micrografx\picture publisher 8\wizards\WEBSTYLE.PPW" at address 0x44640000.
00:00:58.266: Unloaded "c:\program files\micrografx\picture publisher 8\WIZTOOLS.DLL" at address 0x45040000.
00:00:58.268: First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\MGX42.DLL" at address 0x5F46EEAD.
00:00:58.271: Second chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\MGX42.DLL" at address 0x5F46EEAD.
00:00:58.277: Exited "c:\program files\micrografx\picture publisher 8\PP80.EXE" (process 0x12C) with code -1073741819 (0xC0000005).
In both cases the MGX42.DLL (part of Microsoft Foundation Classes/MFC) fails.


I am desperately attempting to get Micrografx Picture Publisher 8 to work in WINE, but I can not even leave a comment on its AppDB page because it has no maintainer. Becoming the maintainer is likely to complex for me because I know too little about the detailed inner working of WINE. Can I test or upload anything else to help debugging? (Archive.org has an ISO image of the install CD.)

Please tell me what I can do to fix this.
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

Generally the file requester of Picture Publisher 8 has many strange bugs those make it fail if anything is non-standard.

I have installed a Windows 98SE in VirtualBox 6.1 now, but even there the PP8 file requester was garbled and unusable; the folders pane was displayed too large, which makes the lower button row invisible (outside the window) because the window size does not adapt to it.

It turned out that this had to do with the unofficial Win98SE Service Pack 3.1 (German) I installed on VirtualBox, which made the file requester larger (also e.g. in notepad.exe) and so makes the custom version of PP8 not fit into its fixed size window anymore. Also the special name user folders ("Eigene Dateien" etc.) are not displayed. The "Save As" dialog text was english despite german version of Win98SE. It turned out that a too new COMMDLG.DLL made trouble here.

https://www.creopard.de/projekte/window ... e-pack.htm

I also discovered that when on my real Win98SE system I simulate through KernelEx 4.5.2 any newer (NT based) Windows versions than 98, I see in the file requester top row 2 additional buttons. One toggles the folder pane to an album folder (internal of PP8), the other hides the thumbnails pane and so makes the window smaller. But when I click both alternately in a certain order, the contents gets garbled, drawing buttons on top of thumbnails etc. (Clicking both buttons again will finally ungarble it.)

COMMDLG.DLL 4.0.0.950 = "Allgemeine Dialogbibliotheken"
COMMCTRL.DLL 4.10.1998 = "Bibliothek für benutzerdefinierte Steuerelemente"

I found a patch "BigOpenBox.zip" (by Fredledingue) that is intended to change the save dialog box size in Win98SE by replacing COMDLG32.DLL.
quote from BigOpenBox instruction:

MANUAL INSTALLATION
...
1/ Copy the file into "C:\WINDOWS\SYSTEM"

2/ Open the file "C:\AUTOEXEC.BAT" in notepad and add the following code at the end

::----start of code----

cd windows
cd system
rename Comdlg32.dll Comdlold.dll
rename 2omdlg32.dll Comdlg32.dll
exit

::----end of code----


3/ Restart your computer.

My installed versions were

COMDLG32.DLL 4.72.3510.2305 (c)1981-1997
COMDLG32.OCX 6.01.9841 (c)1987-2000 "CMDialog ActiveX Controll DLL"

with file date 2019-12-17 those got installed by the unofficial Service Pack 3.1 (found in SP3.CAB).

In my real Win98SE machine they are older:

COMDLG32.DLL is 4.72.3510.2300 (c)1981-1997 (file date 1999-05-05 22:22)
COMDLG32.OCX is 6.00.8418 (c)1987-1998 (file date 2001-01-17 5:00)

Copying these into VirtualBox makes Picture Publisher 8 work correctly and also returns the original smaller file dialog with German text in Notepad.

Unfortunately VirtualBox in Win98SE can not easily save data outside its virtual partition (import works only by mounting an ISO image as virtual CD that cuts long file names) because its "Guest Additions" does not support DOS based OS. Thus it is pretty useless for doing actual work with a graphics program.
fargodwe

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by fargodwe »

First off, I know nothing about image editing, etc.. That being said, I know there is a learning curve to them but have you looked into something native like GIMP or any of the other (some more complex and higher learning curve) for image manipulation?
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

Yes I may look at GIMP. But Picture Publisher 8 is fairly good (perhaps less than Photoshop because it is raster based) and requesting to abandon it is like saying to a cello player "Sorry, cellos are outdated now and not made anymore. It's time to learn to blow tuba instead."
fargodwe

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by fargodwe »

Again, not knowing anything about such things, I also remember something like inkscape or some such thing. Don't know if that would be of any benefit to you or not. I get the idea of having a tool that suits a need. I guess the biggest thing would be if you made the switch to linux, your weren't worried about the oboes ;) so maybe a switch to something native would in the long run be worth it?
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

One of the most crucial features of Picture Publisher 8 to me is local colour correction by masking a part of a picture (optionally with alpha channel) and locally bending by mouse the input-output transition curve for brightness or the individual RGB/HSV parts to intensify details. (This sophisticated tool is far more than just a gamma slider - you can invert sections or smoothen the ends of the curve etc.) E.g. when I have a too dark photo of an opened music keyboard with black plastic case, it permits to make case details (like embossed manufacturing date or serial number) visible or correct overexposed spots on the shiny PCB surface to show the traces.

Most modern drawing crapware is barely better than the M$ Paint of my Win98SE because it lacks such detail control. It might be that some of those "apps" instead use AI with a smart neural network to optimize photos now. But in real life such algorithms fail to understand the difference between a foggy autumn landscape and an overexposed moonlight scene - not to say special things like the inside of electronics with shiny black plastic case. (My Samsung WB210 digicam contains tons of such fully automatic gimmicks those in real life always fail.)


I experimented with Win98SE in VirtualBox, but I always need to disable the 32bit protected mode IDE driver because AMD Ryzen 2400G APU apparently has page cache bugs those make the driver randomly fail to load files. Despite the 16bit driver is fast enough, it has the nasty side effect to use the DOS driver for CDROM access (the only easy way to load files into the VM) which only shows the short DOS filenames. (Regard that enabling 32bit IDE makes Windows automatically comment out that CDROM driver in AUTOEXEC.BAT, thus you need to manually re-enable it to get the CDROM drive letter back.) Worst is that the Guest Addition can not be loaded on Win98SE (I tried even with KernelEx 4.5.2), so there is no easy file exchange. Likely I have need to share a folder through network to get any files out of the virtual partition.

Win98SE also needs the SciTech DisplayDoctor 7 to get more than 16 colour VGA resolution (and even fairly fast OpenGL software renderer by selecting the CAD mode driver), but on Ryzen it fails to boot by not identifying the too new CPU. To fix this, simulate a Pentium 4 (the fastest CPU of its era) by entering in a terminal:

VBoxManage modifyvm "Windows 98SE" --cpu-profile "Intel Pentium 4 3.00GHz"

("Windows 98SE" is my guest partition name. In Windoze the command syntax differs a bit.)

CPU-Z reports it as 3600MHz, so beside having only 1 core (Win98SE has no use for more) it runs at full speed.

You may also install the Realtek AC97 driver to get (slightly choppy) sound e.g. in "Space Cadet Pinball". You need to manually unpack the EXE with 7-zip or use KernelEx, else the installer complains that it is only for Win95.

https://msfn.org/board/topic/158893-win ... 7-drivers/
https://download.cnet.com/Realtek-AC-97 ... 38712.html
https://www.advantech.com/support/detai ... id=1-AQHM0
http://vogonsdrivers.com/getfile.php?fi ... enustate=0


I always thought that virtual machines are scary. And I was right; they are even worse. There is so much spooky background stuff going on (like quantum interferences from the nearby brane of another universe...) that makes behaviour unpredictable. This is some lengthier analysis of what I tested on Win98SE without success.

Selecting in Win98SE filesystem "Synchrone Pufferzuweisung deaktivieren" (disable sychronous buffer assignment) makes it more often boot in 32bit mode without missing file errors, but many programs still don't load e.g. with strange error "Die erforderliche DLL-Datei .DLL wurde nicht gefunden." (DLL not found). This mostly happened with non-preinstalled stuff (default programs of Windows load ok). Possibly it only affects files after a certain sector number. It becomes less extreme after running Scandisk (despite it found no errors); may be this rather loads the emulated HDD into a buffer or such background crap already by reading all files. Also quitting and restarting VirtualBox (not only the VM window) can help. But e.g. PP8 does not load, so the filesystem driver is still broken. (On VirtualBox I had tried many other emulated harddisk interfaces, those did the same errors or even corrupted the virtual FAT32 partition - but of course returning to a saved state will work.)

Enabling additional "Behandlungsroutine für Festplatten-Interrupt im Protected-Modus deaktivieren" (disable HDD interrupt in protected mode) causes the many missing files problem again. Same when setting "Leseoptimierung (read-ahead)" to 0% and stays broken when going back to 100%. Toggling "Synchrone Pufferzuweisung deaktivieren" seems to fix it again. Likely it is a nasty buffering/disk cache bug depending on the order in that a file is read (else Scandisk would show errors).

Trying to load Unofficial Service Pack 3.1 from virtual CD shows error "Die erforderliche DLL-Datei .DLL wurde nicht gefunden." (DLL not found) and something in WINDOWS\TEMP can not be found. Starting the service pack (without 32bit filesystem driver) and selecting "DMA für alle (E)IDE/(P)ATA Festplatten aktivieren" =>after enabling 32bit the missing files problem returns worse (even Runddll32.dll fails when opening "System" setup). Again running Scandisk temporary fixes this (by only reading). The harddisk is now listed as "GENERIC IDE DISK TYPE47" together with "VBOX CD-ROM" under the "Primary IDE controller (dual fifo). After reboot I end with blank desktop because explorer.exe not found.

With 32bit filesystem disabled, I can not even see "GENERIC IDE DISK TYPE47" in the broken devices menu to get rid of DMA because the drives section is gone. Reboot with 32bit filesystem shows it (and missing files) so I can uncheck DMA, but the errors stay there. Again "System" setup did not run. Deleting "GENERIC IDE DISK TYPE47" (and diskette controller as fake tape drive) in safemode, setting busmaster IDE to only 1 channel =>again missing files problem. CDROM is shown, which proves that it uses the same channel like HDD (which in real PC hardware sometimes made trouble).

Thus I returned to saved previous state =>behaves the same? =>explorer.exe not found (blank desktop lockup). Again safemode and later Scandisk made it start ok. Save state and reload again has missing files problem, thus it likely does not depend on the virtual disk content but actual ram and disk cache.

A while later e.g. Process Explorer did start in 32bit filesystem mode despite other files were not found. Thus it is definitely a cache problem depending on external things. It may be the "Windows 9x TLB Invalidation Bug" when memory page cache is not purged properly.

https://blog.stuffedcow.net/2015/08/win ... ation-bug/

Disabling "IO APIC" in VM doesn't help.

VBoxManage modifyvm "Windows 98SE with Software" --cpu-profile "Intel 80486"

starts ok, but filesystem 32bit has bugs. CPU-Z (only starts after scandisk) thinks it is an Intel 80486DX2 with almost 3600MHz (which indeed runs quite fast). According to vbox.log it has no VME extension, thus it is no VME bug.

Windows 98 SE VM on a Ryzen 3000 not working:
https://www.vogons.org/viewtopic.php?f= ... 5&start=20

The dead link from Google translate apparrently should go here

Windows 98 SE erfolgreich mit AMD Ryzen 1600 CPU in VMware 12.x installieren:
https://www.creopard.de/2020/05/VM-Wind ... lieren.htm

It is about VMware, but the key point is also here to disable 32bit protected mode filesystem driver. Then you should replace ESDI_506.PDR with a patched version.

C:\WINDOWS\SYSTEM\IOSUBSYS\ESDI_506.PDR

replace it with this one:
ESDI_506 - 48-bit LBA Korrektur.ISO
https://www.creopard.de/download/get/esdi_506/47.htm

Unfortunately this does not work on my Ryzen 2400G; I thought I already had this driver from the unofficial service pack 3.1; the binary code differs but it still crashed. Disabling "Nested VT-x/AMD-V aktivieren" did not help. Disable Nested Paging also in the other tab of VirtualBox makes not picture when Win98SE enters SVGA mode.

I read that masking the VME flag may fix Win98 problems on Ryzen, but it does not work at all:

VBoxManage modifyvm "Windows 98SE mit Software" --cpuidset 1 00800f11 00000800 56d8220b 078bfbfd

=> complete crash with error message
>>>
CPUM internal processing error #1. (VERR_CPUM_IPE_1).

Fehlercode:
NS_ERROR_FAILURE (0x80004005)
Komponente:
ConsoleWrap
Interface:
IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
<<<

VBoxManage modifyvm "Windows 98SE mit Software" --cpuidremove 1
(undo VME masking)

VBoxManage modifyvm "Windows 98SE mit Software" --cpu-profile "Intel Pentium 4 3.00GHz"
(back to Pentium 4)

makes it function again.

Here are some VirtualBox tips:

https://www.creopard.de/2019/01/In-2019 ... difyvm.htm
https://www.creopard.de/2020/05/VM-Wind ... lieren.htm

The Unofficial Service Pack 3.1 adds many newer DLL versions, which however corrupt the device manager window, so it lacks the lower buttons and scrollbar, which prevents reaching lower parts.

https://www.creopard.de/2019/10/Windows ... n-Beta.htm

You also need to reinstall the old versions of COMDLG32.DLL and COMDLG32.OCX else the Picture Publisher 8 file requester will not work.

COMDLG32.DLL is 4.72.3510.2300 (c)1981-1997 (file date 1999-05-05 22:22)
COMDLG32.OCX is 6.00.8418 (c)1987-1998 (file date 2001-01-17 5:00)
fargodwe

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by fargodwe »

If you got it to work for you by using a virtual machine then that's your choice - as long as it works for you is what matters. I think you might find more than one user of gimp and several other high-quality tools would argue with being counted as "crapware" and that it's not any better than mspaint. I know Inkscape is a vector-based graphics program and certainly not to be included in the catagory of crapware or mspaint either. So as long as you can do what you want that's all that matters - but in the long run you're going want to change to something different. You already know about Win98. Don't close the door to world-class applications just because they are free.
andrew.smart
Level 2
Level 2
Posts: 33
Joined: Thu Dec 15, 2016 3:08 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by andrew.smart »

I expect shell32.dll is too "low level" to be replaced with native. Replacing builtin DLLs with native DLLs might work with "higher level" DLLs. My guess is that shell32.dll, kernel32.dll, ntdll.dll are on a list of DLLs that you can't possibly replace with native because they are too "low level". I have no idea what that list might be.

I took a peek at just one thing, SHGetFolderPathW.

It is public in shell32.dll here:
https://github.com/wine-mirror/wine/blo ... .spec#L380

Declared here:
https://github.com/wine-mirror/wine/blo ... bj.h#L1568

Defined here:
https://github.com/wine-mirror/wine/blo ... th.c#L4394

So... it exists. Why DependencyWalker doesn't see it, I don't know. MGXBRWSR.DLL isn't linking to it? I think this is where I'd investigate. Maybe it wants a different signature than what exists. Maybe it's not looking at the right path. winedump might be useful in your investigation.

This guide to WINE is pretty good, I recommend you read it if you're interested in WINE:
https://www.codeweavers.com/blog/aeikum ... -ecosystem

With refining WINEDEBUG appropriately you can refine where the problems are. When you want to see the trace messages for a particular function, say SHGetFolderPathW, you look at the top of the *.c file where it is defined, and add that channel. In the case of that schellpath.c, it is: +shell. You'd want +seh too. Feel free to get an appropriate WINEDEBUG log and file a bug for Micrografx Picture Publisher 8. Actually I see one here:
https://bugs.winehq.org/show_bug.cgi?id=45999

On that bug I suppose you could add a link to this archive.org backup of said software:
https://archive.org/details/micro-grafx ... her-8-1998

Assuming WINE also doesn't find the SHGetFolderPathW that MGXBRWSR.DLL wants, I'd look in the relay at the KERNEL32.GetProcAddress calls (search for SHGetFolderPathW), specifically the retval in the return, to see if it's an error code.
5054.585:0020:0024:Call KERNEL32.GetProcAddress(6ec40000,077411e3 "SHGetFolderPathW") ret=05fa05f4
5054.585:0020:0024:Ret KERNEL32.GetProcAddress() retval=6ec418c8 ret=05fa05f4

I don't know what debug channels are relevant, one of these:
WINE_DEFAULT_DEBUG_CHANNEL(module);
WINE_DECLARE_DEBUG_CHANNEL(relay);
WINE_DECLARE_DEBUG_CHANNEL(snoop);
WINE_DECLARE_DEBUG_CHANNEL(loaddll);
WINE_DECLARE_DEBUG_CHANNEL(imports);

Good luck, I'm sure someone else can help better as my knowledge is not perfect. But I think the first step would be getting a sufficient WINEDEBUG log.
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

I did not imply that Inkscape or GIMP was crapware. (I rather think of all those "apps" simplified to the max and designed to be used on tablets without users nagging the company, where the manufacturers systematically eliminate any feature that causes too much work for the customer support.)

Although I studied computer engineering in 1990th, I am not expert about the inner working of Windows or WINE. Sorry.

Yet PP8 is not usable in a Win98SE VM either; VirtualBox can only load data (from simulated CD-ROM) into the VM but not export the result outside its virtual partition which makes it quite pointless. It may be possible to get a shared network directory to work (found no tutorial yet) or send them by e-mail by installing a local mail server on Linux (haven't tried), but this all makes me jump to much worse piles of burning hoops than exchanging data through USB sticks with the real DOS-age mainboard.

But because antique hardware can not survive forever, there must be an effective method found for running DOS based Windows code on modern hardware. (Currently there seems to be a huge gap between Win3.11 (in DOSbox) and XP (in commercial VM) that nobody considers worth to be fixed.) Currently already 16bit code can not run in 64bit mode of Intel/AMD CPUs anymore and even 32bit is getting worse, has too many incompatible variants and can be expected to vanish within some years in the name of obsolescence for maximized profit. While the MAME emulator is great in gathering knowledge about the inner working of all kinds of historical hardware (before it extincts of bitrot), implementation is yet too chaotic to ensure long-term compatibility with future computers.

For the human right of culture preservation it is time to develop a nested emulator protocol to automatically replace yet unemulated features on the host CPU with nested emulation layers (possibly involving JIT compilers or even AI) if the needed emulation already existed on a now incompatible older hardware. Unlike nowadays emulators this needs to be based on a strictly formalized well-defined public domain API (similar like the TeX language) that keeps the system usable even in situations where knowledge about the functioning of inner layers got lost or experts are not available. The approach may appear stupidly slow, but when we compare 8bit hardware with modern cheap RasPi or APU, we can expect that if coming generations will stay capable to use it, they may employ yet unimaginable fast and strange hardware (may that be quantum based Turing machines or what ever).

This development should be preferringly not in the hand of profit based companies but a national software-archaeological taskforce in the manner of PLANETS or the KEEP project.

https://www.digitalpreservation.gov/ser ... anets.html
https://cordis.europa.eu/project/id/231954
andrew.smart
Level 2
Level 2
Posts: 33
Joined: Thu Dec 15, 2016 3:08 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by andrew.smart »

Oh, I'd figured with all your technical writing I thought you might have been interested in what I wrote on WINE.

With VirtualBox, I believe I used a SAMBA share to get files on and off. I might have also used sftp. Certainly was a chore to set up and use in a workflow.

With regard to hardware emulation that's beyond my knowledge.

You can learn a bit about CodeWeavers, one of the principle backers of WINE in this interview:
https://youtu.be/2H98T9-q2x8?t=1442

In that interview around 42:00 they talk about their collaboration with Adobe on Adobe Photoshop, and a change with Adobe Photoshop CS. I thought you might be interested giving your interest in business models and 2D graphics software.
fargodwe

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by fargodwe »

In the interest of an ancient - and let's face it a piece of software published in 1998 is ancient - I'm going to try a few things. I do no hold out hope. Just hardware alone is betting against you. If you have an old piece of hardware it will run on leave it there. Need an old piece of hardware it will run on - check ebay, facebook marketplace, etc. - they should be cheap. You are in the same position millions of others have been - having an ancient piece of software they have never migrated away from and now want modern hardware and modern operating systems to support it. There is only so much people and companies are willing to go in that regard.

I assume since you posted in the linux wine forum that you probably wanted to get this working on a replacement piece of hardware using a free OS.

Since this is a forum about wine, I would think you will find people are more interested in things wine. Virtual machine software has their own support forums. If you have questions about wine then please post those.
fargodwe

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by fargodwe »

In your opening post you also mentioned you use playonlinux. I don't think that tool is supported here.
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

Software like PP8 should still get supported by WINE since 98% of the application works and here basically only the file requester and blur/sharpen/brighten/darken tool fails, so I guess it lacks only minor tweaking of small parts.

I do need PlayOnLinux to avoid code regressions because I use many other Windows applications on Linux - particularly if I ever install test versions of WINE. AFAIK in PlayOnLinux embedded WINE versions can run independent from the WINE main install of the OS, so I can still install things outside if needed. Photoshop is nothing I am interested in. (I would rather learn to use GIMP.)

My hardware is a homemade dual PC system (Highscreen Colani bigtower with ISA/PCI mainboards DFI K6BV3+/66 for Win98SE and additional modern ITX mainboard AsRock B450 Gaming-ITX/ac under its ceiling) so I can switch between modern and DOS-age hardware, although this involves 2 mice and exchanging data through USB sticks. But I am shocked how badly virtual machines can handle DOS-based operating systems. I expected that beside tempo issues (choppy video/audio during games, perhaps no FM midi sound and of course lack of unemulateable hardware features like physical diskette drives) modern VM would run everything flawlessly that is too new for true emulators like DOSbox.

Yet companies typically support compatibility with only one previous hardware generation (e.g. PlayStation 4 plays games written for PS3 but not earlier models), which is (beside planned obsolescence) mainly done to reduce development and servicing complexity. Technically this is mainly a problem of configuration management that can be automated. The concept of nested emulation (or more generalized compatibility adapter) layers should become standard technology that will play a similar key role for long term interoperability like HTML played for the development of the internet. The principle is that if the host OS itself can not natively run an executable, it will first ask through a standardized protocol all installed (thinner to thicker) emulation engines if they can run it, and each of them that can't will (if present) recursively ask the same to older emulation engines available for their emulated hardware. So the protocol will count the depth of nested layers necessary to run the executable to permit the OS to decide the best suited emulator, which by default will be one with shortest path if not overridden by manual configuration. Said executable can be a whole application started by the user, but theoretically may be also an emulated hardware component like a graphics or sound IC within a complex modular emulation framework like MAME. Because nested emulators will be slow, technologies like JIT compilers max be integrated, and the system debugger may output statistic recommendations which emulators to reimplement on the host system.


MAY THE SOFTWARE BE WITH YOU!
fargodwe

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by fargodwe »

I've come up in the old days of large scale mainframe support all the way down to micros. I've seen my share of hardware/software/firmware emulators. Quite familiar with the complexities involved,

Play-on-linux will be problematic for support here.

Install PP8 using wine itself in it's own prefix. Run via the console and post back logs. Someone might be able to help you.

You would be far far better off to make switch to other software that is current, runs in current OS's (and in Linux itself since that is what you are running). I'm sure you know but GIMP is cross-platform and would run natively.

As much as I like some of my old software, including some I wrote years ago, I would never go through that much effort to make something that old work when new native apps are available. I would never go through screwing around with switching between physical hardware just to run it. I would never go through that much work with virtual machines, etc..

But that's just me.
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

I have now finally installed the WINE 6.7 development version (after uninstalling the system default WINE 5.0). I hope this can be good for anything.

Code: Select all

co_windler@Juchhe:~$ sudo apt-key add winehq.key
co_windler@Juchhe:~$ sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' 
co_windler@Juchhe:~$ sudo apt update
[...]
co_windler@Juchhe:~$ sudo apt install --install-recommends winehq-devel
Paketlisten werden gelesen... Fertig
[...]
Die folgenden zusätzlichen Pakete werden installiert:
  wine-devel wine-devel-amd64 wine-devel-i386:i386
Die folgenden NEUEN Pakete werden installiert:
  wine-devel wine-devel-amd64 wine-devel-i386:i386 winehq-devel
0 aktualisiert, 4 neu installiert, 0 zu entfernen und 20 nicht aktualisiert.
Es müssen 163 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 1 124 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j
Holen:1 https://dl.winehq.org/wine-builds/ubuntu focal/main i386 wine-devel-i386 i386 6.7~focal-1 [78,9 MB]
Holen:2 https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 wine-devel-amd64 amd64 6.7~focal-1 [82,2 MB]
Holen:3 https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 wine-devel amd64 6.7~focal-1 [1 932 kB]     
Holen:4 https://dl.winehq.org/wine-builds/ubuntu focal/main amd64 winehq-devel amd64 6.7~focal-1 [1 936 B]    
Es wurden 163 MB in 2 min 0 s geholt (1 355 kB/s).                                                            
[...]
I had to move away my .wine directory because it was 64bit and made a fresh additional 32bit wineprefix. (This does not damage my PlayOnLinux installation, which is independent and stores all its own Windows directories under .PlayOnLinux/wineprefix)

Code: Select all

co_windler@Juchhe:~$ WINEARCH=win32 WINEPREFIX=/home/co_windler/.wine/ winecfg
wine: WINEARCH set to win32 but '/home/co_windler/.wine' is a 64-bit installation.
co_windler@Juchhe:~$ WINEARCH=win32 WINEPREFIX=/home/co_windler/.wine32/ winecfg
wine: created the configuration directory '/home/co_windler/.wine32'
[...]
co_windler@Juchhe:~$ ls .wine*
.wine:
dosdevices  drive_c  system.reg  userdef.reg  user.reg  winetricks.log

.wine32:
dosdevices  drive_c  system.reg  userdef.reg  user.reg
co_windler@Juchhe:~$ mv .wine .wine64
co_windler@Juchhe:~$ mv .wine32 .wine
The Picture Publisher 8 directory copied from PlayOnLinux does not run by missing DLLs when opened by explorer.exe or entering "wine pp80.exe". So I had to open "wine explorer.exe", navigate to the actual installer picpub8.exe and install it from there. Then I navigated to pp80.exe to start it.

Opening within PP8 the broken file requester shows in wine this error:

Code: Select all

Unhandled exception: page fault on read access to 0x04244cd5 in 32-bit code (0x7ddb1596).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7ddb1596 ESP:0021cc60 EBP:0021ced8 EFLAGS:00210206(  R- --  I   - -P- )
 EAX:6ed26e00 EBX:0021dce8 ECX:04244c8d EDX:078c8d78
 ESI:09b00ae0 EDI:0021cc84
Stack dump:
0x0021cc60:  6ed26e00 078c8d78 00000000 0021cc84
0x0021cc70:  00220094 0021cc90 7d7ce14d 7d8df000
0x0021cc80:  078c8d78 f7dfbb43 7d8df000 7d7c4929
0x0021cc90:  00220094 00000002 0021ccc8 70ba810c
0x0021cca0:  00000001 f7bbfcf0 001301c3 077d0000
0x0021ccb0:  f7bb8790 00000001 0021cce0 0000006d
Backtrace:
=>0 0x7ddb1596 in shell32 (+0xa1596) (0x0021ced8)
  1 0x7ddb2069 in shell32 (+0xa2068) (0x0021cf58)
  2 0x6edab73c EntryPoint+0xffffffff() in user32 (0x0021cf98)
  3 0x6edabdf7 EntryPoint+0xffffffff() in user32 (0x0000004e)
  4 0x6edad329 EntryPoint+0xffffffff() in user32 (0x0021d4e4)
  5 0x6edae633 EntryPoint+0xffffffff() in user32 (0x0021d4e4)
  6 0x492da0cd EntryPoint+0xffffffff() in mgxbrwsr (0x0021d518)
  7 0x6edab73c EntryPoint+0xffffffff() in user32 (0x0021d548)
  8 0x6edabdf7 EntryPoint+0xffffffff() in user32 (0x0000004e)
  9 0x6edac906 EntryPoint+0xffffffff() in user32 (0x6edb7068)
  10 0x6edae34b EntryPoint+0xffffffff() in user32 (0x6edb7068)
  11 0x6ed60e71 EntryPoint+0xffffffff() in user32 (0x0021dce8)
  12 0x6ed65fec EntryPoint+0xffffffff() in user32 (0x7ffc2000)
  13 0x6ed66244 EntryPoint+0xffffffff() in user32 (0x0021dbe8)
  14 0x005d8ab2 EntryPoint+0xffffffff() in comctl32 (0x078c6618)
  15 0x005d9d05 EntryPoint+0xffffffff() in comctl32 (0x00000000)
  16 0x005dc398 EntryPoint+0xffffffff() in comctl32 (0x00000001)
  17 0x005dcba0 EntryPoint+0xffffffff() in comctl32 (0x0021ddb8)
  18 0x005e6c1e EntryPoint+0xffffffff() in comctl32 (0x0021e128)
  19 0x005eeef8 EntryPoint+0xffffffff() in comctl32 (0x0021e128)
  20 0x6edab73c EntryPoint+0xffffffff() in user32 (0x0021e168)
  21 0x6edabdf7 EntryPoint+0xffffffff() in user32 (0x0000000f)
  22 0x6edae423 EntryPoint+0xffffffff() in user32 (0x6edb6e88)
  23 0x6ed69f41 EntryPoint+0xffffffff() in user32 (0x0021e2c8)
  24 0x6ed2f0e7 EntryPoint+0xffffffff() in user32 (0x0021e428)
  25 0x6ed2fa04 EntryPoint+0xffffffff() in user32 (0x00000001)
  26 0x6ed2fcbc EntryPoint+0xffffffff() in user32 (0x0021e4b8)
  27 0x6ed2fd11 EntryPoint+0xffffffff() in user32 (0x0021e4f8)
  28 0x00335cfd EntryPoint+0xffffffff() in comdlg32 (0x0021e650)
  29 0x00335db7 EntryPoint+0xffffffff() in comdlg32 (0x0021e650)
  30 0x00341b03 EntryPoint+0xffffffff() in comdlg32 (0x0021e650)
  31 0x4930b8e0 in mgxbrwsr (+0x3b8df) (0x6ed9b8c0)
  32 0xfff0e483 (0x04244c8d)
0x7ddb1596: call	*0x48(%ecx)
Modules:
Module	Address			Debug info	Name (58 modules)
PE	  330000-  58a000	Dwarf           comdlg32
PE	  590000-  a12000	Dwarf           comctl32
PE	  a20000-  ea4000	Deferred        ole32
PE	 6070000- 608e000	Deferred        cico
PE	 7250000- 727f000	Deferred        wintab32
PE	 7280000- 728b000	Deferred        tbar16b
PE	 7290000- 729a000	Deferred        tbar16c
PE	 72a0000- 72b1000	Deferred        tbar24c
PE	 a030000- a07a000	Deferred        mgxfma
PE	 a080000- a094000	Deferred        mgxfmar
PE	10000000-10139000	Deferred        ppres
PE	43240000-43512000	Deferred        pp80
PE	43640000-4365b000	Deferred        mgxfrm30
PE	43a40000-43a84000	Deferred        mgxbm30
PE	44010000-4401c000	Deferred        lfcal80n
PE	44020000-44067000	Deferred        lfcmp80n
PE	44070000-44085000	Deferred        lffax80n
PE	44090000-440f4000	Deferred        lffpx7
PE	44100000-4411b000	Deferred        lffpx80n
PE	44130000-44140000	Deferred        lfica80n
PE	44140000-4414c000	Deferred        lfimg80n
PE	44150000-4415d000	Deferred        lflmb80n
PE	44160000-4416c000	Deferred        lfmac80n
PE	44180000-4418d000	Deferred        lfpct80n
PE	44200000-44221000	Deferred        lftif80n
PE	44240000-44258000	Deferred        ltfil80n
PE	44280000-442ee000	Deferred        ltkrn80n
PE	45160000-4516b000	Deferred        dll32
PE	45250000-4529b000	Deferred        pcdlib32
PE	453f0000-45411000	Deferred        lfkodak
PE	492d0000-49349000	Export          mgxbrwsr
PE	5f400000-5f4ed000	Deferred        mgx42
PE	61740000-6182c000	Deferred        advapi32
PE	61d00000-6211a000	Deferred        actxprxy
PE	62fc0000-631f2000	Deferred        rpcrt4
PE	63480000-6349c000	Deferred        version
PE	63bc0000-63c02000	Deferred        shcore
PE	64a40000-64b5e000	Deferred        shlwapi
PE	64ec0000-652a8000	Deferred        oleaut32
PE	68500000-6864f000	Deferred        combase
PE	68700000-6878e000	Deferred        uxtheme
PE	697c0000-69a10000	Deferred        ddraw
PE	6a280000-6a4c9000	Deferred        msvcrt
PE	6bc00000-6bca1000	Deferred        sechost
PE	6bcc0000-6bea4000	Deferred        setupapi
PE	6c9c0000-6cf46000	Deferred        gdi32
PE	6ed00000-6f394000	Dwarf           user32
PE	70940000-70997000	Deferred        mpr
PE	70b40000-70df4000	Deferred        ucrtbase
PE	71200000-71248000	Deferred        imm32
PE	7a840000-7a844000	Deferred        opengl32
PE	7b000000-7b2f9000	Deferred        kernelbase
PE	7b600000-7b91f000	Deferred        kernel32
PE	7bc00000-7be97000	Deferred        ntdll
PE	7c790000-7c794000	Deferred        wined3d
PE	7d940000-7d944000	Deferred        winex11
PE	7dd10000-7e5e7000	Export          shell32
PE	7e6f0000-7e6fb000	Deferred        winspool
Threads:
process  tid      prio (all id:s are in hex)
00000020 start.exe
	00000024    0
00000038 services.exe
	0000003c    0
	00000040    0
	0000004c    0
	00000070    0
	00000088    0
	000000c8    0
	000000dc    0
00000044 winedevice.exe
	00000048    0
	00000054    0
	00000058    0
	0000005c    0
00000060 plugplay.exe
	00000064    0
	00000074    0
	00000078    0
	0000007c    0
	00000098    0
00000068 explorer.exe
	0000006c    0
	000000ac    0
	000000b0    0
	0000010c    0
	00000118    0
	0000011c    0
	00000120    0
00000080 winedevice.exe
	00000084    0
	0000008c    0
	00000090    0
	000000a0    0
	000000a4    0
	000000a8    0
	000000b8    0
000000c0 svchost.exe
	000000c4    0
	000000cc    0
	000000d0    0
000000d4 rpcss.exe
	000000d8    0
	000000e0    0
	000000e4    0
	000000e8    0
	000000ec    0
	000000f0    0
	00000108    0
	000001c0    0
	000001d0    0
000000f8 conhost.exe
	000000fc    0
00000100 explorer.exe
	00000104    0
	00000124    0
000001b4 (D) C:\Program Files\Micrografx\Picture Publisher 8\pp80.exe
	000001b8    0 <==
	000001bc    0
	000001c8    0
	000001cc    0
	000001d8    0
	000001e4    0
System information:
    Wine build: wine-6.7
    Platform: i386
    Version: Windows 98
    Host system: Linux
    Host version: 5.4.0-72-lowlatency
terminal output:

Code: Select all

co_windler@Juchhe:~$ wine pp80.exe
0144:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0144:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
014c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
014c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0154:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0154:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
015c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
015c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0154:fixme:reg:RegQueryInfoKeyA security argument not supported.
0154:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0154:fixme:reg:RegQueryInfoKeyA security argument not supported.
0154:fixme:file:NtLockFile I/O completion on lock not implemented yet
wine: Unhandled page fault on read access to 04244CD5 at address 7DDB1596 (thread 0154), starting debugger...
0178:fixme:reg:RegQueryInfoKeyA security argument not supported.
0180:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0180:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0178:fixme:reg:RegQueryInfoKeyA security argument not supported.
0178:fixme:reg:RegQueryInfoKeyA security argument not supported.
0178:fixme:reg:RegQueryInfoKeyA security argument not supported.
0178:fixme:reg:RegQueryInfoKeyA security argument not supported.
0178:fixme:reg:RegQueryInfoKeyA security argument not supported.
co_windler@Juchhe:~$ 0090:err:rpc:I_RpcReceive we got fault packet with status 0x1c010003
Clicking on the blur/sharpen/brighten/darken tool shows this error:

Code: Select all

Unhandled exception: page fault on read access to 0x000004f4 in 32-bit code (0x5f40331f).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:5f40331f ESP:0021e774 EBP:00000000 EFLAGS:00210246(  R- --  I  Z- -P- )
 EAX:00000500 EBX:00000000 ECX:00000100 EDX:00000000
 ESI:00000018 EDI:00000018
Stack dump:
0x0021e774:  00000018 00000000 00000000 433cf399
0x0021e784:  00000100 0021e79c 00000000 00000000
0x0021e794:  434f9f58 014b6498 7bc29029 7bc27f93
0x0021e7a4:  00000002 01480000 7bc29029 01480094
0x0021e7b4:  00000002 01480000 7bc29029 01480094
0x0021e7c4:  00002a51 00000000 00000000 014b3818
Backtrace:
=>0 0x5f40331f EntryPoint+0xffffffff() in mgx42 (0x00000000)
0x5f40331f EntryPoint+0xffffffff in mgx42: cmpl	$1,0xfffffff4(%eax)
Modules:
Module	Address			Debug info	Name (55 modules)
PE	  330000-  58a000	Deferred        comdlg32
PE	  590000-  a12000	Deferred        comctl32
PE	  a20000-  ea4000	Deferred        ole32
PE	 6070000- 608e000	Deferred        cico
PE	 7250000- 727f000	Deferred        wintab32
PE	 7280000- 728b000	Deferred        tbar16b
PE	 7290000- 729a000	Deferred        tbar16c
PE	 72a0000- 72b1000	Deferred        tbar24c
PE	10000000-10139000	Deferred        ppres
PE	43240000-43512000	Deferred        pp80
PE	43640000-4365b000	Deferred        mgxfrm30
PE	43a40000-43a84000	Deferred        mgxbm30
PE	44010000-4401c000	Deferred        lfcal80n
PE	44020000-44067000	Deferred        lfcmp80n
PE	44070000-44085000	Deferred        lffax80n
PE	44090000-440f4000	Deferred        lffpx7
PE	44100000-4411b000	Deferred        lffpx80n
PE	44130000-44140000	Deferred        lfica80n
PE	44140000-4414c000	Deferred        lfimg80n
PE	44150000-4415d000	Deferred        lflmb80n
PE	44160000-4416c000	Deferred        lfmac80n
PE	44180000-4418d000	Deferred        lfpct80n
PE	44200000-44221000	Deferred        lftif80n
PE	44240000-44258000	Deferred        ltfil80n
PE	44280000-442ee000	Deferred        ltkrn80n
PE	45160000-4516b000	Deferred        dll32
PE	45250000-4529b000	Deferred        pcdlib32
PE	453f0000-45411000	Deferred        lfkodak
PE	5f400000-5f4ed000	Export          mgx42
PE	61740000-6182c000	Deferred        advapi32
PE	61d00000-6211a000	Deferred        actxprxy
PE	62fc0000-631f2000	Deferred        rpcrt4
PE	63480000-6349c000	Deferred        version
PE	63bc0000-63c02000	Deferred        shcore
PE	64a40000-64b5e000	Deferred        shlwapi
PE	64ec0000-652a8000	Deferred        oleaut32
PE	68500000-6864f000	Deferred        combase
PE	68700000-6878e000	Deferred        uxtheme
PE	697c0000-69a10000	Deferred        ddraw
PE	6a280000-6a4c9000	Deferred        msvcrt
PE	6bc00000-6bca1000	Deferred        sechost
PE	6bcc0000-6bea4000	Deferred        setupapi
PE	6c9c0000-6cf46000	Deferred        gdi32
PE	6ed00000-6f394000	Deferred        user32
PE	70940000-70997000	Deferred        mpr
PE	70b40000-70df4000	Deferred        ucrtbase
PE	71200000-71248000	Deferred        imm32
PE	7a840000-7a844000	Deferred        opengl32
PE	7b000000-7b2f9000	Deferred        kernelbase
PE	7b600000-7b91f000	Deferred        kernel32
PE	7bc00000-7be97000	Deferred        ntdll
PE	7c690000-7c694000	Deferred        wined3d
PE	7d8e0000-7d8e4000	Deferred        winex11
PE	7dd10000-7e5e7000	Deferred        shell32
PE	7e6f0000-7e6fb000	Deferred        winspool
Threads:
process  tid      prio (all id:s are in hex)
00000020 start.exe
	00000024    0
00000038 services.exe
	0000003c    0
	00000040    0
	0000004c    0
	00000070    0
	00000088    0
	000000c8    0
	000000dc    0
00000044 winedevice.exe
	00000048    0
	00000054    0
	00000058    0
	0000005c    0
00000060 plugplay.exe
	00000064    0
	00000074    0
	00000078    0
	0000007c    0
	00000098    0
00000068 explorer.exe
	0000006c    0
	000000ac    0
	000000b0    0
00000080 winedevice.exe
	00000084    0
	0000008c    0
	00000090    0
	000000a0    0
	000000a4    0
	000000a8    0
	000000b8    0
000000c0 svchost.exe
	000000c4    0
	000000cc    0
	000000d0    0
000000d4 rpcss.exe
	000000d8    0
	000000e0    0
	000000e4    0
	000000e8    0
	000000ec    0
	000000f0    0
	0000010c    0
000000f8 conhost.exe
	000000fc    0
00000100 (D) C:\Program Files\Micrografx\Picture Publisher 8\pp80.exe
	00000104    0 <==
	00000108    0
	00000110    0
	0000011c    0
System information:
    Wine build: wine-6.7
    Platform: i386
    Version: Windows 98
    Host system: Linux
    Host version: 5.4.0-72-lowlatency
terminal output:

Code: Select all

co_windler@Juchhe:~$ wine pp80.exe
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0064:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00fc:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00fc:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0104:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0104:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0104:fixme:reg:RegQueryInfoKeyA security argument not supported.
0104:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
wine: Unhandled page fault on read access to 000004F4 at address 5F40331F (thread 0104), starting debugger...
0118:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0118:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0118:err:dbghelp:pe_load_dbg_file Couldn't find .DBG file "MGX42.dbg" (L"C:\\Program Files\\Micrografx\\Picture Publisher 8")
After a while wine (already closed?) tends to randomly throw this error:

Code: Select all

co_windler@Juchhe:~$ 0090:err:rpc:I_RpcReceive we got fault packet with status 0x1c010003
another small bug:

The reason why you can not start to paint on a new canvas after a fresh install of PP8 and PP7 is that it starts with the brush as "sponge" with mixing mode "saturation" (which draws nothing). (My version is German language so the exact displayed words may differ.) On VirtualBox Win98SE a fresh PP8 install (if I remember well) comes up with the default brush mode "massive" and mixing mode "(normal)" in that you can directly start to paint (black on white) after clicking the brush tool. This may be an initialization bug in WINE e.g. causing allocated blank memory to have different content.
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

In Wine 6.21 under PlayOnLinux Picture Publisher 8 now crashes immediately and does not even attempt to start anymore. (Previously only the file requester crashed.) Dependency Walker 2.2.6000 even fails to scroll various window panes (i.e. scrollbar does nothing! Similar symptoms were there in other Win98 software at least since Wine 6.19 or such.).

(I need PlayOnLinux because this is no toy PC;I depend on stable Wine version 6.3 and 5.0.2 for my production environment.)

Since some releases (6.18 or such) Wine also has general problems with updating Win98 text panes, so e.g. Netscape 4.78 (that I use for HTML text editing) refused to redraw the text area of resized windows and displayed garbage when typing. I didn't examine this bug closer but use the stable Wine 6.3 for this instead.

This is the Dependency Walker log window of Picture Publisher 8 on Wine 6.3.

Code: Select all

--------------------------------------------------------------------------------
Starting profile on 08.11.2021 at 04:17:32

Operating System: Microsoft Windows 98 (32-bit), version 4.10.2222 A (Second Edition)
Program Executable: c:\program files\micrografx\picture publisher 8\PP80.EXE
Program Arguments: 
Starting Directory: C:\Program Files\Micrografx\Picture Publisher 8\
Search Path: C:\windows\system32;C:\windows;C:\windows\system32\wbem;C:\windows\system32\WindowsPowershell\v1.0

Options Selected:
     Log DllMain calls for process attach and process detach messages.
     Log DllMain calls for all other messages, including thread attach and thread detach.
     Hook the process to gather more detailed dependency information.
     Log LoadLibrary function calls.
     Log GetProcAddress function calls.
     Log first chance exceptions.
     Log debug output messages.
     Use full paths when logging file names.
     Log a time stamp with each line of log.
     Automatically open and profile child processes.
--------------------------------------------------------------------------------

00:00:00.000: Started "c:\program files\micrografx\picture publisher 8\PP80.EXE" (process 0xF4) at address 0x43240000.  Cannot hook module.
00:00:00.000: Loaded "c:\windows\system32\NTDLL.DLL" at address 0x7BC00000.  Cannot hook module.
00:00:00.380: Loaded "c:\windows\system32\KERNEL32.DLL" at address 0x7B600000.  Cannot hook module.
00:00:00.382: Loaded "c:\windows\system32\KERNELBASE.DLL" at address 0x7B000000.  Cannot hook module.
00:00:00.385: Loaded "c:\windows\MGX42.DLL" at address 0x5F400000.  Cannot hook module.
00:00:00.388: Loaded "c:\windows\system32\MSVCRT.DLL" at address 0x6A280000.  Cannot hook module.
00:00:00.391: Loaded "c:\windows\system32\GDI32.DLL" at address 0x6C9C0000.  Cannot hook module.
00:00:00.394: Loaded "c:\windows\system32\ADVAPI32.DLL" at address 0x61740000.  Cannot hook module.
00:00:00.396: Loaded "c:\windows\system32\SECHOST.DLL" at address 0x6BC00000.  Cannot hook module.
00:00:00.399: Loaded "c:\windows\system32\UCRTBASE.DLL" at address 0x70B40000.  Cannot hook module.
00:00:00.401: Loaded "c:\windows\system32\WIN32U.DLL" at address 0x66B00000.  Cannot hook module.
00:00:00.404: Loaded "c:\windows\system32\USER32.DLL" at address 0x6ED00000.  Cannot hook module.
00:00:00.407: Loaded "c:\windows\system32\SETUPAPI.DLL" at address 0x6BCC0000.  Cannot hook module.
00:00:00.409: Loaded "c:\windows\system32\RPCRT4.DLL" at address 0x62FC0000.  Cannot hook module.
00:00:00.411: Loaded "c:\windows\system32\VERSION.DLL" at address 0x63480000.  Cannot hook module.
00:00:00.413: Loaded "c:\windows\system32\WINSPOOL.DRV" at address 0x663C0000.  Cannot hook module.
00:00:00.416: Loaded "c:\windows\system32\COMDLG32.DLL" at address 0x00350000.  Cannot hook module.
00:00:00.419: Loaded "c:\windows\system32\COMCTL32.DLL" at address 0x6CC40000.  Cannot hook module.
00:00:00.421: Loaded "c:\windows\system32\IMM32.DLL" at address 0x71200000.  Cannot hook module.
00:00:00.424: Loaded "c:\windows\system32\SHELL32.DLL" at address 0x67EC0000.  Cannot hook module.
00:00:00.426: Loaded "c:\windows\system32\SHLWAPI.DLL" at address 0x64A40000.  Cannot hook module.
00:00:00.428: Loaded "c:\windows\system32\SHCORE.DLL" at address 0x63BC0000.  Cannot hook module.
00:00:00.430: Loaded "c:\windows\system32\OLE32.DLL" at address 0x00560000.  Cannot hook module.
00:00:00.432: Loaded "c:\windows\system32\COMBASE.DLL" at address 0x00920000.  Cannot hook module.
00:00:00.436: Loaded "c:\windows\system32\OLEAUT32.DLL" at address 0x64EC0000.  Cannot hook module.
00:00:00.439: Loaded "c:\windows\system32\MGXFRM30.DLL" at address 0x43640000.  Cannot hook module.
00:00:00.442: Loaded "c:\windows\system32\MGXBM30.DLL" at address 0x43A40000.  Cannot hook module.
00:00:00.444: Loaded "c:\windows\system32\MPR.DLL" at address 0x70940000.  Cannot hook module.
00:00:00.447: Loaded "c:\program files\micrografx\picture publisher 8\PCDLIB32.DLL" at address 0x45250000.  Cannot hook module.
00:00:00.450: Loaded "c:\windows\system32\LTFIL80N.DLL" at address 0x44240000.  Cannot hook module.
00:00:00.453: Loaded "c:\windows\system32\LTKRN80N.DLL" at address 0x44280000.  Cannot hook module.
00:00:00.454: First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\NTDLL.DLL" at address 0x7BC30C3C.
00:00:00.454: Second chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\NTDLL.DLL" at address 0x7BC30C3C.
00:00:00.455: Exited "c:\program files\micrografx\picture publisher 8\PP80.EXE" (process 0xF4) with code -1073741819 (0xC0000005).
This is the error diagnosis output of PlayOnLinux:

Code: Select all

dispinfoT+0x67(infoPtr=<is not available>, code=<is not available>, pdi=<is not available>, isW=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:976] in comctl32 (0x0021e9  16 0x6cc8c466 LISTVIEW_GetItemT+0x3f5(infoPtr=<is not available>, lpLVItem=<is not available>, isW=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:6776] in comctl32 (0x  17 0x6cc8cfd0 LISTVIEW_CalculateItemWidth+0xaf(infoPtr=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:1703] in comctl32 (0x0021eca8)
  18 0x6cc9728e LISTVIEW_Paint+0xed(infoPtr=<is not available>, hdc=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:3023] in comctl32 (0x0021ed28)
  19 0x6cc9f950 LISTVIEW_WindowProc+0xbaf(hwnd=<is not available>, uMsg=<is not available>, wParam=<is not available>, lParam=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listvie  20 0x6edae46c WINPOS_SysCommandSizeMove+0xeab(hwnd=<is not available>, wParam=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winpos.c:3061] in user32 (0x0021ee48)
  21 0x6edaeb23 call_window_proc+0x62(hwnd=000302D0, msg=0xf, wp=0, lp=0, result=0021EF34, arg=6CC9EDA0) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:246] in user32 (0x0021eea8)
  22 0x6edb1106 WINPROC_call_window+0x1d5(hwnd=000302D0, msg=0xf, wParam=0, lParam=0, result=0021EF34, unicode=0x1, mapping=WMCHAR_MAP_DISPATCHMESSAGE) [\\?\unix\usr\src\packages\BUILD\dlls\user32\win  23 0x6ed6b6b1 DispatchMessageW+0x9b(msg=<couldn't compute location>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\message.c:4017] in user32 (0x0021efa8)
  24 0x6ed2f527 CreateDialogParamW+0x1b6(hInst=<is not available>, name=<is not available>, owner=<is not available>, dlgProc=<is not available>, param=<is not available>) [\\?\unix\usr\src\packages\B  25 0x6ed2fe54 DIALOG_DoDialogBox+0x143(hwnd=<is not available>, owner=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\dialog.c:814] in user32 (0x0021f188)
  26 0x6ed3010c DialogBoxIndirectParamAorW+0x4b(hInstance=00350000, template=0041A898, owner=<is not available>, dlgProc=0035E900, param=0x21f2a4, flags=0x2) [\\?\unix\usr\src\packages\BUILD\dlls\user  27 0x6ed30161 DialogBoxIndirectParamA+0x40(hInstance=<couldn't compute location>, template=<couldn't compute location>, owner=<couldn't compute location>, dlgProc=<couldn't compute location>, param=  28 0x00355d35 ChooseColorA+0x304e() in comdlg32 (0x0021f238)
  29 0x00355e19 ChooseColorA+0x3132() in comdlg32 (0x0021f278)
  30 0x00362013 in comdlg32 (+0x12012) (0x0021f344)
  31 0x4930b8e0 in mgxbrwsr (+0x3b8df) (0x6ed9e100)
  32 0xfff0e483 (0x04244c8d)
0x67f6500a: call	*0x48(%ecx)
Modules:
Module	Address			Debug info	Name (56 modules)
PE	  350000-  37d000	Export          comdlg32
PE	  560000-  914000	Deferred        ole32
PE	  920000-  a38000	Deferred        combase
PE	 5da0000- 5dbe000	Deferred        cico
PE	 6110000- 611b000	Deferred        tbar16b
PE	 6120000- 612a000	Deferred        tbar16c
PE	 6130000- 61ae000	Deferred        uxtheme
PE	 61b0000- 61c1000	Deferred        tbar24c
PE	 69a0000- 69ea000	Deferred        mgxfma
PE	 69f0000- 6a04000	Deferred        mgxfmar
PE	10000000-10139000	Deferred        ppres
PE	43240000-43512000	Deferred        pp80
PE	43640000-4365b000	Deferred        mgxfrm30
PE	43a40000-43a84000	Deferred        mgxbm30
PE	44010000-4401c000	Deferred        lfcal80n
PE	44020000-44067000	Deferred        lfcmp80n
PE	44070000-44085000	Deferred        lffax80n
PE	44090000-440f4000	Deferred        lffpx7
PE	44100000-4411b000	Deferred        lffpx80n
PE	44130000-44140000	Deferred        lfica80n
PE	44140000-4414c000	Deferred        lfimg80n
PE	44150000-4415d000	Deferred        lflmb80n
PE	44160000-4416c000	Deferred        lfmac80n
PE	44180000-4418d000	Deferred        lfpct80n
PE	44200000-44221000	Deferred        lftif80n
PE	44240000-44258000	Deferred        ltfil80n
PE	44280000-442ee000	Deferred        ltkrn80n
PE	45160000-4516b000	Deferred        dll32
PE	45250000-4529b000	Deferred        pcdlib32
PE	453f0000-45411000	Deferred        lfkodak
PE	492d0000-49349000	Export          mgxbrwsr
PE	5f400000-5f4ed000	Deferred        mgx42
PE	61740000-61801000	Deferred        advapi32
PE	61d00000-6205e000	Deferred        actxprxy
PE	62fc0000-63191000	Deferred        rpcrt4
PE	63480000-63498000	Deferred        version
PE	63bc0000-63bfa000	Deferred        shcore
PE	64a40000-64b3d000	Deferred        shlwapi
PE	64ec0000-651e8000	Deferred        oleaut32
PE	66b00000-66b50000	Deferred        win32u
PE	67ec0000-6801a000	Export          shell32
PE	69a00000-69a25000	Deferred        wintab32
PE	6a280000-6a46a000	Deferred        msvcrt
PE	6bc00000-6bc80000	Deferred        sechost
PE	6bcc0000-6be3a000	Deferred        setupapi
PE	6c9c0000-6cb47000	Deferred        gdi32
PE	6cc40000-6cfa0000	Dwarf-2         comctl32
PE	6ed00000-6f3a4000	Dwarf-2         user32
PE	70940000-70986000	Deferred        mpr
PE	70b40000-70d7c000	Deferred        ucrtbase
PE	71200000-7123e000	Deferred        imm32
PE	7b000000-7b26a000	Deferred        kernelbase
PE	7b600000-7b8ea000	Deferred        kernel32
PE	7bc00000-7be0e000	Deferred        ntdll
PE	7dfa0000-7dfa4000	Deferred        winex11
PE	7e650000-7e659000	Deferred        winspool
Threads:
process  tid      prio (all id:s are in hex)
00000020 (D) C:\Program Files\Micrografx\Picture Publisher 8\pp80.exe
	00000024    0 <==
	000000f0    0
	00000108    0
	00000114    0
00000038 services.exe
	0000003c    0
	00000040    0
	0000004c    0
	00000068    0
	00000088    0
	000000a0    0
	000000d0    0
00000044 winedevice.exe
	00000048    0
	00000054    0
	00000058    0
	0000005c    0
	000000ac    0
00000060 winedevice.exe
	00000064    0
	0000006c    0
	00000070    0
	00000074    0
	00000078    0
	0000007c    0
00000080 plugplay.exe
	00000084    0
	0000008c    0
	00000090    0
	00000094    0
00000098 svchost.exe
	0000009c    0
	000000a4    0
	000000a8    0
000000b0 explorer.exe
	000000b4    0
	000000bc    0
	000000c0    0
000000c8 rpcss.exe
	000000cc    0
	000000d8    0
	000000dc    0
	000000e0    0
	000000e4    0
	000000e8    0
	000000f4    0
	000000fc    0
System information:
    Wine build: wine-6.20
    Platform: i386
    Version: Windows 98
    Host system: Linux
    Host version: 5.4.0-80-lowlatency
[11/08/21 04:14:23] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
wine: configuration in L"home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher" has been updated.
[11/08/21 04:14:54] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
[11/08/21 04:16:22] - Running wine- depends.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/DependencyWalker)
[11/08/21 04:22:13] - Running wine- depends.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/DependencyWalker)
[11/08/21 04:32:11] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
[11/08/21 04:35:26] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
[11/08/21 04:35:28] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
00b4:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr 0x7bc30c3c
[11/08/21 04:36:02] - Running wine- winecfg (Working directory : /usr/share/playonlinux/python)
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0084:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0084:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
wine: could not open working directory L"unix\\usr\\share\\playonlinux\\python\\", starting in the Windows directory.
00b4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00b4:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00bc:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00bc:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00b4:fixme:imm:ImeSetActiveContext (0x56aaf0, 1): stub
00b4:fixme:imm:ImmReleaseContext (00010056, 0056AAF0): stub
00bc:fixme:imm:ImeSetActiveContext (0x497950, 0): stub
00bc:fixme:imm:ImmReleaseContext (00010020, 00497950): stub
00b4:fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
[11/08/21 04:36:41] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
[11/08/21 04:36:50] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
[11/08/21 04:37:05] - Running wine- pp80.exe (Working directory : /home/co_windler/.PlayOnLinux/wineprefix/PicturePublisher/drive_c/Program Files/Micrografx/Picture Publisher 8)
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
005c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0084:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0084:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr 0x7bc30c3c
daveweaton
Level 2
Level 2
Posts: 23
Joined: Mon Aug 30, 2021 2:14 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by daveweaton »

For support on play on linux messages, I would suggest you try:

https://www.playonlinux.com/en/forums.html
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

I did not change the version or config of PlayOnLinux. Only the WINE-Devel version changed itself by its automatic update.
daveweaton
Level 2
Level 2
Posts: 23
Joined: Mon Aug 30, 2021 2:14 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by daveweaton »

I downloaded PP8 from internet archive. Had to unpack the iso to a folder. Ran winecfg to a new 32-bit prefix to (1) set windows version to win98 and (2) install the common controls for vb6. Ran the Setup.exe to the 32-bit prefix using command line and just wine, no play on linux.

After installation, the program does not run via the menus on my linux Mint system, but does start if I use the command line and just run the pp80.exe file. I have no clue how to use the program but it lets me set default printer, etc.., and appears to do basic functions just fine.

New 32-bit prefix.
winecfg to set to win98.
wine command line to install and run.

wine-6.20 (Staging)
NAME="Linux Mint"
VERSION="20.2 (Uma)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 20.2"
VERSION_ID="20.2"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide. ... en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=uma
UBUNTU_CODENAME=focal
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

but it lets me set default printer, etc.., and appears to do basic functions just fine.
...
wine-6.20 (Staging)
I explicitely said it happened since Wine version 6.21 that it does not start at all anymore, which needs a regression report. In earlier Wine (including 6.20) it only crashed when opening a file requester and various other things mentioned above.

This has unlikely to do with PlayOnLinux, because the Wine 6.21 is my main installation. Only the older Wine versions are installed *under* PlayOnLinux to run many small tools for productive work. I had them fail a few times under recent Wine when the amdgpu driver of my Ryzen 2400G stopped working (e.g. I need to manually recompile it after every linux-firmware update), that's why I run them under old Wine versions those need no 3D acceleration etc.
daveweaton
Level 2
Level 2
Posts: 23
Joined: Mon Aug 30, 2021 2:14 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by daveweaton »

Then file a bug report on your own.
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

Thanks. I updated to Wine 6.22 and the complete crash of Picture Publisher 8 has been fixed now. Also DependencyWalker scrolls properly again!

Of course the previous PP8 bugs (crash by opening file requester etc.) are still there.
User avatar
=CO= Windler
Level 2
Level 2
Posts: 28
Joined: Wed Apr 07, 2021 1:27 am

Re: HELP!: Who can fix Micrografx Picture Publisher 8?

Post by =CO= Windler »

Now there is first time a minor improvement with PP8. In Wine 7.14 now the file requester does open and I can load one of the example pictures from the Tutorial folder. But when I try to select a drive or the "Bilder" (pictures) folder from "Arbeitsplatz" (workspace) folder, PP8 still crashes, so I can not walk the tree or save. This is the full error message:

Code: Select all

Unhandled exception: page fault on read access to 0x04244cd5 in 32-bit code (0x67f6590a).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:67f6590a ESP:0021caf0 EBP:0021cd78 EFLAGS:00010202(  R- --  I   - - - )
 EAX:6ed22170 EBX:0021dc18 ECX:04244c8d EDX:003dce00
 ESI:079e1818 EDI:00000000
Stack dump:
0x0021caf0:  6ed22170 003dce00 00000000 0021cb24
0x0021cb00:  0021cb2c ffffffff 0208003c 0021cb18
0x0021cb10:  7dc70000 00000003 003a0043 0077005c
0x0021cb20:  003dce00 006f0064 00730077 0073005c
0x0021cb30:  00730079 00650074 0033006d 005c0032
0x0021cb40:  00730075 00720065 00320033 0064002e
Backtrace:
=>0 0x67f6590a in shell32 (+0xa590a) (0x0021cd78)
  1 0x67f66646 in shell32 (+0xa6646) (0x0021ce18)
  2 0x6ed65d7c in user32 (+0x65d7c) (0x0021ce58)
  3 0x6ed661d9 call_window_proc+0x39(hwnd=00040298, msg=0x4e, wp=0x1, lp=0x21dc18, result=0021D3E4, arg=67F66190) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:133] in user32 (0x0021ceb8)
  4 0x6ed675e7 WINPROC_CallProcAtoW+0xa7(callback=<is not available>, hwnd=<is not available>, msg=<is not available>, wParam=<is not available>, lParam=<is not available>, result=<is not available>, arg=<is not available>, mapping=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:255] in user32 (0x0021d368)
  5 0x6ed685c9 dispatch_win_proc_params+0x109(params=0021D3E8) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:791] in user32 (0x0021d3b8)
  6 0x6ed69be4 CallWindowProcA+0x64(func=<internal error>, hwnd=<internal error>, msg=<internal error>, wParam=<internal error>, lParam=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:1312] in user32 (0x0021d438)
  7 0x492da0cd in mgxbrwsr (+0xa0cd) (0x0021d478)
  8 0x6ed65d7c in user32 (+0x65d7c) (0x0021d4a8)
  9 0x6ed661d9 call_window_proc+0x39(hwnd=00040298, msg=0x4e, wp=0x1, lp=0x21dc18, result=0021DA5C, arg=492DA04E) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:133] in user32 (0x0021d508)
  10 0x6ed66c44 WINPROC_CallProcWtoA+0x754(callback=<internal error>, hwnd=<internal error>, msg=<internal error>, wParam=<is not available>, lParam=<is not available>, result=<is not available>, arg=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:712] in user32 (0x0021d9c8)
  11 0x6ed68542 dispatch_win_proc_params+0x82(params=0021DAA8) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:755] in user32 (0x0021da18)
  12 0x6ed49a8a dispatch_send_message+0x7a(params=0021DAA8) [\\?\unix\usr\src\packages\BUILD\dlls\user32\message.c:614] in user32 (0x0021da78)
  13 0x6ed4b7b1 SendMessageW+0x61(hwnd=<internal error>, msg=<internal error>, wparam=<internal error>, lparam=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\message.c:632] in user32 (0x0021daf8)
  14 0x6cc894f6 notify_hdr+0x56(code=0xffffff4f, pnmh=0021DC18, infoPtr=<has been optimized away by compiler>, infoPtr=<has been optimized away by compiler>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:830] in comctl32 (0x0021db58)
  15 0x6cc8a778 notify_dispinfoT+0x68(infoPtr=003CDCB0, code=<is not available>, pdi=0021DC18, isW=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:977] in comctl32 (0x0021dbb8)
  16 0x6cc8cc16 LISTVIEW_GetItemT+0x3f6(infoPtr=<internal error>, lpLVItem=<internal error>, isW=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:6802] in comctl32 (0x0021dc78)
  17 0x6cc909f7 LISTVIEW_HitTest+0x2a7(infoPtr=003CDCB0, lpht=<internal error>, subitem=<internal error>, select=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:1705] in comctl32 (0x0021df98)
  18 0x6cc9e4ec LISTVIEW_LButtonDown+0xbc(infoPtr=003CDCB0, wKey=<internal error>, x=0x3f, y=0x4) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:10273] in comctl32 (0x0021e088)
  19 0x6cca1144 LISTVIEW_WindowProc+0x19d4(hwnd=<internal error>, uMsg=<internal error>, wParam=<internal error>, lParam=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\comctl32\listview.c:11793] in comctl32 (0x0021e178)
  20 0x6ed65d7c in user32 (+0x65d7c) (0x0021e1b8)
  21 0x6ed661d9 call_window_proc+0x39(hwnd=00030296, msg=0x201, wp=0x1, lp=0x4003f, result=0021E294, arg=6CC9F770) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:133] in user32 (0x0021e218)
  22 0x6ed685f6 dispatch_win_proc_params+0x136(params=0021E298) [\\?\unix\usr\src\packages\BUILD\dlls\user32\winproc.c:798] in user32 (0x0021e268)
  23 0x6ed49b5f dispatch_message+0x7f(msg=0021E524, ansi=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\message.c:879] in user32 (0x0021e2d8)
  24 0x6ed4c19f DispatchMessageW+0x3a(msg=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\message.c:967] in user32 (0x0021e378)
  25 0x6ed282aa IsDialogMessageW+0xbf(msg=<internal error>, hwndDlg=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\dialog.c:1294] in user32 (0x0021e4d8)
  26 0x6ed282aa IsDialogMessageW+0x11a(hwndDlg=<internal error>, msg=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\dialog.c:1158] in user32 (0x0021e4d8)
  27 0x6ed28bf4 DIALOG_DoDialogBox+0x144(hwnd=<is not available>, owner=<is not available>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\dialog.c:814] in user32 (0x0021e558)
  28 0x6ed28eac DialogBoxIndirectParamAorW+0x4c(hInstance=00630000, template=006FA8BC, owner=<is not available>, dlgProc=0063E910, param=0x21e674, flags=0x2) [\\?\unix\usr\src\packages\BUILD\dlls\user32\dialog.c:883] in user32 (0x0021e578)
  29 0x6ed28f01 DialogBoxIndirectParamA+0x41(hInstance=<internal error>, template=<internal error>, owner=<internal error>, dlgProc=<internal error>, param=<internal error>) [\\?\unix\usr\src\packages\BUILD\dlls\user32\dialog.c:891] in user32 (0x0021e5b8)
  30 0x00635d35 in comdlg32 (+0x5d35) (0x0021e608)
  31 0x00635e19 in comdlg32 (+0x5e19) (0x0021e648)
  32 0x00642023 in comdlg32 (+0x12023) (0x0021e714)
  33 0x4930b8e0 in mgxbrwsr (+0x3b8e0) (0x6ed62f30)
  34 0xfff0e483 (0x04244c8d)
0x67f6590a shell32+0xa590a: call	*0x48(%ecx)
Modules:
Module	Address			Debug info	Name (56 modules)
PE	00630000-0065d000	Export          comdlg32
PE	00890000-00d13000	Deferred        ole32
PE	00d20000-00e71000	Deferred        combase
PE	01bf0000-01c68000	Deferred        winex11
PE	01ca0000-01d40000	Deferred        uxtheme
PE	07d70000-07d8e000	Deferred        cico
PE	081e0000-081eb000	Deferred        tbar16b
PE	081f0000-081fa000	Deferred        tbar16c
PE	08200000-08211000	Deferred        tbar24c
PE	08630000-0867a000	Deferred        mgxfma
PE	08680000-08694000	Deferred        mgxfmar
PE	10000000-10139000	Deferred        ppres
PE	43240000-43512000	Deferred        pp80
PE	43640000-4365b000	Deferred        mgxfrm30
PE	43a40000-43a84000	Deferred        mgxbm30
PE	44010000-4401c000	Deferred        lfcal80n
PE	44020000-44067000	Deferred        lfcmp80n
PE	44070000-44085000	Deferred        lffax80n
PE	44090000-440f4000	Deferred        lffpx7
PE	44100000-4411b000	Deferred        lffpx80n
PE	44130000-44140000	Deferred        lfica80n
PE	44140000-4414c000	Deferred        lfimg80n
PE	44150000-4415d000	Deferred        lflmb80n
PE	44160000-4416c000	Deferred        lfmac80n
PE	44180000-4418d000	Deferred        lfpct80n
PE	44200000-44221000	Deferred        lftif80n
PE	44240000-44258000	Deferred        ltfil80n
PE	44280000-442ee000	Deferred        ltkrn80n
PE	45160000-4516b000	Deferred        dll32
PE	45250000-4529b000	Deferred        pcdlib32
PE	453f0000-45411000	Deferred        lfkodak
PE	492d0000-49349000	Export          mgxbrwsr
PE	5f400000-5f4ed000	Deferred        mgx42
PE	61740000-6182f000	Deferred        advapi32
PE	61d00000-62127000	Deferred        actxprxy
PE	62fc0000-63206000	Deferred        rpcrt4
PE	63480000-6349c000	Deferred        version
PE	63bc0000-63c05000	Deferred        shcore
PE	64a40000-64b60000	Deferred        shlwapi
PE	64ec0000-652ae000	Deferred        oleaut32
PE	663c0000-663c9000	Deferred        winspool
PE	66b00000-66b4d000	Deferred        win32u
PE	67ec0000-6801a000	Export          shell32
PE	69a00000-69a2e000	Deferred        wintab32
PE	6a280000-6a4f0000	Deferred        msvcrt
PE	6bc00000-6bca3000	Deferred        sechost
PE	6c9c0000-6cbab000	Deferred        gdi32
PE	6cc40000-6d0ba000	Dwarf-4         comctl32
PE	6ed00000-6f231000	Dwarf-4         user32
PE	70940000-70997000	Deferred        mpr
PE	70b40000-70e0d000	Deferred        ucrtbase
PE	70e80000-70e93000	Deferred        msimg32
PE	71200000-7124e000	Deferred        imm32
PE	7b000000-7b4da000	Deferred        kernelbase
PE	7b600000-7b753000	Deferred        kernel32
PE	7bc00000-7bec4000	Deferred        ntdll
Threads:
process  tid      prio    name (all IDs are in hex)
00000020 (D) C:\Program Files\Micrografx\Picture Publisher 8\pp80.exe
	00000024    0 <== 
	000000f8    0     
	00000118    0     
00000038 services.exe
	0000003c    0     
	00000040    0     
	0000004c    0     
	00000070    0     
	00000094    0     
	000000ac    0     
	000000d8    0     
00000044 winedevice.exe
	00000048    0     
	00000054    0     
	00000058    0     
	0000005c    0     
	00000060    0     
	00000064    0     
	000000b8    0     
00000068 winedevice.exe
	0000006c    0     
	00000074    0     
	00000078    0     
	0000007c    0     
	00000080    0     
	00000084    0     
	00000090    0     
00000088 plugplay.exe
	0000008c    0     
	00000098    0     
	0000009c    0     
	000000a0    0     
000000a4 svchost.exe
	000000a8    0     
	000000b0    0     
	000000b4    0     
000000bc explorer.exe
	000000c0    0     
	000000c4    0     
	000000c8    0     
000000d0 rpcss.exe
	000000d4    0     
	000000e0    0     
	000000e4    0     
	000000e8    0     
	000000ec    0     
	000000f0    0     
	000000fc    0     
00000110 conhost.exe
	00000114    0     
System information:
    Wine build: wine-7.14
    Platform: i386
    Version: Windows 98
    Host system: Linux
    Host version: 5.4.0-104-lowlatency
Also the file requester in PP7 opens now, but behaves similar (i.e. still crashes when selecting a folder etc.).
Locked