TumblThree
TumblThree copied to clipboard
[Feature Request] Wine/Linux compatiblity
Hello, i was wondering if TumblThree will be able to work correctly on compatibility programs like Wine?
TumblTwo is able to work in it, but it's useless since i'm not using TumblThree instead. (also function weirdly...)
Yes i've tried to work it on Wine, but i keep getting a program error prompt forcing me to exit.
I've never tried it.
You'd need to install .NET 4.5. I've found this wine website about installing .NET 4.5 in wine and possible errors.
It might crash because I'm using the WinAPI for the ClipboardMonitor to grab Tumblr urls from the clipboard. I remember that I've removed that code from TumblTwo in the mono version in order to make it run. I'm not sure if thats an issue for Wine at all. I've never really used it.
The UI is separated from the logic so it should actually be possible to "simply" put a different UI on TumblThree using Gtk#/Qt# or something else to have a fully native Linux version.
Do have any real error message? That text there basically says nothing.. Maybe be clicking on Show Details?
ah, yes i do have a proper error log to present
Unhandled exception: 0xe0434352 in 32-bit code (0x7b43e462).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:7b43e462 ESP:0033eb94 EBP:0033ec08 EFLAGS:00000283( - -- I S - - -C)
EAX:7b428c99 EBX:7b640000 ECX:80131534 EDX:0033ebb4
ESI:00000005 EDI:00000001
Stack dump:
0x0033eb94: 0033ec7c 00000014 7bc3ee0d e0434352
0x0033eba4: 00000001 00000000 7b43e462 00000005
0x0033ebb4: 80131534 00000000 00000000 00000000
0x0033ebc4: 00770000 00000000 0151df7c 00000005
0x0033ebd4: 00000000 00000000 00145fd0 0033ecd0
0x0033ebe4: 00000001 00000000 0033eca4 00000000
Backtrace:
=>0 0x7b43e462 in kernel32 (+0x2e462) (0x0033ec08)
1 0x008948c7 in clr (+0x1248c6) (0x0033ecb0)
2 0x008952b5 in clr (+0x1252b4) (0x0033ed84)
3 0x0f46c104 (0x0033eda8)
4 0x04bf2aea (0x0033ede4)
5 0x04e30b48 (0x0033ee28)
6 0x04e30a46 (0x0033ee94)
7 0x04d2fe17 (0x0033eea8)
8 0x04d2fd53 (0x0033eec4)
9 0x04d2fc20 (0x0033ef00)
10 0x04d2f7ff (0x0033ef3c)
11 0x04d2f4f9 (0x0033ef74)
12 0x04bf2e4b (0x0033efb4)
13 0x04bf2d8b (0x0033efd4)
14 0x04bf2c65 (0x0033eff0)
15 0x04bf2aea (0x0033f02c)
16 0x04bf25b2 (0x0033f07c)
17 0x04c0f03a (0x0033f0c4)
18 0x0039a08e (0x0033f0f8)
19 0xf71b43ca WINPROC_wrapper+0x19() in user32 (0x0033f128)
20 0xf71b4a9c in user32 (+0xa4a9b) (0x0033f178)
21 0xf71b7363 in user32 (+0xa7362) (0x0033f1c8)
22 0xf7175547 DispatchMessageW+0xb6() in user32 (0x0033f2d8)
23 0x04d2f45f (0x0033f318)
24 0x04d2e8b9 (0x0033f360)
25 0x04d2e716 (0x0033f36c)
26 0x04d2e686 (0x0033f378)
27 0x04d2e433 (0x0033f38c)
28 0x04d2e249 (0x0033f39c)
29 0x039737c5 (0x0033f3a8)
30 0x00772652 in clr (+0x2651) (0x0033f3b4)
31 0x0078264f in clr (+0x1264e) (0x0033f408)
32 0x00782e95 in clr (+0x12e94) (0x0033f480)
33 0x008374ec in clr (+0xc74eb) (0x0033f5ac)
34 0x00837610 in clr (+0xc760f) (0x0033f820)
35 0x008c1dc4 in clr (+0x151dc3) (0x0033fd24)
36 0x008c1e67 in clr (+0x151e66) (0x0033fd80)
37 0x008c1f7a in clr (+0x151f79) (0x0033fdc0)
38 0x008c416a in clr (+0x154169) (0x0033fdfc)
39 0x1000f5a3 in mscoreei (+0xf5a2) (0x0033fe38)
40 0x79007f16 in mscoree (+0x7f15) (0x0033fe48)
41 0x79004de3 in mscoree (+0x4de2) (0x0033fe68)
42 0x7b466f29 in kernel32 (+0x56f28) (0x0033feb8)
43 0x7bc84bb0 call_thread_func_wrapper+0xb() in ntdll (0x0033fed8)
44 0x7bc87e0d call_thread_func+0x7c() in ntdll (0x0033ffa8)
45 0x7bc84b8e RtlRaiseException+0x21() in ntdll (0x0033ffc8)
46 0x7bc54eaa call_dll_entry_point+0x359() in ntdll (0x0033ffe8)
47 0xf755d89d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
48 0xf755d95b wine_switch_to_stack+0x2a() in libwine.so.1 (0xffec9278)
49 0x7bc5b2fd LdrInitializeThunk+0x27c() in ntdll (0xffec92d8)
50 0x7b46d768 __wine_kernel_init+0x997() in kernel32 (0xffeca3f8)
51 0x7bc5c273 __wine_process_init+0x182() in ntdll (0xffeca488)
52 0xf755bc8a wine_init+0x299() in libwine.so.1 (0xffeca4e8)
53 0x7c000acb main+0x8a() in <wine-loader> (0xffeca938)
54 0xf737caf3 __libc_start_main+0xf2() in libc.so.6 (0x00000000)
0x7b43e462: movl 0xfffffff4(%ebp),%ecx
Modules:
Module Address Debug info Name (128 modules)
PE 400000- 436000 Deferred tumblthree
PE 770000- e02000 Export clr
PE e10000- ee3000 Deferred msvcr110_clr0400
PE 38e0000- 394e000 Deferred clrjit
PE 4620000- 47bd000 Deferred wpfgfx_v0400
PE 47c0000- 4880000 Deferred presentationnative_v0400
PE 10000000-1007a000 Export mscoreei
PE 1ff00000-1ff13000 Deferred dxva2
PE 5e0d0000-5e1a4000 Deferred diasymreader
PE 79000000-7904a000 Export mscoree
ELF 7a800000-7a931000 Deferred opengl32<elf>
\-PE 7a820000-7a931000 \ opengl32
ELF 7b400000-7b7e8000 Dwarf kernel32<elf>
\-PE 7b410000-7b7e8000 \ kernel32
ELF 7bc00000-7bcf9000 Dwarf ntdll<elf>
\-PE 7bc10000-7bcf9000 \ ntdll
ELF 7c000000-7c004000 Dwarf <wine-loader>
ELF 7ed64000-7ed70000 Deferred libnss_files.so.2
ELF 7ed70000-7ed7c000 Deferred libnss_nis.so.2
ELF 7ed7c000-7ed95000 Deferred libnsl.so.1
ELF 7ef95000-7efdb000 Deferred libm.so.6
ELF f4842000-f4900000 Deferred msvcrt<elf>
\-PE f4860000-f4900000 \ msvcrt
ELF f4c17000-f4c2e000 Deferred uiautomationcore<elf>
\-PE f4c20000-f4c2e000 \ uiautomationcore
ELF f4c3e000-f4d00000 Deferred windowscodecs<elf>
\-PE f4c50000-f4d00000 \ windowscodecs
ELF f4e99000-f4ec0000 Deferred wmp<elf>
\-PE f4ea0000-f4ec0000 \ wmp
ELF f5607000-f563e000 Deferred libtxc_dxtn.so
ELF f5663000-f566e000 Deferred libpciaccess.so.0
ELF f566e000-f568c000 Deferred libgcc_s.so.1
ELF f5794000-f57a1000 Deferred libdrm_radeon.so.1
ELF f57a1000-f57aa000 Deferred libdrm_nouveau.so.2
ELF f57aa000-f57cd000 Deferred libdrm_intel.so.1
ELF f57cd000-f5d88000 Deferred i965_dri.so
ELF f5d88000-f5d91000 Deferred librt.so.1
ELF f5d91000-f5ddc000 Deferred libdbus-1.so.3
ELF f5ddc000-f5df5000 Deferred libnih.so.1
ELF f5df5000-f5e13000 Deferred libcgmanager.so.0
ELF f5e13000-f5e26000 Deferred libudev.so.1
ELF f5e26000-f5ebb000 Deferred libgl.so.1
ELF f5ebb000-f6000000 Deferred wined3d<elf>
\-PE f5ed0000-f6000000 \ wined3d
ELF f6102000-f610c000 Deferred libnih-dbus.so.1
ELF f610c000-f611c000 Deferred libdrm.so.2
ELF f611c000-f611f000 Deferred libxshmfence.so.1
ELF f611f000-f6126000 Deferred libxcb-sync.so.1
ELF f6126000-f612c000 Deferred libxcb-dri2.so.0
ELF f612c000-f6144000 Deferred libxcb-glx.so.0
ELF f6144000-f615d000 Deferred libglapi.so.0
ELF f6182000-f61c2000 Deferred d3d9<elf>
\-PE f6190000-f61c2000 \ d3d9
ELF f61c2000-f61ff000 Deferred ws2_32<elf>
\-PE f61d0000-f61ff000 \ ws2_32
ELF f61ff000-f627c000 Deferred wininet<elf>
\-PE f6210000-f627c000 \ wininet
ELF f627c000-f64d0000 Deferred shell32<elf>
\-PE f6290000-f64d0000 \ shell32
ELF f64d0000-f6575000 Deferred urlmon<elf>
\-PE f64e0000-f6575000 \ urlmon
ELF f65cc000-f65d0000 Deferred libxcb-present.so.0
ELF f65d0000-f65e6000 Deferred dwmapi<elf>
\-PE f65e0000-f65e6000 \ dwmapi
ELF f65e6000-f65fe000 Deferred wtsapi32<elf>
\-PE f65f0000-f65fe000 \ wtsapi32
ELF f65fe000-f6627000 Deferred mpr<elf>
\-PE f6600000-f6627000 \ mpr
ELF f6627000-f6660000 Deferred uxtheme<elf>
\-PE f6630000-f6660000 \ uxtheme
ELF f6660000-f67a5000 Deferred oleaut32<elf>
\-PE f6680000-f67a5000 \ oleaut32
ELF f67a5000-f680c000 Deferred dwrite<elf>
\-PE f67b0000-f680c000 \ dwrite
ELF f680c000-f68dd000 Deferred crypt32<elf>
\-PE f6820000-f68dd000 \ crypt32
ELF f68dd000-f6920000 Deferred rsaenh<elf>
\-PE f68e0000-f6920000 \ rsaenh
ELF f6920000-f6940000 Deferred combase<elf>
\-PE f6930000-f6940000 \ combase
ELF f6964000-f696a000 Deferred libxfixes.so.3
ELF f696a000-f6975000 Deferred libxcursor.so.1
ELF f6975000-f6985000 Deferred libxi.so.6
ELF f6985000-f6989000 Deferred libxcomposite.so.1
ELF f6989000-f6994000 Deferred libxrandr.so.2
ELF f6994000-f699f000 Deferred libxrender.so.1
ELF f699f000-f69a5000 Deferred libxxf86vm.so.1
ELF f69a5000-f69a9000 Deferred libxinerama.so.1
ELF f69a9000-f69b0000 Deferred libxdmcp.so.6
ELF f69b0000-f69b4000 Deferred libxau.so.6
ELF f69b4000-f69d6000 Deferred libxcb.so.1
ELF f69d6000-f6b0a000 Deferred libx11.so.6
ELF f6b0a000-f6b1d000 Deferred libxext.so.6
ELF f6b42000-f6bd5000 Deferred winex11<elf>
\-PE f6b50000-f6bd5000 \ winex11
ELF f6bd6000-f6bda000 Deferred libxcb-dri3.so.0
ELF f6bda000-f6bdd000 Deferred libx11-xcb.so.1
ELF f6bdd000-f6be1000 Deferred libxdamage.so.1
ELF f6be1000-f6bf5000 Deferred api-ms-win-core-winrt-l1-1-0<elf
PE f6bf0000-f6bf5000 Deferred api-ms-win-core-winrt-l1-1-0
ELF f6bf5000-f6c7b000 Deferred rpcrt4<elf>
\-PE f6c00000-f6c7b000 \ rpcrt4
ELF f6c7b000-f6dc4000 Deferred ole32<elf>
\-PE f6c90000-f6dc4000 \ ole32
ELF f6dc4000-f6dea000 Deferred imm32<elf>
\-PE f6dd0000-f6dea000 \ imm32
ELF f6e59000-f6e82000 Deferred libexpat.so.1
ELF f6e82000-f6ebd000 Deferred libfontconfig.so.1
ELF f6ebd000-f6ee5000 Deferred libpng12.so.0
ELF f6ee5000-f6eff000 Deferred libz.so.1
ELF f6eff000-f6f9f000 Deferred libfreetype.so.6
ELF f6fc4000-f70f9000 Deferred gdi32<elf>
\-PE f6fd0000-f70f9000 \ gdi32
ELF f70f9000-f725d000 Dwarf user32<elf>
\-PE f7110000-f725d000 \ user32
ELF f725d000-f72d8000 Deferred shlwapi<elf>
\-PE f7270000-f72d8000 \ shlwapi
ELF f72d8000-f7354000 Deferred advapi32<elf>
\-PE f72f0000-f7354000 \ advapi32
ELF f7354000-f735d000 Deferred libnss_compat.so.2
ELF f735e000-f7363000 Deferred libdl.so.2
ELF f7363000-f7513000 Dwarf libc.so.6
ELF f7514000-f7530000 Deferred libpthread.so.0
ELF f753a000-f7554000 Deferred version<elf>
\-PE f7540000-f7554000 \ version
ELF f7555000-f770c000 Dwarf libwine.so.1
ELF f770e000-f7730000 Deferred ld-linux.so.2
ELF f7732000-f7733000 Deferred [vdso].so
Threads:
process tid prio (all id:s are in hex)
0000000e services.exe
0000004f 0
0000004e 0
00000033 0
00000032 0
0000002c 0
00000023 0
00000018 0
00000010 0
0000000f 0
00000014 mscorsvw.exe
0000001e 0
0000001d 0
0000001c 0
00000015 0
00000016 explorer.exe
0000003c 0
0000003b 0
0000003a 0
00000039 0
00000038 0
00000017 0
00000021 winedevice.exe
0000002b 0
00000026 0
00000025 0
00000022 0
00000029 plugplay.exe
0000002f 0
0000002e 0
0000002a 0
00000030 winedevice.exe
0000003d 0
00000035 0
00000034 0
00000031 0
0000003e (D) Z:\home\umbraaether\Documents\TumblThree\TumblThree.exe
0000004b 0
0000004a 0
00000049 0
00000048 0
00000047 0
00000046 0
00000045 0
00000044 0
00000043 0
00000042 0
00000041 2
00000040 0
0000003f 0 <==
System information:
Wine build: wine-2.4
Platform: i386 (WOW64)
Version: Windows 10
Host system: Linux
Host version: 3.19.0-32-generic
Okay, I think that doesn't really say much either. The Unhandled exception: 0xe0434352 in 32-bit code seems to be a general .NET exception.
I'll give it a try in May. I won't have time any earlier.
If you want to try around, you can make sure you've installed .NET 4.5 and if that does not help, you could try to take out the Win32 api stuff (ClipboardMonitor.cs). Otherwise its probably the GUI/WPF .. I'm just guessing though.
Well, I wouldn't call this working since it's crashing alot, but if you disable the image preview and use the .42 release (without the internet explorer cookies) and turn off the clipboard manager, it kinda works:
Steps I've done (on fedora):
# dnf install wine
export WINEARCH="win32"
export WINEPREFIX=~/.wine-tumblthree/
wineboot -u
./winetricks
winecfg
wine TumblThree.exe
I've used wintricks to install .NET 4.5, whichs seems to install all it's dependencies automatically (for instance .NET 4.0). Later I've used winecfg to set the Windows version to Windows 7.
Bonus: It's ugly as hell too
Aside from some occasional crashes due to various exceptions (e.g. access violation, invalid TCP packets), not properly closing after you press "X" (the GUI closes but the process stays running), and not saving settings until the program has been cleanly closed and re-opened (making it extra annoying when it crashes), it works fine for me.
I'm using wine-3.21 (Staging)
on Arch Linux. And it's not even "ugly as hell" because I have the silver Windows XP theme set up on all of my wineprefixes.
Thanks for the report and sharing your experience!