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

open32AL.dll missing when launching on Win7 #89

Closed
kivutar opened this issue Nov 12, 2018 · 11 comments
Closed

open32AL.dll missing when launching on Win7 #89

kivutar opened this issue Nov 12, 2018 · 11 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@kivutar
Copy link
Member

kivutar commented Nov 12, 2018

No description provided.

@kivutar kivutar added the bug Something isn't working label Nov 12, 2018
@RobLoach
Copy link
Member

Confirmed.

---------------------------
ludo.exe - System Error
---------------------------
The code execution cannot proceed because OpenAL32.dll was not found. Reinstalling the program may fix this problem. 
---------------------------
OK   
---------------------------

@kivutar
Copy link
Member Author

kivutar commented Dec 1, 2018

The openal binding in go only links it dynamically because of the license.
We may fork their repo to change this.
Or we copy the dll next to the executable.

@kivutar kivutar added the help wanted Extra attention is needed label Dec 29, 2018
@kivutar kivutar pinned this issue Jan 8, 2019
@kivutar
Copy link
Member Author

kivutar commented Jan 12, 2019

@RobLoach @Arnochocobo can you try the latest release? It has the OpenAL32.dll included. I'd like to know if it fixes the bug.

@ghost
Copy link

ghost commented Jan 21, 2019

How does Go handle linking with C code, or can it just not do that?

@RobLoach
Copy link
Member

With cgo....
https://github.com/libretro/ludo/blob/master/libretro/libretro.go

I can test the Windows release again. Will re-install my Windows partition tonight.

@kivutar
Copy link
Member Author

kivutar commented Jan 22, 2019

It is done with magic comments, you can pass linker options like -L. See https://stackoverflow.com/questions/16747021/how-do-you-statically-link-a-c-library-in-go-using-cgo

The OpenAL binding that I'm using was initially made for Android, and for proprietary apps. OpenAL being LGPL, it forces you to use dynamic linking in proprietary apps.
I don't think this restriction applies to open source software like Ludo, where users can rebuild the whole thing and link their own OpenAL implementation.

See https://github.com/golang/mobile/blob/master/exp/audio/al/al_notandroid.go#L10-L15

So this binding is using dynamic linking. We may have to modify it to use static linking instead.

Or, distributing the DLL alongside the exe.

On OSX, we can assume that OpenAL is present in the system. On Linux and windows, not.

@RobLoach
Copy link
Member

RobLoach commented Jan 22, 2019

Now able to launch Ludo, but unable to load a core....

ludo -L "C:\Users\rob_l\Desktop\Ludo\cores\nestopia_libretro.dll" "10-Yard Fight (Japan).zip"
panic: Failed to load C:\Users\rob_l\Desktop\Ludo\cores\nestopia_libretro.dll: The specified module could not be found.        
goroutine 1 [running, locked to thread]:
main.main() 

C:/Users/travis/gopath/src/github.com/libretro/ludo/main.go:101 +0x604                                                                                                                                                                  

The nestopia_libretro.dll file is there. This happens in both the command line, and the UI. Every time I load up this operating system, I get frustrated. Going to give up on Windows. Good bye partition... GG

Launching Ludo on Windows works great with the OpenAL32 binary there, so I'd consider this issue resolved.

@Zewwy
Copy link

Zewwy commented Jan 25, 2019

I decided to quickly test Ludo on Windows 7 x64 VM I have.

First boot failed with vcruntime140.dll missing, so would be nice to state dependencies in this case: Microsoft Visual C++ 2015 Redistributable Update 3 RC

Then after that all I get is:

panic: APIUnavailable: WGL: The Driver does not appear to support OpenGL, so this is more than likely due to with VMware video drivers: VMware SVGA 3D...

but then... "The VMware SVGA 3D graphics driver provides support for DirectX 9.0c and OpenGL 2.1. This driver is supported on Windows 7 for 2D and 3D." Source

So not sure why that failed... I can try the x86 version on my netbook....

@Zewwy
Copy link

Zewwy commented Jan 25, 2019

ok, so even though the binaries state Windows X86_64

it does not work on 32 bit version of windows 7, I tried it complained about compateability of architecture versioning 32bit vs 64bit...

and then I finally had one last Windows 7 x64 bit laptop I happened to have from work that isn't a VM. This one Ludo did finally open. Have not yet attempted to load any cores or roms. Thats is now the next test. let me test that real quick, but other than that if there is an issue, I guess I can make an alternate issue ticket. As RobLoach said, this one should be closed.

I've created a separate issue for the core loading cause it happens on any version of windows I run Ludo on.

@kivutar
Copy link
Member Author

kivutar commented Jan 25, 2019

@Zewwy x86_64 means 64bit only, this version won't run on 32bit.

@RobLoach I will test this today.

However, this thread is not about Windows issues in general, it's about the OpenAL issue on Windows. So let's not discuss unrelated issues there.

@kivutar
Copy link
Member Author

kivutar commented Jan 25, 2019

Closed because @RobLoach tested it and it works

@kivutar kivutar closed this as completed Jan 25, 2019
@kivutar kivutar unpinned this issue Jan 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants