Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux Support or ability to run under wine. #26

Open
ZiroGX2 opened this issue May 6, 2018 · 23 comments
Open

Linux Support or ability to run under wine. #26

ZiroGX2 opened this issue May 6, 2018 · 23 comments

Comments

@ZiroGX2
Copy link

ZiroGX2 commented May 6, 2018

Currently there is no way to run this under linux that I know of and I have several friends that use linux and would like to see if it would be possible for a linux release to happen.

@Henrik0x7F
Copy link

With some work this should be possible

@Tarnadas
Copy link
Owner

Tarnadas commented May 6, 2018

Why exactly does it not work with Wine?

The problem is that Project64 is a Windows-only program and there is afaik no 16MB emulator for Linux

@ZiroGX2
Copy link
Author

ZiroGX2 commented May 6, 2018

Unhandled exception: page fault on read access to 0x00000034 in 64-bit code (0x0000000140f41d70). Register dump: rip:0000000140f41d70 rsp:000000000023b610 rbp:000000000023b650 eflags:00010246 ( R- -- I Z- -P- ) rax:0000028ef3e379e0 rbx:0000000000000280 rcx:00000000ffffff3f rdx:00000000000000c0 rsi:0000000000000000 rdi:0000000000000000 r8:000000000023b730 r9:0000000000000000 r10:0000000000000006 r11:000000000023b590 r12:0000028ef40040a8 r13:0000000000000001 r14:000001e0edc68240 r15:000001e0edc74630 Stack dump: 0x000000000023b610: 000004c620318528 000000000023b650 0x000000000023b620: 0000000000000000 000000000023b6f4 0x000000000023b630: 0000000000230101 000000010000000a 0x000000000023b640: 0000000000000003 0000028ef4004140 0x000000000023b650: 000000000023b940 0000000000000000 0x000000000023b660: 0000000000000000 000001e0edc74630 0x000000000023b670: 0000000000000000 000001e0edc68240 0x000000000023b680: 000000000023b708 0000000140f4b5d8 0x000000000023b690: 000001e0edc74630 000001e0edc68201 0x000000000023b6a0: 000001e0edc74630 000000000023b6f4 0x000000000023b6b0: 000000000023b6f8 000000000023b730 0x000000000023b6c0: 000000000023b6f0 0000000000000000 Backtrace: =>0 0x0000000140f41d70 in net64+ (+0xf41d70) (0x000000000023b650) 1 0x0000000140f4b5d8 in net64+ (+0xf4b5d7) (0x000000000023b708) 2 0x0000000140f409ce in net64+ (+0xf409cd) (0x000000000023b7b1) 3 0x0000000140ecdd09 in net64+ (+0xecdd08) (0x000000000023b910) 0x0000000140f41d70: movl 0x0000000000000034(%rsi),%ebx Modules: Module Address Debug info Name (170 modules) PE 240000- 5dc000 Deferred ffmpeg ELF 7a800000- 7a9d2000 Deferred opengl32<elf> \-PE 7a850000- 7a9d2000 \ opengl32 ELF 7b400000- 7b811000 Deferred kernel32<elf> \-PE 7b420000- 7b811000 \ kernel32 ELF 7bc00000- 7bd18000 Deferred ntdll<elf> \-PE 7bc20000- 7bd18000 \ ntdll ELF 7c000000- 7c004000 Deferred <wine-loader> PE 140000000- 1440e0000 Export net64+ PE 180000000- 181128000 Deferred node ELF 7f48f2ce2000- 7f48f2ef7000 Deferred libgpg-error.so.0 ELF 7f48f2ef7000- 7f48f3212000 Deferred libgcrypt.so.20 ELF 7f48f3212000- 7f48f342e000 Deferred liblz4.so.1 ELF 7f48f342e000- 7f48f3654000 Deferred liblzma.so.5 ELF 7f48f3654000- 7f48f38d8000 Deferred libsystemd.so.0 ELF 7f48f38d8000- 7f48f3ae0000 Deferred libffi.so.6 ELF 7f48f3ae0000- 7f48f3cfb000 Deferred libresolv.so.2 ELF 7f48f3cfb000- 7f48f3eff000 Deferred libkeyutils.so.1 ELF 7f48f3eff000- 7f48f414c000 Deferred libdbus-1.so.3 ELF 7f48f414c000- 7f48f43cd000 Deferred libgmp.so.10 ELF 7f48f43cd000- 7f48f4601000 Deferred libhogweed.so.4 ELF 7f48f4601000- 7f48f4837000 Deferred libnettle.so.6 ELF 7f48f4837000- 7f48f4a4a000 Deferred libtasn1.so.6 ELF 7f48f4a4a000- 7f48f4dc8000 Deferred libunistring.so.2 ELF 7f48f4dc8000- 7f48f4fe5000 Deferred libidn2.so.0 ELF 7f48f4fe5000- 7f48f5314000 Deferred libp11-kit.so.0 ELF 7f48f5314000- 7f48f551f000 Deferred libkrb5support.so.0 ELF 7f48f551f000- 7f48f5723000 Deferred libcom_err.so.2 ELF 7f48f5723000- 7f48f5955000 Deferred libk5crypto.so.3 ELF 7f48f5955000- 7f48f5c2b000 Deferred libkrb5.so.3 ELF 7f48f5c2b000- 7f48f5e3c000 Deferred libavahi-client.so.3 ELF 7f48f5e3c000- 7f48f6048000 Deferred libavahi-common.so.3 ELF 7f48f6048000- 7f48f63ad000 Deferred libgnutls.so.30 ELF 7f48f63ad000- 7f48f65f8000 Deferred libgssapi_krb5.so.2 ELF 7f48f65f8000- 7f48f6884000 Deferred libcups.so.2 ELF 7f48f68aa000- 7f48f6ab0000 Deferred libxfixes.so.3 ELF 7f48f6ab0000- 7f48f6cba000 Deferred libxcursor.so.1 ELF 7f48f6cba000- 7f48f6eca000 Deferred libxi.so.6 ELF 7f48f6eca000- 7f48f70cd000 Deferred libxcomposite.so.1 ELF 7f48f70cd000- 7f48f72d8000 Deferred libxrandr.so.2 ELF 7f48f72d8000- 7f48f74e2000 Deferred libxrender.so.1 ELF 7f48f74e2000- 7f48f76e8000 Deferred libxxf86vm.so.1 ELF 7f48f76e8000- 7f48f78eb000 Deferred libxinerama.so.1 ELF 7f48f78eb000- 7f48f7af3000 Deferred librt.so.1 ELF 7f48f7af3000- 7f48f7d08000 Deferred libbsd.so.0 ELF 7f48f7d08000- 7f48f7f0e000 Deferred libxdmcp.so.6 ELF 7f48f7f0e000- 7f48f8112000 Deferred libxau.so.6 ELF 7f48f8112000- 7f48f833a000 Deferred libxcb.so.1 ELF 7f48f833a000- 7f48f8673000 Deferred libx11.so.6 ELF 7f48f8673000- 7f48f8885000 Deferred libxext.so.6 ELF 7f48f8891000- 7f48f88a9000 Deferred powrprof<elf> \-PE 7f48f88a0000- 7f48f88a9000 \ powrprof ELF 7f48f88ab000- 7f48f894b000 Deferred winex11<elf> \-PE 7f48f88c0000- 7f48f894b000 \ winex11 ELF 7f48f89e6000- 7f48f8c18000 Deferred libexpat.so.1 ELF 7f48f8c18000- 7f48f8e5d000 Deferred libfontconfig.so.1 ELF 7f48f8e5d000- 7f48f908f000 Deferred libpng16.so.16 ELF 7f48f908f000- 7f48f9343000 Deferred libfreetype.so.6 ELF 7f48f9369000- 7f48f938a000 Deferred concrt140<elf> \-PE 7f48f9370000- 7f48f938a000 \ concrt140 ELF 7f48f938a000- 7f48f93f1000 Deferred oleacc<elf> \-PE 7f48f9390000- 7f48f93f1000 \ oleacc ELF 7f48f93f1000- 7f48f942f000 Deferred uxtheme<elf> \-PE 7f48f9400000- 7f48f942f000 \ uxtheme ELF 7f48f942f000- 7f48f9443000 Deferred msimg32<elf> \-PE 7f48f9430000- 7f48f9443000 \ msimg32 ELF 7f48f9443000- 7f48f95c3000 Deferred oleaut32<elf> \-PE 7f48f9470000- 7f48f95c3000 \ oleaut32 ELF 7f48f95c3000- 7f48f96cd000 Deferred msvcr120<elf> \-PE 7f48f95f0000- 7f48f96cd000 \ msvcr120 ELF 7f48f96cd000- 7f48f974e000 Deferred dwrite<elf> \-PE 7f48f96e0000- 7f48f974e000 \ dwrite ELF 7f48f974e000- 7f48f9767000 Deferred ncrypt<elf> \-PE 7f48f9750000- 7f48f9767000 \ ncrypt ELF 7f48f9767000- 7f48f977f000 Deferred dwmapi<elf> \-PE 7f48f9770000- 7f48f977f000 \ dwmapi ELF 7f48f977f000- 7f48f98e8000 Deferred wined3d<elf> \-PE 7f48f97a0000- 7f48f98e8000 \ wined3d ELF 7f48f98e8000- 7f48f991c000 Deferred dxgi<elf> \-PE 7f48f98f0000- 7f48f991c000 \ dxgi ELF 7f48f991c000- 7f48f9948000 Deferred mpr<elf> \-PE 7f48f9920000- 7f48f9948000 \ mpr ELF 7f48f9948000- 7f48f99d1000 Deferred wininet<elf> \-PE 7f48f9950000- 7f48f99d1000 \ wininet ELF 7f48f99d1000- 7f48f9a19000 Deferred winspool<elf> \-PE 7f48f99e0000- 7f48f9a19000 \ winspool ELF 7f48f9a19000- 7f48f9caa000 Deferred shell32<elf> \-PE 7f48f9a30000- 7f48f9caa000 \ shell32 ELF 7f48f9caa000- 7f48f9da9000 Deferred comdlg32<elf> \-PE 7f48f9cb0000- 7f48f9da9000 \ comdlg32 ELF 7f48f9da9000- 7f48f9dd1000 Deferred imm32<elf> \-PE 7f48f9db0000- 7f48f9dd1000 \ imm32 ELF 7f48f9dd1000- 7f48f9e1f000 Deferred usp10<elf> \-PE 7f48f9de0000- 7f48f9e1f000 \ usp10 ELF 7f48f9e1f000- 7f48f9f6f000 Deferred comctl32<elf> \-PE 7f48f9e30000- 7f48f9f6f000 \ comctl32 ELF 7f48f9f6f000- 7f48f9ffd000 Deferred shlwapi<elf> \-PE 7f48f9f80000- 7f48f9ffd000 \ shlwapi ELF 7f48f9ffd000- 7f48fa21a000 Deferred libz.so.1 ELF 7f48fa228000- 7f48fa240000 Deferred uiautomationcore<elf> \-PE 7f48fa230000- 7f48fa240000 \ uiautomationcore ELF 7f48fa240000- 7f48fa2b0000 Deferred dbghelp<elf> \-PE 7f48fa250000- 7f48fa2b0000 \ dbghelp ELF 7f48fa2b0000- 7f48fa2de000 Deferred msacm32<elf> \-PE 7f48fa2c0000- 7f48fa2de000 \ msacm32 ELF 7f48fa2de000- 7f48fa374000 Deferred rpcrt4<elf> \-PE 7f48fa2f0000- 7f48fa374000 \ rpcrt4 ELF 7f48fa374000- 7f48fa516000 Deferred ole32<elf> \-PE 7f48fa3a0000- 7f48fa516000 \ ole32 ELF 7f48fa516000- 7f48fa5da000 Deferred winmm<elf> \-PE 7f48fa520000- 7f48fa5da000 \ winmm ELF 7f48fa5da000- 7f48fa5f4000 Deferred userenv<elf> \-PE 7f48fa5e0000- 7f48fa5f4000 \ userenv ELF 7f48fa5f4000- 7f48fa622000 Deferred iphlpapi<elf> \-PE 7f48fa600000- 7f48fa622000 \ iphlpapi ELF 7f48fa622000- 7f48fa63d000 Deferred version<elf> \-PE 7f48fa630000- 7f48fa63d000 \ version ELF 7f48fa63d000- 7f48fa6cf000 Deferred advapi32<elf> \-PE 7f48fa650000- 7f48fa6cf000 \ advapi32 ELF 7f48fa6cf000- 7f48fa84c000 Deferred gdi32<elf> \-PE 7f48fa6e0000- 7f48fa84c000 \ gdi32 ELF 7f48fa84c000- 7f48faa8e000 Deferred user32<elf> \-PE 7f48fa870000- 7f48faa8e000 \ user32 ELF 7f48faa8e000- 7f48faaa2000 Deferred psapi<elf> \-PE 7f48faa90000- 7f48faaa2000 \ psapi ELF 7f48faaa2000- 7f48faab6000 Deferred api-ms-win-crt-conio-l1-1-0<elf> \-PE 7f48faab0000- 7f48faab6000 \ api-ms-win-crt-conio-l1-1-0 ELF 7f48faab6000- 7f48faaca000 Deferred api-ms-win-crt-locale-l1-1-0<elf> \-PE 7f48faac0000- 7f48faaca000 \ api-ms-win-crt-locale-l1-1-0 ELF 7f48faaca000- 7f48faadf000 Deferred api-ms-win-crt-time-l1-1-0<elf> \-PE 7f48faad0000- 7f48faadf000 \ api-ms-win-crt-time-l1-1-0 ELF 7f48faadf000- 7f48faaf4000 Deferred api-ms-win-crt-utility-l1-1-0<elf> \-PE 7f48faae0000- 7f48faaf4000 \ api-ms-win-crt-utility-l1-1-0 ELF 7f48faaf4000- 7f48fab0e000 Deferred api-ms-win-crt-math-l1-1-0<elf> \-PE 7f48fab00000- 7f48fab0e000 \ api-ms-win-crt-math-l1-1-0 ELF 7f48fab0e000- 7f48fab22000 Deferred api-ms-win-crt-environment-l1-1-0<elf> \-PE 7f48fab10000- 7f48fab22000 \ api-ms-win-crt-environment-l1-1-0 ELF 7f48fab22000- 7f48fac39000 Deferred ucrtbase<elf> \-PE 7f48fab50000- 7f48fac39000 \ ucrtbase ELF 7f48fac39000- 7f48fad78000 Deferred msvcp140<elf> \-PE 7f48fac70000- 7f48fad78000 \ msvcp140 ELF 7f48faf78000- 7f48fb18a000 Deferred libnss_files.so.2 ELF 7f48fb18a000- 7f48fb3a4000 Deferred libnsl.so.1 ELF 7f48fb3a4000- 7f48fb5b0000 Deferred libnss_nis.so.2 ELF 7f48fb5b0000- 7f48fb7ba000 Deferred libnss_compat.so.2 ELF 7f48fbf44000- 7f48fc15c000 Deferred libgcc_s.so.1 ELF 7f48fc15c000- 7f48fc4fa000 Deferred libm.so.6 ELF 7f48fc4fa000- 7f48fc6fe000 Deferred libdl.so.2 ELF 7f48fc6fe000- 7f48fcaef000 Deferred libc.so.6 ELF 7f48fcaef000- 7f48fcd0e000 Deferred libpthread.so.0 ELF 7f48fcd0e000- 7f48fd0b3000 Dwarf libwine.so.1 ELF 7f48fd0b3000- 7f48fd2ba000 Deferred libgtk3-nocsd.so.0 ELF 7f48fd2ba000- 7f48fd4e4000 Deferred ld-linux-x86-64.so.2 ELF 7f48fd2f2000- 7f48fd308000 Deferred api-ms-win-crt-convert-l1-1-0<elf> \-PE 7f48fd300000- 7f48fd308000 \ api-ms-win-crt-convert-l1-1-0 ELF 7f48fd308000- 7f48fd31d000 Deferred api-ms-win-crt-filesystem-l1-1-0<elf> \-PE 7f48fd310000- 7f48fd31d000 \ api-ms-win-crt-filesystem-l1-1-0 ELF 7f48fd31d000- 7f48fd334000 Deferred api-ms-win-crt-string-l1-1-0<elf> \-PE 7f48fd320000- 7f48fd334000 \ api-ms-win-crt-string-l1-1-0 ELF 7f48fd334000- 7f48fd349000 Deferred api-ms-win-crt-heap-l1-1-0<elf> \-PE 7f48fd340000- 7f48fd349000 \ api-ms-win-crt-heap-l1-1-0 ELF 7f48fd349000- 7f48fd35f000 Deferred api-ms-win-crt-stdio-l1-1-0<elf> \-PE 7f48fd350000- 7f48fd35f000 \ api-ms-win-crt-stdio-l1-1-0 ELF 7f48fd35f000- 7f48fd375000 Deferred api-ms-win-crt-runtime-l1-1-0<elf> \-PE 7f48fd360000- 7f48fd375000 \ api-ms-win-crt-runtime-l1-1-0 ELF 7f48fd375000- 7f48fd3b7000 Deferred ws2_32<elf> \-PE 7f48fd380000- 7f48fd3b7000 \ ws2_32 ELF 7f48fd4ca000- 7f48fd4e1000 Deferred vcruntime140<elf> \-PE 7f48fd4d0000- 7f48fd4e1000 \ vcruntime140 ELF 7ffd49546000- 7ffd49548000 Deferred [vdso].so Threads: process tid prio (all id:s are in hex) 0000000e services.exe 00000023 0 0000001e 0 00000018 0 00000013 0 00000010 0 0000000f 0 00000011 winedevice.exe 0000001b 0 00000017 0 00000016 0 00000012 0 0000001c plugplay.exe 00000020 0 0000001f 0 0000001d 0 00000021 winedevice.exe 0000002a 0 00000025 0 00000024 0 00000022 0 00000028 explorer.exe 0000002d 0 0000002c 0 0000002b 0 00000029 0 0000002e net64+.exe 00000063 0 00000062 0 0000004e 0 0000004b 0 00000049 0 00000048 0 00000047 0 00000046 0 00000045 0 00000044 0 00000043 0 00000042 0 00000041 0 00000040 0 0000003f 0 0000003e 0 0000003d 0 0000003c 0 0000003b 0 0000003a 0 00000039 -2 00000038 -2 00000037 0 00000036 0 00000035 0 00000034 0 00000033 0 00000032 0 00000031 0 00000030 0 0000002f 0 0000004c (D) Z:\home\ziro\Downloads\client\Net64+-win32-x64\net64+.exe 00000061 0 00000060 0 0000005f 0 0000005e 0 0000005d 0 0000005b -2 0000005a 0 00000059 0 00000058 0 00000057 0 00000056 0 00000055 0 00000054 0 00000053 0 00000052 0 00000051 0 00000050 0 0000004f 0 0000004d 0 <== System information: Wine build: wine-3.6 (Ubuntu 3.6-1) Platform: x86_64 Version: Windows 7 Host system: Linux Host version: 4.15.0-20-generic that is the backtrace in wine. Also the version of project64 used almost works except for the plugins. Video and input doesnt work but audio works fine.

@ZiroGX2
Copy link
Author

ZiroGX2 commented May 6, 2018

Actually, project64 video worked after cycling fullscreen and input worked after changing plugin.

@ghost
Copy link

ghost commented May 7, 2018

there is a pj64 port for android . could it work there?

@ZiroGX2
Copy link
Author

ZiroGX2 commented May 7, 2018

Spin attack this would most likely not easily work with Android because or how it edits emulator memory. Also you should open a new thread for stuff like this.

@Tarnadas
Copy link
Owner

Tarnadas commented May 7, 2018

There also won't be an Android port of Net64+, because of the limitation of not being able to access arbitrary RAM values.

This is a pretty damn long error message :D I have no idea what to do here.
Yeah I meant, that there won't be a native Linux port, but Wine might be possible.

@ZiroGX2
Copy link
Author

ZiroGX2 commented May 14, 2018

@Tarnadas does the client use a web browser. If so that might be a problem for wine because project 64 works fine on wine.

@moonheart08
Copy link

o/
Intrested in this. What kind of work would be needed?

@Henrik0x7F
Copy link

Getting pj64mm running in wine

@moonheart08
Copy link

@BPopcorn uh, you're joking right?
I mean, as in, what is making it not work under wine. If it's not known, i may as well grab a debugger and hop in.

@Henrik0x7F
Copy link

The modified graphics plugin doesn't work. Idk why, if you're more experienced with wine you could help us getting it to run.

@moonheart08
Copy link

moonheart08 commented May 21, 2018

Hmm. I'll look into it. Does make me question why you guys directly hook into Project64's memory tho. That's a nice easy way to break Wine in plenty of situations*.
*NOTE: I am not a Wine dev, this is personal experience

@SuperToad64
Copy link

I think hooking into the memory of programs in Windows can make them crash as well. I don't think this is just limited to Wine. Because the emulator does crash from time to time when using Net64+. It usually crashes when I am switching from Fullscreen to Windowed Mode, which is weird. Sometimes it crashes the Net64+ program and then I have to reconnect. But yeah, maybe there is a memory leak.

@moonheart08
Copy link

@SuperToad64 It can. Wine just happens to be a bit more sensitive to it.

@SuperToad64
Copy link

@moonheart08 I guess it's because you are running an emulator inside of an emulator maybe? Since Mac needs to emulate Windows and Project64MM needs to emulate a N64. Maybe if you set the memory settings higher, like at 32MB. Maybe then it would work.

@Henrik0x7F
Copy link

@moonheart08 Hooking into the memory is completely safe the way we do it. It also has nothing to do with wine, worked perfectly with 1.0. The thing causing the crashes is most likely the modified emulator itself, which is kinda broken. The modified gfx plugin doesn't start with wine. Everything else is working fine.

@SuperToad64
Copy link

@BPopcorn I can relate to this. The included modded emulator is extremely buggy. Sometimes it will forget the settings entirely and I have to go back and set all the settings again. Also sometimes when I am switching from windowed mode to fullscreen it crashes the entire emulator with no error messages. So hopefully we will get an updated emulator soon because I believe that is what is causing all of the crashes and errors with Wine.

@illegalprime
Copy link

Here is the issue on mupen64plus for reference: mupen64plus/mupen64plus-core#524

@Dolphin2Point1
Copy link

Dolphin2Point1 commented May 16, 2019

mupen64plus/mupen64plus-core#623 <- if this gets merged, it would be very possible to implement this on linux

@rodolpheh
Copy link

I was able to make it work using Lutris with the custom Lutris wine version

@torzod
Copy link

torzod commented Dec 13, 2020

I was able to make it work using Lutris with the custom Lutris wine version

what wine version did you use?

@rodolpheh
Copy link

I was able to make it work using Lutris with the custom Lutris wine version

what wine version did you use?

The lutris-5.6-2 one. I used it with PlayOnLinux. Unfortunately I've done this only a few months ago and I don't remember exactly what I've done to make it work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants